KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > view > grapheditor > widget > HeaderWidget


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor.widget;
21
22 import java.awt.event.KeyEvent JavaDoc;
23 import java.awt.event.MouseEvent JavaDoc;
24 import org.netbeans.api.visual.action.WidgetAction;
25 import org.netbeans.api.visual.widget.Scene;
26 import org.netbeans.api.visual.widget.Widget;
27
28 /**
29  * A widget that controls the expanded state of an expander widget by
30  * responding to certain input events.
31  *
32  * @author radval
33  * @author Nathan Fiedler
34  */

35 public class HeaderWidget extends Widget {
36     /** The expander we control. */
37     private ExpanderWidget mExpanderWidget;
38
39     /**
40      * Creates a new instance of HeaderWidget.
41      *
42      * @param scene the Scene to which we belong.
43      * @param expanderWidget the expander to control.
44      */

45     public HeaderWidget(Scene scene, ExpanderWidget expanderWidget) {
46         super(scene);
47         mExpanderWidget = expanderWidget;
48         getActions().addAction(new HeaderWidgetAction());
49     }
50
51     /**
52      * Toggle the expander widget between expanded and collapsed state.
53      */

54     private void toggleState() {
55         mExpanderWidget.setExpanded(!mExpanderWidget.isExpanded());
56     }
57
58     /**
59      * Responds to input events to control the expander.
60      */

61     private class HeaderWidgetAction extends WidgetAction.Adapter {
62
63         // Intercept keyPressed() to avoid conflict with the inplace editor.
64
public WidgetAction.State keyPressed(Widget widget,
65                 WidgetAction.WidgetKeyEvent event) {
66             if (event.getKeyCode() == KeyEvent.VK_ENTER) {
67                 toggleState();
68                 return WidgetAction.State.CONSUMED;
69             }
70             return WidgetAction.State.REJECTED;
71         }
72
73         // Intercept mouseClicked() to avoid conflict with the inplace editor.
74
public WidgetAction.State mouseClicked(Widget widget,
75                 WidgetAction.WidgetMouseEvent event) {
76             if (event.getButton() == MouseEvent.BUTTON1 &&
77                     event.getClickCount() == 2) {
78                 toggleState();
79                 return WidgetAction.State.CONSUMED;
80             }
81             return WidgetAction.State.REJECTED;
82         }
83     }
84 }
85
Popular Tags