]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/common/ui/IComboBox.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@671 6f19259b...
[mirror_edk2.git] / Tools / Source / ModuleEditor / src / org / tianocore / packaging / common / ui / IComboBox.java
CommitLineData
878ddf1f 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.packaging.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 @since ModuleEditor 1.0\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 }\r
96\r
97 public void keyPressed(KeyEvent arg0) {\r
98 // TODO Auto-generated method stub\r
99 }\r
100\r
101 /* (non-Javadoc)\r
102 * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)\r
103 * \r
104 * Override keyReleased to listen key action\r
105 * \r
106 */\r
107 public void keyReleased(KeyEvent arg0) {\r
108 //\r
109 //Add new item to list when press ENTER\r
110 //\r
111 if (arg0.getSource() == this.getEditor().getEditorComponent()) {\r
112 if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\r
113 String strCurrentText = this.getEditor().getItem().toString().trim();\r
114 if (strCurrentText.length() == 0) {\r
115 if (this.getItemCount() > 0) {\r
116 this.setSelectedIndex(0);\r
117 }\r
118 } else {\r
119 this.addItem(strCurrentText);\r
120 this.setSelectedItem(strCurrentText);\r
121 }\r
122 this.setEditable(false);\r
123 }\r
124 if (arg0.getKeyCode() == KeyEvent.VK_ESCAPE) {\r
125 closeEdit();\r
126 }\r
127 }\r
128\r
129 if (arg0.getSource() == this) {\r
130 //\r
131 //Remove item from the list when press DEL\r
132 //\r
133 if (arg0.getKeyCode() == KeyEvent.VK_DELETE) {\r
134 int intSelected = this.getSelectedIndex();\r
135 if (intSelected > -1) {\r
136 this.removeItemAt(this.getSelectedIndex());\r
137 if (this.getItemCount() > 0) {\r
138 this.setSelectedIndex(0);\r
139 } else {\r
140 this.removeAllItems();\r
141 }\r
142 }\r
143 }\r
144 }\r
145 }\r
146\r
147 public void keyTyped(KeyEvent arg0) {\r
148 // TODO Auto-generated method stub\r
149 }\r
150\r
151 /* (non-Javadoc)\r
152 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
153 * \r
154 * Override mouseClicked to enter edit mode when double click mouse\r
155 * \r
156 */\r
157 public void mouseClicked(MouseEvent arg0) {\r
158 if (arg0.getClickCount() == 2) {\r
159 this.setEditable(true);\r
160 this.getEditor().setItem("");\r
161 }\r
162\r
163 }\r
164\r
165 public void mouseEntered(MouseEvent arg0) {\r
166 // TODO Auto-generated method stub\r
167\r
168 }\r
169\r
170 public void mouseExited(MouseEvent arg0) {\r
171 // TODO Auto-generated method stub\r
172\r
173 }\r
174\r
175 public void mousePressed(MouseEvent arg0) {\r
176 // TODO Auto-generated method stub\r
177\r
178 }\r
179\r
180 public void mouseReleased(MouseEvent arg0) {\r
181 // TODO Auto-generated method stub\r
182\r
183 }\r
184\r
185 /**\r
186 Exit edit mode\r
187 \r
188 **/\r
189 private void closeEdit() {\r
190 this.setEditable(false);\r
191 this.getEditor().setItem("");\r
192 if (this.getItemCount() > 0) {\r
193 this.setSelectedIndex(0);\r
194 }\r
195 }\r
196}\r