KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > wsdl > ui > view > grapheditor > actions > ComboBoxInplaceEditorProvider


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.actions;
21
22 import java.awt.Dimension JavaDoc;
23 import java.awt.Rectangle JavaDoc;
24 import java.awt.event.ActionEvent JavaDoc;
25 import java.awt.event.ActionListener JavaDoc;
26 import java.awt.event.FocusAdapter JavaDoc;
27 import java.awt.event.FocusEvent JavaDoc;
28 import java.awt.event.FocusListener JavaDoc;
29 import java.awt.event.KeyAdapter JavaDoc;
30 import java.awt.event.KeyEvent JavaDoc;
31 import java.awt.event.KeyListener JavaDoc;
32 import java.util.EnumSet JavaDoc;
33
34 import javax.swing.ComboBoxModel JavaDoc;
35 import javax.swing.JComboBox JavaDoc;
36
37 import org.netbeans.api.visual.action.InplaceEditorProvider;
38 import org.netbeans.api.visual.widget.Widget;
39
40 /**
41  */

42 public final class ComboBoxInplaceEditorProvider implements InplaceEditorProvider<JComboBox JavaDoc> {
43
44     private ComboBoxInplaceEditor localEditor;
45
46     private EnumSet JavaDoc<ExpansionDirection> expansionDirections;
47     
48     private FocusListener JavaDoc focusListener;
49     
50     public ComboBoxInplaceEditorProvider (ComboBoxInplaceEditor editor, EnumSet JavaDoc<ExpansionDirection> expansionDirections) {
51         this.localEditor = editor;
52         this.expansionDirections = expansionDirections;
53     }
54
55     private KeyListener JavaDoc keyListener;
56
57     public JComboBox JavaDoc createEditorComponent (EditorController controller, Widget widget) {
58         if (! localEditor.isEnabled (widget))
59             return null;
60         ComboBoxModel JavaDoc model = localEditor.getModel();
61         JComboBox JavaDoc comboBox = new JComboBox JavaDoc(model);
62         comboBox.setEditable(localEditor.getEditable());
63         comboBox.setPreferredSize(widget.getBounds().getSize());
64         
65         
66         
67         return comboBox;
68     }
69
70     public void notifyOpened (final EditorController controller, final Widget widget, JComboBox JavaDoc editor) {
71         editor.setMinimumSize (new Dimension JavaDoc (64, 19));
72         keyListener = new KeyAdapter JavaDoc() {
73             @Override JavaDoc
74             public void keyReleased (KeyEvent JavaDoc e) {
75                 switch (e.getKeyCode ()) {
76                     case KeyEvent.VK_ESCAPE:
77                         e.consume ();
78                         controller.closeEditor (false);
79                         break;
80                     case KeyEvent.VK_ENTER:
81                         e.consume ();
82                         controller.closeEditor (true);
83                         break;
84                 }
85             }
86         };
87         editor.addKeyListener (keyListener);
88         editor.addActionListener(new ActionListener JavaDoc() {
89         
90             public void actionPerformed(ActionEvent JavaDoc e) {
91                 controller.closeEditor(true);
92             }
93         
94         });
95         
96         FocusAdapter JavaDoc focusListener = new FocusAdapter JavaDoc() {
97             public void focusLost (FocusEvent JavaDoc e) {
98                 controller.closeEditor (true);
99             }
100         };
101         editor.addFocusListener(focusListener);
102         
103         //editor.selectAll ();
104
}
105
106     public void notifyClosing (EditorController controller, Widget widget, JComboBox JavaDoc editor, boolean commit) {
107         editor.removeKeyListener (keyListener);
108         if (commit) {
109             if (widget != null) {
110                 widget.revalidate();
111                 widget.repaint();
112             }
113         }
114         localEditor.setSelectedItem(editor.getSelectedItem());
115     }
116
117     public EnumSet JavaDoc<ExpansionDirection> getExpansionDirections(EditorController controller, Widget widget, JComboBox JavaDoc editor) {
118         return expansionDirections;
119     }
120
121     public Rectangle JavaDoc getInitialEditorComponentBounds(EditorController controller, Widget widget, JComboBox JavaDoc editor, Rectangle JavaDoc viewBounds) {
122         return null;
123     }
124
125 }
126
Popular Tags