+++ /dev/null
-/** @file\r
- \r
- The file is used to override JComboBox to provides customized interfaces \r
- \r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
- \r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
- \r
- **/\r
-package org.tianocore.frameworkwizard.common.ui;\r
-\r
-import java.awt.event.FocusEvent;\r
-import java.awt.event.FocusListener;\r
-import java.awt.event.KeyEvent;\r
-import java.awt.event.KeyListener;\r
-import java.awt.event.MouseEvent;\r
-import java.awt.event.MouseListener;\r
-\r
-import javax.swing.JComboBox;\r
-import javax.swing.JFrame;\r
-import javax.swing.JPanel;\r
-\r
-/**\r
- The class is used to override JComboBox to provides customized interfaces\r
- It extends JComboBox implements KeyListener, MouseListener and FocusListener\r
- \r
-\r
- \r
- **/\r
-public class IComboBox extends JComboBox implements KeyListener, MouseListener, FocusListener {\r
-\r
- ///\r
- /// Define class Serial Version UID\r
- ///\r
- private static final long serialVersionUID = -1940262568168458911L;\r
-\r
- public void focusGained(FocusEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.FocusListener#focusLost(java.awt.event.FocusEvent)\r
- * \r
- * Override focusLost to exit edit mode\r
- * \r
- */\r
- public void focusLost(FocusEvent arg0) {\r
- this.closeEdit();\r
- }\r
-\r
- /**\r
- Main class, used for test\r
- \r
- @param args\r
- \r
- **/\r
- public static void main(String[] args) {\r
- JFrame jf = new JFrame();\r
- jf.setSize(500, 200);\r
- JPanel jp = new JPanel();\r
- jp.setLayout(null);\r
- IComboBox icb = new IComboBox();\r
- jp.add(icb, null);\r
- jf.setContentPane(jp);\r
- jf.setVisible(true);\r
- }\r
-\r
- /**\r
- This is the default constructor\r
- \r
- **/\r
- public IComboBox() {\r
- super();\r
- init();\r
- }\r
-\r
- /**\r
- This method initializes this\r
- \r
- **/\r
- private void init() {\r
- this.setSize(320, 20);\r
- this.setEditable(false);\r
- this.editor.addActionListener(this);\r
- this.addMouseListener(this);\r
- this.addKeyListener(this);\r
- this.getEditor().getEditorComponent().addKeyListener(this);\r
- this.getEditor().getEditorComponent().addFocusListener(this);\r
- this.setToolTipText("<html>Double Click to add an entry, then finish by press ENTER.<br>"\r
- + "Selecting DELETE will remove selected entry.</html>");\r
- }\r
-\r
- public void keyPressed(KeyEvent arg0) {\r
- // TODO Auto-generated method stub\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)\r
- * \r
- * Override keyReleased to listen key action\r
- * \r
- */\r
- public void keyReleased(KeyEvent arg0) {\r
- //\r
- //Add new item to list when press ENTER\r
- //\r
- if (arg0.getSource() == this.getEditor().getEditorComponent()) {\r
- if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\r
- String strCurrentText = this.getEditor().getItem().toString().trim();\r
- if (strCurrentText.length() == 0) {\r
- if (this.getItemCount() > 0) {\r
- this.setSelectedIndex(0);\r
- }\r
- } else {\r
- this.addItem(strCurrentText);\r
- this.setSelectedItem(strCurrentText);\r
- }\r
- this.setEditable(false);\r
- }\r
-\r
- if (arg0.getKeyCode() == KeyEvent.VK_ESCAPE) {\r
- closeEdit();\r
- }\r
- }\r
-\r
- if (arg0.getSource() == this) {\r
- //\r
- //Remove item from the list when press DEL\r
- //\r
- if (arg0.getKeyCode() == KeyEvent.VK_DELETE) {\r
- int intSelected = this.getSelectedIndex();\r
- if (intSelected > -1) {\r
- this.removeItemAt(this.getSelectedIndex());\r
- if (this.getItemCount() > 0) {\r
- this.setSelectedIndex(0);\r
- } else {\r
- this.removeAllItems();\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
- public void keyTyped(KeyEvent arg0) {\r
- // TODO Auto-generated method stub\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
- * \r
- * Override mouseClicked to enter edit mode when double click mouse\r
- * \r
- */\r
- public void mouseClicked(MouseEvent arg0) {\r
- if (arg0.getClickCount() == 2) {\r
- this.setEditable(true);\r
- this.getEditor().setItem("");\r
- }\r
- }\r
-\r
- public void mouseEntered(MouseEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void mouseExited(MouseEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void mousePressed(MouseEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- public void mouseReleased(MouseEvent arg0) {\r
- // TODO Auto-generated method stub\r
-\r
- }\r
-\r
- /**\r
- Exit edit mode\r
- \r
- **/\r
- private void closeEdit() {\r
- this.setEditable(false);\r
- this.getEditor().setItem("");\r
- }\r
-}\r