]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IComboBox.java
Fixed Absolute position of fields, Added ToolTipText and made HelpText a Scrolling...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / common / ui / IComboBox.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to override JComboBox to provides customized interfaces \r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15package org.tianocore.frameworkwizard.common.ui;\r
16\r
17import java.awt.event.FocusEvent;\r
18import java.awt.event.FocusListener;\r
19import java.awt.event.KeyEvent;\r
20import java.awt.event.KeyListener;\r
21import java.awt.event.MouseEvent;\r
22import java.awt.event.MouseListener;\r
23\r
24import javax.swing.JComboBox;\r
25import javax.swing.JFrame;\r
26import javax.swing.JPanel;\r
27\r
28/**\r
29 The class is used to override JComboBox to provides customized interfaces\r
30 It extends JComboBox implements KeyListener, MouseListener and FocusListener\r
31 \r
32\r
33 \r
34 **/\r
35public class IComboBox extends JComboBox implements KeyListener, MouseListener, FocusListener {\r
36\r
37 ///\r
38 /// Define class Serial Version UID\r
39 ///\r
40 private static final long serialVersionUID = -1940262568168458911L;\r
41\r
42 public void focusGained(FocusEvent arg0) {\r
43 // TODO Auto-generated method stub\r
44\r
45 }\r
46\r
47 /* (non-Javadoc)\r
48 * @see java.awt.event.FocusListener#focusLost(java.awt.event.FocusEvent)\r
49 * \r
50 * Override focusLost to exit edit mode\r
51 * \r
52 */\r
53 public void focusLost(FocusEvent arg0) {\r
54 this.closeEdit();\r
55 }\r
56\r
57 /**\r
58 Main class, used for test\r
59 \r
60 @param args\r
61 \r
62 **/\r
63 public static void main(String[] args) {\r
64 JFrame jf = new JFrame();\r
65 jf.setSize(500, 200);\r
66 JPanel jp = new JPanel();\r
67 jp.setLayout(null);\r
68 IComboBox icb = new IComboBox();\r
69 jp.add(icb, null);\r
70 jf.setContentPane(jp);\r
71 jf.setVisible(true);\r
72 }\r
73\r
74 /**\r
75 This is the default constructor\r
76 \r
77 **/\r
78 public IComboBox() {\r
79 super();\r
80 init();\r
81 }\r
82\r
83 /**\r
84 This method initializes this\r
85 \r
86 **/\r
87 private void init() {\r
88 this.setSize(320, 20);\r
89 this.setEditable(false);\r
90 this.editor.addActionListener(this);\r
91 this.addMouseListener(this);\r
92 this.addKeyListener(this);\r
93 this.getEditor().getEditorComponent().addKeyListener(this);\r
94 this.getEditor().getEditorComponent().addFocusListener(this);\r
95 this.setToolTipText("Double Click to add an entry and finished by press ENTER. Press DELETE can remove selected entry.");\r
96 }\r
97\r
98 public void keyPressed(KeyEvent arg0) {\r
99 // TODO Auto-generated method stub\r
100 }\r
101\r
102 /* (non-Javadoc)\r
103 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)\r
104 * \r
105 * Override keyReleased to listen key action\r
106 * \r
107 */\r
108 public void keyReleased(KeyEvent arg0) {\r
109 //\r
110 //Add new item to list when press ENTER\r
111 //\r
112 if (arg0.getSource() == this.getEditor().getEditorComponent()) {\r
113 if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\r
114 String strCurrentText = this.getEditor().getItem().toString().trim();\r
115 if (strCurrentText.length() == 0) {\r
116 if (this.getItemCount() > 0) {\r
117 this.setSelectedIndex(0);\r
118 }\r
119 } else {\r
120 this.addItem(strCurrentText);\r
121 this.setSelectedItem(strCurrentText);\r
122 }\r
123 this.setEditable(false);\r
124 }\r
125 if (arg0.getKeyCode() == KeyEvent.VK_ESCAPE) {\r
126 closeEdit();\r
127 }\r
128 }\r
129\r
130 if (arg0.getSource() == this) {\r
131 //\r
132 //Remove item from the list when press DEL\r
133 //\r
134 if (arg0.getKeyCode() == KeyEvent.VK_DELETE) {\r
135 int intSelected = this.getSelectedIndex();\r
136 if (intSelected > -1) {\r
137 this.removeItemAt(this.getSelectedIndex());\r
138 if (this.getItemCount() > 0) {\r
139 this.setSelectedIndex(0);\r
140 } else {\r
141 this.removeAllItems();\r
142 }\r
143 }\r
144 }\r
145 }\r
146 }\r
147\r
148 public void keyTyped(KeyEvent arg0) {\r
149 // TODO Auto-generated method stub\r
150 }\r
151\r
152 /* (non-Javadoc)\r
153 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
154 * \r
155 * Override mouseClicked to enter edit mode when double click mouse\r
156 * \r
157 */\r
158 public void mouseClicked(MouseEvent arg0) {\r
159 if (arg0.getClickCount() == 2) {\r
160 this.setEditable(true);\r
161 this.getEditor().setItem("");\r
162 }\r
163\r
164 }\r
165\r
166 public void mouseEntered(MouseEvent arg0) {\r
167 // TODO Auto-generated method stub\r
168\r
169 }\r
170\r
171 public void mouseExited(MouseEvent arg0) {\r
172 // TODO Auto-generated method stub\r
173\r
174 }\r
175\r
176 public void mousePressed(MouseEvent arg0) {\r
177 // TODO Auto-generated method stub\r
178\r
179 }\r
180\r
181 public void mouseReleased(MouseEvent arg0) {\r
182 // TODO Auto-generated method stub\r
183\r
184 }\r
185\r
186 /**\r
187 Exit edit mode\r
188 \r
189 **/\r
190 private void closeEdit() {\r
191 this.setEditable(false);\r
192 this.getEditor().setItem("");\r
193 if (this.getItemCount() > 0) {\r
194 this.setSelectedIndex(0);\r
195 }\r
196 }\r
197}\r