]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/ModuleEditor/src/org/tianocore/packaging/module/ui/ModuleBootModes.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 / module / ui / ModuleBootModes.java
CommitLineData
878ddf1f 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.packaging.module.ui;\r
17\r
18import java.awt.event.ActionEvent;\r
19\r
20import javax.swing.JButton;\r
21import javax.swing.JComboBox;\r
22import javax.swing.JLabel;\r
23import javax.swing.JPanel;\r
24import javax.swing.JTextField;\r
25\r
26import org.tianocore.BootModeNames;\r
27import org.tianocore.BootModeUsage;\r
28import org.tianocore.BootModesDocument;\r
29import org.tianocore.common.DataValidation;\r
30import org.tianocore.common.Log;\r
31import org.tianocore.common.Tools;\r
32import org.tianocore.packaging.common.ui.IInternalFrame;\r
33import org.tianocore.packaging.common.ui.StarLabel;\r
34\r
35/**\r
36 The class is used to create, update BootModes of MSA/MBD file\r
37 It extends IInternalFrame\r
38 \r
39 @since ModuleEditor 1.0\r
40\r
41 **/\r
42public class ModuleBootModes extends IInternalFrame {\r
43\r
44 ///\r
45 /// Define class Serial Version UID\r
46 ///\r
47 private static final long serialVersionUID = -3888558623432442561L;\r
48\r
49 //\r
50 //Define class members\r
51 //\r
52 private BootModesDocument.BootModes bootModes = null;\r
53\r
54 private int location = -1;\r
55\r
56 private JPanel jContentPane = null;\r
57\r
58 private JLabel jLabelGuid = null;\r
59\r
60 private JTextField jTextFieldGuid = null;\r
61\r
62 private JLabel jLabelBootModeName = null;\r
63\r
64 private JComboBox jComboBoxBootModeName = null;\r
65\r
66 private JLabel jLabelUsage = null;\r
67\r
68 private JComboBox jComboBoxUsage = null;\r
69\r
70 private JButton jButtonOk = null;\r
71\r
72 private JButton jButtonCancel = null;\r
73\r
74 private JLabel jLabelOverrideID = null;\r
75\r
76 private JTextField jTextFieldOverrideID = null;\r
77\r
78 private JButton jButtonGenerateGuid = null;\r
79\r
80 private StarLabel jStarLabel1 = null;\r
81\r
82 /**\r
83 This method initializes jTextFieldGuid \r
84 \r
85 @return javax.swing.JTextField jTextFieldGuid \r
86 \r
87 **/\r
88 private JTextField getJTextFieldGuid() {\r
89 if (jTextFieldGuid == null) {\r
90 jTextFieldGuid = new JTextField();\r
2a8b1c0a 91 jTextFieldGuid.setBounds(new java.awt.Rectangle(160, 35, 250, 20));\r
878ddf1f 92 }\r
93 return jTextFieldGuid;\r
94 }\r
95\r
96 /**\r
97 This method initializes jComboBoxBootModeName \r
98 \r
99 @return javax.swing.JComboBox jComboBoxBootModeName\r
100 \r
101 **/\r
102 private JComboBox getJComboBoxBootModeName() {\r
103 if (jComboBoxBootModeName == null) {\r
104 jComboBoxBootModeName = new JComboBox();\r
105 jComboBoxBootModeName.setBounds(new java.awt.Rectangle(160, 10, 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, 60, 320, 20));\r
120 }\r
121 return jComboBoxUsage;\r
122 }\r
123\r
124 /**\r
125 This method initializes jButtonOk \r
126 \r
127 @return javax.swing.JButton jButtonOk\r
128 \r
129 **/\r
130 private JButton getJButtonOk() {\r
131 if (jButtonOk == null) {\r
132 jButtonOk = new JButton();\r
133 jButtonOk.setText("OK");\r
134 jButtonOk.setBounds(new java.awt.Rectangle(280, 115, 90, 20));\r
135 jButtonOk.addActionListener(this);\r
136 }\r
137 return jButtonOk;\r
138 }\r
139\r
140 /**\r
141 This method initializes jButtonCancel \r
142 \r
143 @return javax.swing.JButton jButtonCancel\r
144 \r
145 **/\r
146 private JButton getJButtonCancel() {\r
147 if (jButtonCancel == null) {\r
148 jButtonCancel = new JButton();\r
149 jButtonCancel.setText("Cancel");\r
150 jButtonCancel.setBounds(new java.awt.Rectangle(390, 115, 90, 20));\r
151 jButtonCancel.addActionListener(this);\r
152 }\r
153 return jButtonCancel;\r
154 }\r
155\r
156 /**\r
157 This method initializes jTextFieldOverrideID \r
158 \r
159 @return javax.swing.JTextField jTextFieldOverrideID\r
160 \r
161 **/\r
162 private JTextField getJTextFieldOverrideID() {\r
163 if (jTextFieldOverrideID == null) {\r
164 jTextFieldOverrideID = new JTextField();\r
2a8b1c0a 165 jTextFieldOverrideID.setBounds(new java.awt.Rectangle(160, 85, 50, 20));\r
878ddf1f 166 }\r
167 return jTextFieldOverrideID;\r
168 }\r
169\r
170 /**\r
171 This method initializes jButtonGenerateGuid \r
172 \r
173 @return javax.swing.JButton jButtonGenerateGuid\r
174 \r
175 **/\r
176 private JButton getJButtonGenerateGuid() {\r
177 if (jButtonGenerateGuid == null) {\r
178 jButtonGenerateGuid = new JButton();\r
2a8b1c0a 179 jButtonGenerateGuid.setBounds(new java.awt.Rectangle(415, 35, 65, 20));\r
878ddf1f 180 jButtonGenerateGuid.setText("GEN");\r
181 jButtonGenerateGuid.addActionListener(this);\r
182 }\r
183 return jButtonGenerateGuid;\r
184 }\r
185\r
186 public static void main(String[] args) {\r
187 }\r
188\r
189 /**\r
190 This is the default constructor\r
191 \r
192 **/\r
193 public ModuleBootModes() {\r
194 super();\r
195 init();\r
196 this.setVisible(true);\r
197 }\r
198\r
199 /**\r
200 This is the override edit constructor\r
201 \r
202 @param inBootModes The input BootModesDocument.BootModes\r
203 \r
204 **/\r
205 public ModuleBootModes(BootModesDocument.BootModes inBootModes) {\r
206 super();\r
207 init(inBootModes);\r
208 this.setVisible(true);\r
209 }\r
210\r
211 /**\r
212 This is the override edit constructor\r
213 \r
214 @param inBootModes The input BootModesDocument.BootModes\r
215 @param type The input data of node type\r
216 @param index The input data of node index\r
217 \r
218 **/\r
219 public ModuleBootModes(BootModesDocument.BootModes inBootModes, int type, int index) {\r
220 super();\r
221 init(inBootModes, type, index);\r
222 this.setVisible(true);\r
223 }\r
224\r
225 /**\r
226 This method initializes this\r
227\r
228 @param inBootModes BootModesDocument.BootModes\r
229 \r
230 **/\r
231 private void init(BootModesDocument.BootModes inBootModes) {\r
232 init();\r
233 this.setBootModes(inBootModes);\r
234 }\r
235\r
236 /**\r
237 This method initializes this\r
238 Fill values to all fields if these values are not empty\r
239 \r
240 @param inBootModes The input BootModesDocument.BootModes\r
241 @param type The input data of node type\r
242 @param index The input data of node index\r
243 \r
244 **/\r
245 private void init(BootModesDocument.BootModes inBootModes, int type, int index) {\r
246 init(inBootModes);\r
247 this.location = index;\r
248 if (this.bootModes.getBootModeList().size() > 0) {\r
249 if (this.bootModes.getBootModeArray(index).getBootModeName() != null) {\r
250 this.jComboBoxBootModeName.setSelectedItem(this.bootModes.getBootModeArray(index).getBootModeName()\r
251 .toString());\r
252 }\r
253 if (this.bootModes.getBootModeArray(index).getGuid() != null) {\r
254 this.jTextFieldGuid.setText(this.bootModes.getBootModeArray(index).getGuid());\r
255 }\r
256 if (this.bootModes.getBootModeArray(index).getUsage() != null) {\r
257 this.jComboBoxUsage.setSelectedItem(this.bootModes.getBootModeArray(index).getUsage().toString());\r
258 }\r
259 this.jTextFieldOverrideID.setText(String.valueOf(this.bootModes.getBootModeArray(index).getOverrideID()));\r
260 }\r
261 }\r
262\r
263 /**\r
264 * This method initializes this\r
265 * \r
266 * @return void\r
267 */\r
268 private void init() {\r
269 this.setContentPane(getJContentPane());\r
270 this.setTitle("Boot Mode");\r
271 this.setBounds(new java.awt.Rectangle(0, 0, 500, 515));\r
272 initFrame();\r
273 this.setViewMode(false);\r
274 }\r
275\r
276 /**\r
277 Disable all components when the mode is view\r
278 \r
279 @param isView true - The view mode; false - The non-view mode\r
280 \r
281 **/\r
282 public void setViewMode(boolean isView) {\r
283 this.jButtonOk.setVisible(false);\r
284 this.jButtonCancel.setVisible(false);\r
285 if (isView) {\r
286 this.jComboBoxBootModeName.setEnabled(!isView);\r
287 this.jTextFieldGuid.setEnabled(!isView);\r
288 this.jComboBoxUsage.setEnabled(!isView);\r
289 this.jTextFieldOverrideID.setEnabled(!isView);\r
290 this.jButtonCancel.setEnabled(!isView);\r
291 this.jButtonGenerateGuid.setEnabled(!isView);\r
292 this.jButtonOk.setEnabled(!isView);\r
293 }\r
294 }\r
295\r
296 /**\r
297 This method initializes jContentPane\r
298 \r
299 @return javax.swing.JPanel jContentPane\r
300 \r
301 **/\r
302 private JPanel getJContentPane() {\r
303 if (jContentPane == null) {\r
304 jLabelOverrideID = new JLabel();\r
305 jLabelOverrideID.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
306 jLabelOverrideID.setText("Override ID");\r
307 jLabelUsage = new JLabel();\r
308 jLabelUsage.setText("Usage");\r
309 jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
310 jLabelBootModeName = new JLabel();\r
311 jLabelBootModeName.setText("Boot Mode Name");\r
312 jLabelBootModeName.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
313 jLabelGuid = new JLabel();\r
314 jLabelGuid.setText("Guid");\r
315 jLabelGuid.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
316 jContentPane = new JPanel();\r
317 jContentPane.setLayout(null);\r
318 jContentPane.add(jLabelGuid, null);\r
319 jContentPane.add(getJTextFieldGuid(), null);\r
320 jContentPane.add(jLabelBootModeName, null);\r
321 jContentPane.add(getJComboBoxBootModeName(), null);\r
322 jContentPane.add(jLabelUsage, null);\r
323 jContentPane.add(getJComboBoxUsage(), null);\r
324 jContentPane.add(getJButtonOk(), null);\r
325 jContentPane.add(getJButtonCancel(), null);\r
326 jContentPane.add(jLabelOverrideID, null);\r
327 jContentPane.add(getJTextFieldOverrideID(), null);\r
328 jContentPane.add(getJButtonGenerateGuid(), null);\r
329\r
330 jStarLabel1 = new StarLabel();\r
331 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
332\r
333 jContentPane.add(jStarLabel1, null);\r
334 }\r
335 return jContentPane;\r
336 }\r
337\r
338 /**\r
339 This method initializes BootModeName groups and Usage type\r
340 \r
341 **/\r
342 private void initFrame() {\r
343 jComboBoxUsage.addItem("ALWAYS_CONSUMED");\r
344 jComboBoxUsage.addItem("SOMETIMES_CONSUMED");\r
345 jComboBoxUsage.addItem("ALWAYS_PRODUCED");\r
346 jComboBoxUsage.addItem("SOMETIMES_PRODUCED");\r
347\r
348 jComboBoxBootModeName.addItem("FULL");\r
349 jComboBoxBootModeName.addItem("MINIMAL");\r
350 jComboBoxBootModeName.addItem("NO_CHANGE");\r
351 jComboBoxBootModeName.addItem("DIAGNOSTICS");\r
352 jComboBoxBootModeName.addItem("DEFAULT");\r
353 jComboBoxBootModeName.addItem("S2_RESUME");\r
354 jComboBoxBootModeName.addItem("S3_RESUME");\r
355 jComboBoxBootModeName.addItem("S4_RESUME");\r
356 jComboBoxBootModeName.addItem("S5_RESUME");\r
357 jComboBoxBootModeName.addItem("FLASH_UPDATE");\r
358 jComboBoxBootModeName.addItem("RECOVERY");\r
359 }\r
360\r
361 /* (non-Javadoc)\r
362 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
363 *\r
364 * Override actionPerformed to listen all actions\r
365 * \r
366 */\r
367 public void actionPerformed(ActionEvent arg0) {\r
368 if (arg0.getSource() == jButtonOk) {\r
369 this.setEdited(true);\r
370 this.save();\r
371 this.dispose();\r
372 }\r
373 if (arg0.getSource() == jButtonCancel) {\r
374 this.dispose();\r
375 }\r
376\r
377 if (arg0.getSource() == jButtonGenerateGuid) {\r
378 jTextFieldGuid.setText(Tools.generateUuidString());\r
379 }\r
380 }\r
381\r
382 /**\r
383 Get BootModesDocument.BootModes\r
384 \r
385 @return BootModesDocument.BootModes\r
386 \r
387 **/\r
388 public BootModesDocument.BootModes getBootModes() {\r
389 return bootModes;\r
390 }\r
391\r
392 /**\r
393 Set BootModesDocument.BootModes\r
394 \r
395 @param bootModes BootModesDocument.BootModes\r
396 \r
397 **/\r
398 public void setBootModes(BootModesDocument.BootModes bootModes) {\r
399 this.bootModes = bootModes;\r
400 }\r
401\r
402 /**\r
403 Data validation for all fields\r
404 \r
405 @retval true - All datas are valid\r
406 @retval false - At least one data is invalid\r
407 \r
408 **/\r
409 public boolean check() {\r
410 //\r
411 // Check if all fields have correct data types \r
412 //\r
413 if (!isEmpty(this.jTextFieldGuid.getText()) && !DataValidation.isGuid(this.jTextFieldGuid.getText())) {\r
414 Log.err("Incorrect data type for Guid");\r
415 return false;\r
416 }\r
417 if (!isEmpty(this.jTextFieldOverrideID.getText())\r
418 && !DataValidation.isOverrideID(this.jTextFieldOverrideID.getText())) {\r
419 Log.err("Incorrect data type for Override ID");\r
420 return false;\r
421 }\r
422\r
423 return true;\r
424 }\r
425\r
426 /**\r
427 Save all components of Mbd Header\r
428 if exists bootModes, set the value directly\r
429 if not exists bootModes, new an instance first\r
430 \r
431 **/\r
432 public void save() {\r
433 try {\r
434 if (this.bootModes == null) {\r
435 bootModes = BootModesDocument.BootModes.Factory.newInstance();\r
436 }\r
437 BootModesDocument.BootModes.BootMode bootMode = BootModesDocument.BootModes.BootMode.Factory.newInstance();\r
438 bootMode.setBootModeName(BootModeNames.Enum.forString(jComboBoxBootModeName.getSelectedItem().toString()));\r
439 if (!isEmpty(this.jTextFieldGuid.getText())) {\r
440 bootMode.setGuid(this.jTextFieldGuid.getText());\r
441 }\r
442 bootMode.setUsage(BootModeUsage.Enum.forString(jComboBoxUsage.getSelectedItem().toString()));\r
443 if (!isEmpty(this.jTextFieldOverrideID.getText())) {\r
444 bootMode.setOverrideID(Integer.parseInt(this.jTextFieldOverrideID.getText()));\r
445 }\r
446 if (location > -1) {\r
447 bootModes.setBootModeArray(location, bootMode);\r
448 } else {\r
449 bootModes.addNewBootMode();\r
450 bootModes.setBootModeArray(bootModes.getBootModeList().size() - 1, bootMode);\r
451 }\r
452 } catch (Exception e) {\r
453 Log.err("Update Boot Modes", e.getMessage());\r
454 }\r
455 }\r
456}\r