]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/ListEditor.java
Make opening dialogs re-gain focus when user switch back to main UI from other window...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / ListEditor.java
... / ...
CommitLineData
1/** @file\r
2 Java class GuidEditor.\r
3 \r
4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 \r
13**/\r
14package org.tianocore.frameworkwizard.platform.ui;\r
15\r
16import java.awt.Component;\r
17import java.awt.event.ActionEvent;\r
18import java.awt.event.ActionListener;\r
19import java.util.Vector;\r
20\r
21import javax.swing.AbstractCellEditor;\r
22import javax.swing.JButton;\r
23import javax.swing.JFrame;\r
24import javax.swing.JOptionPane;\r
25import javax.swing.JTable;\r
26import javax.swing.table.TableCellEditor;\r
27\r
28\r
29/**\r
30 Editor for table cell with GUID value.\r
31 @since PackageEditor 1.0\r
32 **/\r
33public class ListEditor extends AbstractCellEditor implements TableCellEditor, ActionListener {\r
34\r
35 /**\r
36 * \r
37 */\r
38 private static final long serialVersionUID = 1L;\r
39 private boolean canNotBeEmpty = false;\r
40 private JFrame topFrame = null;\r
41 String archs;\r
42 JButton button;\r
43 GenListDialog dialog;\r
44 protected static final String EDIT = "edit";\r
45\r
46 public ListEditor(JFrame frame) {\r
47 topFrame = frame;\r
48 button = new JButton();\r
49 button.setActionCommand(EDIT);\r
50 button.addActionListener(this);\r
51 button.setBorderPainted(false);\r
52\r
53 \r
54 dialog = new GenListDialog(this, frame);\r
55 \r
56 }\r
57 \r
58 public ListEditor(Vector<String> v, JFrame frame) {\r
59 this(frame);\r
60 dialog.initList(v);\r
61 }\r
62\r
63 /* (non-Javadoc)\r
64 * @see javax.swing.table.TableCellEditor#getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean, int, int)\r
65 */\r
66 public Component getTableCellEditorComponent(JTable arg0, Object arg1, boolean arg2, int arg3, int arg4) {\r
67 // TODO Auto-generated method stub\r
68 archs = (String)arg1;\r
69 return button;\r
70 }\r
71\r
72 /* (non-Javadoc)\r
73 * @see javax.swing.CellEditor#getCellEditorValue()\r
74 */\r
75 public Object getCellEditorValue() {\r
76 // TODO Auto-generated method stub\r
77 return archs;\r
78 }\r
79\r
80 /* (non-Javadoc)\r
81 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
82 */\r
83 public void actionPerformed(ActionEvent arg0) {\r
84 // TODO Auto-generated method stub\r
85 if (EDIT.equals(arg0.getActionCommand())) {\r
86 //The user has clicked the cell, so\r
87 //bring up the dialog.\r
88 button.setText(archs);\r
89 dialog.setList(archs);\r
90 dialog.setVisible(true);\r
91\r
92 //Make the renderer reappear.\r
93 fireEditingStopped();\r
94 }\r
95 else { //User pressed dialog's "OK" button.\r
96 Vector<String> v = dialog.getList();\r
97 if (canNotBeEmpty && v.size() == 0) {\r
98 JOptionPane.showMessageDialog(topFrame, "You must select at least one item.");\r
99 return;\r
100 }\r
101 String s = " ";\r
102 for (int i = 0; i < v.size(); ++i) {\r
103 s += v.get(i);\r
104 s += " ";\r
105 }\r
106 archs = s.trim();\r
107 dialog.dispose();\r
108 }\r
109\r
110 }\r
111\r
112 /**\r
113 * @param canNotBeEmpty The canNotBeEmpty to set.\r
114 */\r
115 public void setCanNotBeEmpty(boolean canNotBeEmpty) {\r
116 this.canNotBeEmpty = canNotBeEmpty;\r
117 }\r
118\r
119}\r