]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/BootModesDlg.java
Use table and popup window to add/edit all elements of module instead of original...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / BootModesDlg.java
CommitLineData
06a19cee 1/** @file\r
2 \r
3 The file is used to create, update BootModes of MSA/MBD file\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
15\r
16package org.tianocore.frameworkwizard.module.ui.dialog;\r
17\r
18import java.awt.event.ActionEvent;\r
19import java.util.Vector;\r
20\r
21import javax.swing.JButton;\r
22import javax.swing.JComboBox;\r
23import javax.swing.JLabel;\r
24import javax.swing.JPanel;\r
25import javax.swing.JScrollPane;\r
26import javax.swing.JTextField;\r
27\r
28import org.tianocore.frameworkwizard.common.DataType;\r
29import org.tianocore.frameworkwizard.common.DataValidation;\r
30import org.tianocore.frameworkwizard.common.EnumerationData;\r
31import org.tianocore.frameworkwizard.common.Log;\r
32import org.tianocore.frameworkwizard.common.Tools;\r
33import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
34import org.tianocore.frameworkwizard.common.ui.IDialog;\r
35import org.tianocore.frameworkwizard.common.ui.IFrame;\r
36import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
37import org.tianocore.frameworkwizard.module.Identifications.BootModes.BootModesIdentification;\r
38\r
39/**\r
40 The class is used to create, update BootModes of MSA/MBD file\r
41 It extends IDialog\r
42 \r
43\r
44\r
45 **/\r
46public class BootModesDlg extends IDialog {\r
47\r
48 ///\r
49 /// Define class Serial Version UID\r
50 ///\r
51 private static final long serialVersionUID = -3888558623432442561L;\r
52\r
53 //\r
54 //Define class members\r
55 //\r
56 private JPanel jContentPane = null;\r
57\r
58 private JLabel jLabelBootModeName = null;\r
59\r
60 private JComboBox jComboBoxBootModeName = null;\r
61\r
62 private JLabel jLabelUsage = null;\r
63\r
64 private JComboBox jComboBoxUsage = null;\r
65\r
66 private StarLabel jStarLabel1 = null;\r
67\r
68 private StarLabel jStarLabel2 = null;\r
69\r
70 private JLabel jLabelFeatureFlag = null;\r
71\r
72 private JTextField jTextFieldFeatureFlag = null;\r
73\r
74 private JLabel jLabelArch = null;\r
75\r
76 private JScrollPane jScrollPane = null;\r
77\r
78 private JLabel jLabelHelpText = null;\r
79\r
80 private JTextField jTextFieldHelpText = null;\r
81\r
82 private ArchCheckBox jArchCheckBox = null;\r
83\r
84 private JButton jButtonOk = null;\r
85\r
86 private JButton jButtonCancel = null;\r
87\r
88 //\r
89 // Not used by UI\r
90 //\r
91 private BootModesIdentification id = null;\r
92\r
93 private EnumerationData ed = new EnumerationData();\r
94\r
95 /**\r
96 This method initializes jComboBoxBootModeName \r
97 \r
98 @return javax.swing.JComboBox jComboBoxBootModeName\r
99 \r
100 **/\r
101 private JComboBox getJComboBoxBootModeName() {\r
102 if (jComboBoxBootModeName == null) {\r
103 jComboBoxBootModeName = new JComboBox();\r
104 jComboBoxBootModeName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
105 jComboBoxBootModeName.setPreferredSize(new java.awt.Dimension(320, 20));\r
106 }\r
107 return jComboBoxBootModeName;\r
108 }\r
109\r
110 /**\r
111 This method initializes jComboBoxUsage \r
112 \r
113 @return javax.swing.JComboBox jComboBoxUsage\r
114 \r
115 **/\r
116 private JComboBox getJComboBoxUsage() {\r
117 if (jComboBoxUsage == null) {\r
118 jComboBoxUsage = new JComboBox();\r
119 jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
120 jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
121 }\r
122 return jComboBoxUsage;\r
123 }\r
124\r
125 /**\r
126 * This method initializes jTextFieldFeatureFlag \r
127 * \r
128 * @return javax.swing.JTextField \r
129 */\r
130 private JTextField getJTextFieldFeatureFlag() {\r
131 if (jTextFieldFeatureFlag == null) {\r
132 jTextFieldFeatureFlag = new JTextField();\r
133 jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
134 jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
135 }\r
136 return jTextFieldFeatureFlag;\r
137 }\r
138\r
139 /**\r
140 This method initializes jScrollPane \r
141 \r
142 @return javax.swing.JScrollPane \r
143 */\r
144 private JScrollPane getJScrollPane() {\r
145 if (jScrollPane == null) {\r
146 jScrollPane = new JScrollPane();\r
147 jScrollPane.setViewportView(getJContentPane());\r
148 }\r
149 return jScrollPane;\r
150 }\r
151\r
152 /**\r
153 This method initializes jTextFieldHelpText \r
154 \r
155 @return javax.swing.JTextField \r
156 \r
157 **/\r
158 private JTextField getJTextFieldHelpText() {\r
159 if (jTextFieldHelpText == null) {\r
160 jTextFieldHelpText = new JTextField();\r
161 jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
162 jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
163 }\r
164 return jTextFieldHelpText;\r
165 }\r
166\r
167 /**\r
168 This method initializes jButtonOk \r
169 \r
170 @return javax.swing.JButton \r
171 \r
172 **/\r
173 private JButton getJButtonOk() {\r
174 if (jButtonOk == null) {\r
175 jButtonOk = new JButton();\r
176 jButtonOk.setBounds(new java.awt.Rectangle(290, 140, 90, 20));\r
177 jButtonOk.setText("Ok");\r
178 jButtonOk.addActionListener(this);\r
179 }\r
180 return jButtonOk;\r
181 }\r
182\r
183 /**\r
184 This method initializes jButtonCancel \r
185 \r
186 @return javax.swing.JButton \r
187 \r
188 **/\r
189 private JButton getJButtonCancel() {\r
190 if (jButtonCancel == null) {\r
191 jButtonCancel = new JButton();\r
192 jButtonCancel.setBounds(new java.awt.Rectangle(390, 140, 90, 20));\r
193 jButtonCancel.setText("Cancel");\r
194 jButtonCancel.addActionListener(this);\r
195 }\r
196 return jButtonCancel;\r
197 }\r
198\r
199 public static void main(String[] args) {\r
200 }\r
201\r
202 /**\r
203 This method initializes this\r
204 \r
205 **/\r
206 private void init() {\r
207 this.setSize(500, 200);\r
208 this.setContentPane(getJScrollPane());\r
209 this.setTitle("Boot Modes");\r
210 initFrame();\r
211 this.setViewMode(false);\r
212 this.centerWindow();\r
213 }\r
214\r
215 /**\r
216 This method initializes this\r
217 Fill values to all fields if these values are not empty\r
218 \r
219 @param inBootModesId\r
220\r
221 **/\r
222 private void init(BootModesIdentification inBootModesId) {\r
223 init();\r
224 this.id = inBootModesId;\r
225\r
226 if (this.id != null) {\r
227 this.jComboBoxBootModeName.setSelectedItem(id.getName());\r
228 this.jComboBoxUsage.setSelectedItem(id.getUsage());\r
229 this.jTextFieldHelpText.setText(id.getHelp());\r
230 this.jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
231 this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
232 }\r
233 }\r
234\r
235 /**\r
236 This is the override edit constructor\r
237 \r
238 @param inBootModesIdentification\r
239 @param iFrame\r
240 \r
241 **/\r
242 public BootModesDlg(BootModesIdentification inBootModesIdentification, IFrame iFrame) {\r
243 super(iFrame, true);\r
244 init(inBootModesIdentification);\r
245 }\r
246\r
247 /**\r
248 Disable all components when the mode is view\r
249 \r
250 @param isView true - The view mode; false - The non-view mode\r
251 \r
252 **/\r
253 public void setViewMode(boolean isView) {\r
254 if (isView) {\r
255 this.jComboBoxBootModeName.setEnabled(!isView);\r
256 this.jComboBoxUsage.setEnabled(!isView);\r
257 }\r
258 }\r
259\r
260 /**\r
261 This method initializes jContentPane\r
262 \r
263 @return javax.swing.JPanel jContentPane\r
264 \r
265 **/\r
266 private JPanel getJContentPane() {\r
267 if (jContentPane == null) {\r
268 jArchCheckBox = new ArchCheckBox();\r
269 jArchCheckBox.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
270 jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
271 jLabelArch = new JLabel();\r
272 jLabelArch.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
273 jLabelArch.setText("Arch");\r
274 jLabelFeatureFlag = new JLabel();\r
275 jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
276 jLabelFeatureFlag.setText("Feature Flag");\r
277 jLabelUsage = new JLabel();\r
278 jLabelUsage.setText("Usage");\r
279 jLabelUsage.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
280 jLabelBootModeName = new JLabel();\r
281 jLabelBootModeName.setText("Boot Mode Name");\r
282 jLabelBootModeName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
283 jLabelHelpText = new JLabel();\r
284 jLabelHelpText.setBounds(new java.awt.Rectangle(14, 60, 140, 20));\r
285 jLabelHelpText.setText("Help Text");\r
286\r
287 jContentPane = new JPanel();\r
288 jContentPane.setLayout(null);\r
289 jContentPane.setPreferredSize(new java.awt.Dimension(490, 165));\r
290\r
291 jContentPane.add(jLabelBootModeName, null);\r
292 jContentPane.add(getJComboBoxBootModeName(), null);\r
293 jContentPane.add(jLabelUsage, null);\r
294 jContentPane.add(getJComboBoxUsage(), null);\r
295 jStarLabel1 = new StarLabel();\r
296 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
297 jStarLabel2 = new StarLabel();\r
298 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
299\r
300 jContentPane.add(jStarLabel1, null);\r
301 jContentPane.add(jStarLabel2, null);\r
302 jContentPane.add(jLabelFeatureFlag, null);\r
303 jContentPane.add(getJTextFieldFeatureFlag(), null);\r
304 jContentPane.add(jLabelArch, null);\r
305\r
306 jContentPane.add(jLabelHelpText, null);\r
307 jContentPane.add(getJTextFieldHelpText(), null);\r
308 jContentPane.add(jArchCheckBox, null);\r
309 jContentPane.add(getJButtonOk(), null);\r
310 jContentPane.add(getJButtonCancel(), null);\r
311 }\r
312 return jContentPane;\r
313 }\r
314\r
315 /**\r
316 This method initializes BootModeName groups and Usage type\r
317 \r
318 **/\r
319 private void initFrame() {\r
320 Tools.generateComboBoxByVector(jComboBoxBootModeName, ed.getVBootModeNames());\r
321 Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVPpiUsage());\r
322 }\r
323\r
324 /* (non-Javadoc)\r
325 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
326 *\r
327 * Override actionPerformed to listen all actions\r
328 * \r
329 */\r
330 public void actionPerformed(ActionEvent arg0) {\r
331 if (arg0.getSource() == jButtonOk) {\r
332 if (checkAdd()) {\r
333 getCurrentBootModes();\r
334 this.returnType = DataType.RETURN_TYPE_OK;\r
335 this.setVisible(false);\r
336 }\r
337 }\r
338\r
339 if (arg0.getSource() == jButtonCancel) {\r
340 this.returnType = DataType.RETURN_TYPE_CANCEL;\r
341 this.setVisible(false);\r
342 }\r
343 }\r
344\r
345 /**\r
346 Data validation for all fields\r
347 \r
348 @retval true - All datas are valid\r
349 @retval false - At least one data is invalid\r
350 \r
351 **/\r
352 public boolean checkAdd() {\r
353 //\r
354 // Check if all fields have correct data types \r
355 //\r
356\r
357 //\r
358 // Check FeatureFlag\r
359 //\r
360 if (!isEmpty(this.jTextFieldFeatureFlag.getText())) {\r
361 if (!DataValidation.isFeatureFlag(this.jTextFieldFeatureFlag.getText())) {\r
362 Log.err("Incorrect data type for Feature Flag");\r
363 return false;\r
364 }\r
365 }\r
366\r
367 return true;\r
368 }\r
369\r
370 private BootModesIdentification getCurrentBootModes() {\r
371 String arg0 = this.jComboBoxBootModeName.getSelectedItem().toString();\r
372\r
373 String arg1 = this.jComboBoxUsage.getSelectedItem().toString();\r
374\r
375 String arg2 = this.jTextFieldFeatureFlag.getText();\r
376 Vector<String> arg3 = this.jArchCheckBox.getSelectedItemsVector();\r
377 String arg4 = this.jTextFieldHelpText.getText();\r
378 id = new BootModesIdentification(arg0, arg1, arg2, arg3, arg4);\r
379 return id;\r
380 }\r
381\r
382 public BootModesIdentification getId() {\r
383 return id;\r
384 }\r
385\r
386 public void setId(BootModesIdentification id) {\r
387 this.id = id;\r
388 }\r
389}\r