]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
1. Fix EDKT462: "Save/Save All' are still highlighted if close a msa/spd/fpd without...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / MsaHeader.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The file is used to create, update MsaHeader of MSA 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;\r
17\r
18import java.awt.event.ActionEvent;\r
19import java.awt.event.ComponentEvent;\r
20import java.awt.event.FocusEvent;\r
6173283b 21import java.awt.event.ItemEvent;\r
739c6b04 22import java.util.Vector;\r
a13899c5 23\r
b63cc1b6 24import javax.swing.ButtonGroup;\r
a13899c5 25import javax.swing.JButton;\r
739c6b04 26import javax.swing.JCheckBox;\r
a13899c5 27import javax.swing.JComboBox;\r
28import javax.swing.JLabel;\r
29import javax.swing.JPanel;\r
30import javax.swing.JScrollPane;\r
31import javax.swing.JTextArea;\r
32import javax.swing.JTextField;\r
33\r
3b7a9058 34import org.tianocore.ExternsDocument;\r
9a8d6d9f 35import org.tianocore.ModuleDefinitionsDocument;\r
a13899c5 36import org.tianocore.ModuleSurfaceAreaDocument;\r
37import org.tianocore.ModuleTypeDef;\r
38import org.tianocore.MsaHeaderDocument;\r
3b7a9058 39import org.tianocore.PcdDriverTypes;\r
a13899c5 40import org.tianocore.LicenseDocument.License;\r
41import org.tianocore.frameworkwizard.common.DataType;\r
42import org.tianocore.frameworkwizard.common.DataValidation;\r
43import org.tianocore.frameworkwizard.common.EnumerationData;\r
44import org.tianocore.frameworkwizard.common.Log;\r
a13899c5 45import org.tianocore.frameworkwizard.common.Tools;\r
79cb6fdb 46import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
a13899c5 47import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
48import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
b63cc1b6 49import javax.swing.JRadioButton;\r
cc95b47b 50import javax.swing.event.DocumentEvent;\r
51import javax.swing.event.DocumentListener;\r
a13899c5 52\r
53/**\r
54 The class is used to create, update MsaHeader of MSA file\r
55 It extends IInternalFrame\r
56 \r
57\r
58\r
59 **/\r
cc95b47b 60public class MsaHeader extends IInternalFrame implements DocumentListener {\r
a13899c5 61\r
62 ///\r
63 /// Define class Serial Version UID\r
64 ///\r
65 private static final long serialVersionUID = -8152099582923006900L;\r
66\r
9d0ac02b 67 private int dialogWidth = 500;\r
3b7a9058 68\r
9d0ac02b 69 private int dialogHeight = 630;\r
3b7a9058 70\r
0f6a6511 71 private final int labelWidth = 155;\r
6173283b 72\r
0f6a6511 73 private int valueWidth = 320;\r
6173283b 74\r
0f6a6511 75 private final int labelCol = 12;\r
6173283b 76\r
0f6a6511 77 private final int valueCol = 168;\r
6173283b 78\r
a13899c5 79 //\r
80 //Define class members\r
81 //\r
82 private JPanel jContentPane = null;\r
83\r
84 private JLabel jLabelBaseName = null;\r
85\r
86 private JTextField jTextFieldBaseName = null;\r
87\r
88 private JLabel jLabelGuid = null;\r
89\r
90 private JTextField jTextFieldGuid = null;\r
91\r
92 private JLabel jLabelVersion = null;\r
93\r
94 private JTextField jTextFieldVersion = null;\r
95\r
96 private JButton jButtonGenerateGuid = null;\r
97\r
98 private JLabel jLabelLicense = null;\r
99\r
100 private JTextArea jTextAreaLicense = null;\r
101\r
102 private JLabel jLabelCopyright = null;\r
103\r
104 private JLabel jLabelDescription = null;\r
105\r
106 private JTextArea jTextAreaDescription = null;\r
107\r
108 private JLabel jLabelSpecification = null;\r
109\r
110 private JTextField jTextFieldSpecification = null;\r
111\r
112 private JButton jButtonOk = null;\r
113\r
114 private JButton jButtonCancel = null;\r
115\r
116 private JScrollPane jScrollPaneLicense = null;\r
117\r
118 private JScrollPane jScrollPaneDescription = null;\r
119\r
120 private JLabel jLabelAbstract = null;\r
121\r
122 private JTextField jTextFieldAbstract = null;\r
123\r
124 private JLabel jLabelModuleType = null;\r
125\r
126 private JComboBox jComboBoxModuleType = null;\r
127\r
739c6b04 128 private JLabel jLabelArch = null;\r
129\r
130 private JLabel jLabelBinaryModule = null;\r
131\r
739c6b04 132 private JLabel jLabelOutputFileBasename = null;\r
133\r
134 private JTextField jTextFieldOutputFileBasename = null;\r
135\r
136 private JScrollPane jScrollPaneCopyright = null;\r
137\r
138 private JTextArea jTextAreaCopyright = null;\r
139\r
140 private JLabel jLabelURL = null;\r
141\r
142 private JTextField jTextFieldURL = null;\r
143\r
144 private JScrollPane jScrollPane = null;\r
145\r
a13899c5 146 private StarLabel jStarLabel1 = null;\r
147\r
148 private StarLabel jStarLabel2 = null;\r
149\r
150 private StarLabel jStarLabel4 = null;\r
151\r
152 private StarLabel jStarLabel5 = null;\r
153\r
154 private StarLabel jStarLabel6 = null;\r
155\r
156 private StarLabel jStarLabel7 = null;\r
157\r
158 private StarLabel jStarLabel8 = null;\r
159\r
160 private StarLabel jStarLabel10 = null;\r
161\r
162 private StarLabel jStarLabel12 = null;\r
163\r
739c6b04 164 private StarLabel jStarLabel13 = null;\r
a13899c5 165\r
739c6b04 166 private StarLabel jStarLabel14 = null;\r
a13899c5 167\r
739c6b04 168 private JCheckBox jCheckBoxIa32 = null;\r
a13899c5 169\r
739c6b04 170 private JCheckBox jCheckBoxX64 = null;\r
a13899c5 171\r
739c6b04 172 private JCheckBox jCheckBoxIpf = null;\r
173\r
174 private JCheckBox jCheckBoxEbc = null;\r
175\r
176 private JCheckBox jCheckBoxArm = null;\r
177\r
178 private JCheckBox jCheckBoxPpc = null;\r
3b7a9058 179\r
6173283b 180 private JTextField jComboBoxPcdIsDriver = null;\r
3b7a9058 181\r
182 private JCheckBox jCheckBoxPcd = null;\r
183\r
184 private JCheckBox jCheckBoxFlashMap = null;\r
185\r
739c6b04 186 //\r
187 // Not used for UI\r
188 //\r
189 private MsaHeaderDocument.MsaHeader msaHeader = null;\r
190\r
191 private ModuleDefinitionsDocument.ModuleDefinitions md = null;\r
192\r
193 private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
a13899c5 194\r
3b7a9058 195 private ExternsDocument.Externs ex = null;\r
196\r
a13899c5 197 private OpeningModuleType omt = null;\r
2003a22e 198\r
9a8d6d9f 199 private EnumerationData ed = new EnumerationData();\r
a13899c5 200\r
b63cc1b6 201 private JRadioButton jRadioButtonBinaryModuleTrue = null;\r
202\r
203 private JRadioButton jRadioButtonBinaryModuleFalse = null;\r
204\r
739c6b04 205 /**\r
206 * This method initializes jCheckBoxIa32 \r
207 * \r
208 * @return javax.swing.JCheckBox \r
209 */\r
210 private JCheckBox getJCheckBoxIa32() {\r
211 if (jCheckBoxIa32 == null) {\r
212 jCheckBoxIa32 = new JCheckBox();\r
0f6a6511 213 jCheckBoxIa32.setBounds(new java.awt.Rectangle(valueCol, 505, 55, 20));\r
739c6b04 214 jCheckBoxIa32.setText("IA32");\r
215 jCheckBoxIa32.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
216 jCheckBoxIa32.addFocusListener(this);\r
217 }\r
218 return jCheckBoxIa32;\r
219 }\r
220\r
221 /**\r
222 * This method initializes jCheckBoxX64 \r
223 * \r
224 * @return javax.swing.JCheckBox \r
225 */\r
226 private JCheckBox getJCheckBoxX64() {\r
227 if (jCheckBoxX64 == null) {\r
228 jCheckBoxX64 = new JCheckBox();\r
0f6a6511 229 jCheckBoxX64.setBounds(new java.awt.Rectangle(valueCol + 55, 505, 53, 20));\r
739c6b04 230 jCheckBoxX64.setText("X64");\r
231 jCheckBoxX64.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
232 jCheckBoxX64.addFocusListener(this);\r
233 }\r
234 return jCheckBoxX64;\r
235 }\r
236\r
237 /**\r
238 * This method initializes jCheckBoxIpf \r
239 * \r
240 * @return javax.swing.JCheckBox \r
241 */\r
242 private JCheckBox getJCheckBoxIpf() {\r
243 if (jCheckBoxIpf == null) {\r
244 jCheckBoxIpf = new JCheckBox();\r
0f6a6511 245 jCheckBoxIpf.setBounds(new java.awt.Rectangle(valueCol + 110, 505, 52, 20));\r
739c6b04 246 jCheckBoxIpf.setText("IPF");\r
247 jCheckBoxIpf.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
248 jCheckBoxIpf.addFocusListener(this);\r
249 }\r
250 return jCheckBoxIpf;\r
251 }\r
252\r
253 /**\r
254 * This method initializes jCheckBoxEbc \r
255 * \r
256 * @return javax.swing.JCheckBox \r
257 */\r
258 private JCheckBox getJCheckBoxEbc() {\r
259 if (jCheckBoxEbc == null) {\r
260 jCheckBoxEbc = new JCheckBox();\r
0f6a6511 261 jCheckBoxEbc.setBounds(new java.awt.Rectangle(valueCol + 165, 505, 53, 20));\r
739c6b04 262 jCheckBoxEbc.setText("EBC");\r
263 jCheckBoxEbc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
264 jCheckBoxEbc.addFocusListener(this);\r
265 }\r
266 return jCheckBoxEbc;\r
267 }\r
268\r
269 /**\r
270 * This method initializes jCheckBoxArm \r
271 * \r
272 * @return javax.swing.JCheckBox \r
273 */\r
274 private JCheckBox getJCheckBoxArm() {\r
275 if (jCheckBoxArm == null) {\r
276 jCheckBoxArm = new JCheckBox();\r
0f6a6511 277 jCheckBoxArm.setBounds(new java.awt.Rectangle(valueCol + 220, 505, 54, 20));\r
739c6b04 278 jCheckBoxArm.setText("ARM");\r
279 jCheckBoxArm.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
280 jCheckBoxArm.addFocusListener(this);\r
281 }\r
282 return jCheckBoxArm;\r
283 }\r
284\r
285 /**\r
286 * This method initializes jCheckBoxPpc \r
287 * \r
288 * @return javax.swing.JCheckBox \r
289 */\r
290 private JCheckBox getJCheckBoxPpc() {\r
291 if (jCheckBoxPpc == null) {\r
292 jCheckBoxPpc = new JCheckBox();\r
0f6a6511 293 jCheckBoxPpc.setBounds(new java.awt.Rectangle(valueCol + 285, 505, 53, 20));\r
739c6b04 294 jCheckBoxPpc.setText("PPC");\r
295 jCheckBoxPpc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
296 jCheckBoxPpc.addFocusListener(this);\r
297 }\r
298 return jCheckBoxPpc;\r
299 }\r
300\r
a13899c5 301 /**\r
302 This method initializes jTextFieldBaseName \r
303 \r
304 @return javax.swing.JTextField jTextFieldBaseName\r
305 \r
306 **/\r
307 private JTextField getJTextFieldBaseName() {\r
308 if (jTextFieldBaseName == null) {\r
309 jTextFieldBaseName = new JTextField();\r
0f6a6511 310 jTextFieldBaseName.setBounds(new java.awt.Rectangle(valueCol, 10, valueWidth, 20));\r
a13899c5 311 jTextFieldBaseName.setPreferredSize(new java.awt.Dimension(320, 20));\r
312 jTextFieldBaseName.addFocusListener(this);\r
f51ee52b 313 jTextFieldBaseName.setToolTipText("A brief Identifier, such as USB I/O Library, of the module");\r
a13899c5 314 }\r
315 return jTextFieldBaseName;\r
316 }\r
317\r
318 /**\r
319 This method initializes jTextFieldGuid \r
320 \r
321 @return javax.swing.JTextField jTextFieldGuid\r
322 \r
323 **/\r
324 private JTextField getJTextFieldGuid() {\r
325 if (jTextFieldGuid == null) {\r
326 jTextFieldGuid = new JTextField();\r
327 jTextFieldGuid.setPreferredSize(new java.awt.Dimension(250, 20));\r
0f6a6511 328 jTextFieldGuid.setLocation(new java.awt.Point(valueCol, 60));\r
a13899c5 329 jTextFieldGuid.setSize(new java.awt.Dimension(250, 20));\r
330 jTextFieldGuid.addFocusListener(this);\r
f51ee52b 331 jTextFieldGuid.setToolTipText("Guaranteed Unique Identification Number, Registry Format (8-4-4-4-12)");\r
a13899c5 332 }\r
333 return jTextFieldGuid;\r
334 }\r
335\r
336 /**\r
337 This method initializes jTextFieldVersion \r
338 \r
339 @return javax.swing.JTextField jTextFieldVersion\r
340 \r
341 **/\r
342 private JTextField getJTextFieldVersion() {\r
343 if (jTextFieldVersion == null) {\r
344 jTextFieldVersion = new JTextField();\r
0f6a6511 345 jTextFieldVersion.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
346 jTextFieldVersion.setLocation(new java.awt.Point(valueCol, 85));\r
347 jTextFieldVersion.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 348 jTextFieldVersion.addFocusListener(this);\r
f51ee52b 349 jTextFieldVersion.setToolTipText("A Version Number, 1.0, 1, 1.01, 1.0.1");\r
a13899c5 350 }\r
351 return jTextFieldVersion;\r
352 }\r
353\r
354 /**\r
355 This method initializes jButtonGenerateGuid \r
356 \r
357 @return javax.swing.JButton jButtonGenerateGuid\r
358 \r
359 **/\r
360 private JButton getJButtonGenerateGuid() {\r
361 if (jButtonGenerateGuid == null) {\r
0f6a6511 362 int genGuidCol = valueCol + 285;\r
a13899c5 363 jButtonGenerateGuid = new JButton();\r
364 jButtonGenerateGuid.setPreferredSize(new java.awt.Dimension(65, 20));\r
365 jButtonGenerateGuid.setSize(new java.awt.Dimension(65, 20));\r
0f6a6511 366 jButtonGenerateGuid.setLocation(new java.awt.Point(genGuidCol, 60));\r
a13899c5 367 jButtonGenerateGuid.setText("GEN");\r
368 jButtonGenerateGuid.addActionListener(this);\r
369 }\r
370 return jButtonGenerateGuid;\r
371 }\r
372\r
373 /**\r
374 This method initializes jTextAreaLicense \r
375 \r
376 @return javax.swing.JTextArea jTextAreaLicense\r
377 \r
378 **/\r
379 private JTextArea getJTextAreaLicense() {\r
380 if (jTextAreaLicense == null) {\r
381 jTextAreaLicense = new JTextArea();\r
382 jTextAreaLicense.setText("");\r
383 jTextAreaLicense.setLineWrap(true);\r
384 jTextAreaLicense.addFocusListener(this);\r
2003a22e 385 jTextAreaLicense.setWrapStyleWord(true);\r
386 jTextAreaLicense.setSelectionStart(0);\r
387 jTextAreaLicense.setSelectionEnd(0);\r
f51ee52b 388 jTextAreaLicense.setToolTipText("The License for this Module.");\r
a13899c5 389 }\r
390 return jTextAreaLicense;\r
391 }\r
392\r
393 /**\r
394 This method initializes jTextAreaDescription \r
395 \r
396 @return javax.swing.JTextArea jTextAreaDescription\r
397 \r
398 **/\r
399 private JTextArea getJTextAreaDescription() {\r
400 if (jTextAreaDescription == null) {\r
401 jTextAreaDescription = new JTextArea();\r
402 jTextAreaDescription.setLineWrap(true);\r
403 jTextAreaDescription.addFocusListener(this);\r
623db5ca 404 jTextAreaDescription.setToolTipText("A verbose description of the module.");\r
2003a22e 405 jTextAreaDescription.setWrapStyleWord(true);\r
9a8d6d9f 406 jTextAreaDescription.setSelectionStart(0);\r
407 jTextAreaDescription.setSelectionEnd(0);\r
a13899c5 408 }\r
409 return jTextAreaDescription;\r
410 }\r
411\r
412 /**\r
413 This method initializes jTextFieldSpecification \r
414 \r
415 @return javax.swing.JTextField jTextFieldSpecification\r
416 \r
417 **/\r
418 private JTextField getJTextFieldSpecification() {\r
419 if (jTextFieldSpecification == null) {\r
0f6a6511 420 int specWidth = valueWidth + 50;\r
a13899c5 421 jTextFieldSpecification = new JTextField();\r
3b7a9058 422\r
0f6a6511 423 jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(specWidth, 20));\r
c06e8657 424 jTextFieldSpecification.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");\r
9d0ac02b 425 jTextFieldSpecification.setBorder(null);\r
3b7a9058 426\r
0f6a6511 427 jTextFieldSpecification.setSize(new java.awt.Dimension(specWidth, 20));\r
428 jTextFieldSpecification.setLocation(new java.awt.Point(labelCol, dialogHeight - 30));\r
a13899c5 429 jTextFieldSpecification.setEditable(false);\r
430 jTextFieldSpecification.addFocusListener(this);\r
a13899c5 431 }\r
432 return jTextFieldSpecification;\r
433 }\r
434\r
435 /**\r
436 This method initializes jButtonOk \r
437 \r
438 @return javax.swing.JButton jButtonOk\r
439 \r
440 **/\r
441 private JButton getJButtonOk() {\r
442 if (jButtonOk == null) {\r
443 jButtonOk = new JButton();\r
444 jButtonOk.setText("OK");\r
445 jButtonOk.setPreferredSize(new java.awt.Dimension(90, 20));\r
446 jButtonOk.setBounds(new java.awt.Rectangle(390, 455, 90, 20));\r
447 jButtonOk.addActionListener(this);\r
448 jButtonOk.setVisible(false);\r
449 }\r
450 return jButtonOk;\r
451 }\r
452\r
453 /**\r
454 This method initializes jButtonCancel \r
455 \r
456 @return javax.swing.JButton jButtonCancel\r
457 \r
458 **/\r
459 private JButton getJButtonCancel() {\r
460 if (jButtonCancel == null) {\r
461 jButtonCancel = new JButton();\r
462 jButtonCancel.setText("Cancel");\r
463 jButtonCancel.setBounds(new java.awt.Rectangle(390, 445, 90, 20));\r
464 jButtonCancel.addActionListener(this);\r
465 jButtonCancel.setPreferredSize(new java.awt.Dimension(90, 20));\r
466 jButtonCancel.setVisible(false);\r
467 }\r
468 return jButtonCancel;\r
469 }\r
470\r
471 /**\r
472 This method initializes jScrollPaneLicense \r
473 \r
474 @return javax.swing.JScrollPane jScrollPaneLicense\r
475 \r
476 **/\r
477 private JScrollPane getJScrollPaneLicense() {\r
478 if (jScrollPaneLicense == null) {\r
479 jScrollPaneLicense = new JScrollPane();\r
480 jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
0f6a6511 481 jScrollPaneLicense.setSize(new java.awt.Dimension(valueWidth, 120));\r
482 jScrollPaneLicense.setLocation(new java.awt.Point(valueCol, 305));\r
a13899c5 483 jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
0f6a6511 484 jScrollPaneLicense.setPreferredSize(new java.awt.Dimension(valueWidth, 120));\r
a13899c5 485 }\r
486 return jScrollPaneLicense;\r
487 }\r
488\r
489 /**\r
490 This method initializes jScrollPaneDescription \r
491 \r
492 @return javax.swing.JScrollPane jScrollPaneDescription\r
493 \r
494 **/\r
495 private JScrollPane getJScrollPaneDescription() {\r
496 if (jScrollPaneDescription == null) {\r
497 jScrollPaneDescription = new JScrollPane();\r
498 jScrollPaneDescription.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
0f6a6511 499 jScrollPaneDescription.setSize(new java.awt.Dimension(valueWidth, 120));\r
500 jScrollPaneDescription.setLocation(new java.awt.Point(valueCol, 135));\r
a13899c5 501 jScrollPaneDescription.setViewportView(getJTextAreaDescription());\r
0f6a6511 502 jScrollPaneDescription.setPreferredSize(new java.awt.Dimension(valueWidth, 120));\r
a13899c5 503 }\r
504 return jScrollPaneDescription;\r
505 }\r
506\r
507 /**\r
508 This method initializes jTextFieldAbstract \r
509 \r
510 @return javax.swing.JTextField jTextFieldAbstract\r
511 \r
512 **/\r
513 private JTextField getJTextFieldAbstract() {\r
514 if (jTextFieldAbstract == null) {\r
515 jTextFieldAbstract = new JTextField();\r
0f6a6511 516 jTextFieldAbstract.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
517 jTextFieldAbstract.setLocation(new java.awt.Point(valueCol, 110));\r
518 jTextFieldAbstract.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 519 jTextFieldAbstract.addFocusListener(this);\r
623db5ca 520 jTextFieldAbstract.setToolTipText("A one sentence description of this module.");\r
a13899c5 521 }\r
522 return jTextFieldAbstract;\r
523 }\r
524\r
525 /**\r
526 This method initializes jComboBoxModuleType \r
527 \r
528 @return javax.swing.JComboBox jComboBoxModuleType\r
529 \r
530 **/\r
531 private JComboBox getJComboBoxModuleType() {\r
532 if (jComboBoxModuleType == null) {\r
533 jComboBoxModuleType = new JComboBox();\r
0f6a6511 534 jComboBoxModuleType.setBounds(new java.awt.Rectangle(valueCol, 35, valueWidth, 20));\r
535 jComboBoxModuleType.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 536 jComboBoxModuleType.addFocusListener(this);\r
537 }\r
538 return jComboBoxModuleType;\r
539 }\r
540\r
541 /**\r
739c6b04 542 This method initializes jTextFieldURL \r
a13899c5 543 \r
739c6b04 544 @return javax.swing.JTextField \r
a13899c5 545 \r
546 **/\r
a13899c5 547 private JTextField getJTextFieldURL() {\r
548 if (jTextFieldURL == null) {\r
549 jTextFieldURL = new JTextField();\r
0f6a6511 550 jTextFieldURL.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
551 jTextFieldURL.setLocation(new java.awt.Point(valueCol, 430));\r
552 jTextFieldURL.setSize(new java.awt.Dimension(valueWidth, 20));\r
a13899c5 553 jTextFieldURL.addFocusListener(this);\r
623db5ca 554 jTextFieldURL.setToolTipText("A URL for the latest version of the license.");\r
a13899c5 555 }\r
556 return jTextFieldURL;\r
557 }\r
558\r
559 /**\r
739c6b04 560 This method initializes jScrollPane \r
561 \r
562 @return javax.swing.JScrollPane \r
563 \r
564 **/\r
a13899c5 565 private JScrollPane getJScrollPane() {\r
566 if (jScrollPane == null) {\r
567 jScrollPane = new JScrollPane();\r
568 jScrollPane.setViewportView(getJContentPane());\r
569 }\r
570 return jScrollPane;\r
571 }\r
572\r
739c6b04 573 /**\r
574 This method initializes jScrollPaneCopyright \r
575 \r
576 @return javax.swing.JScrollPane \r
577 \r
578 **/\r
579 private JScrollPane getJScrollPaneCopyright() {\r
580 if (jScrollPaneCopyright == null) {\r
581 jScrollPaneCopyright = new JScrollPane();\r
0f6a6511 582 jScrollPaneCopyright.setBounds(new java.awt.Rectangle(valueCol, 260, valueWidth, 40));\r
583 jScrollPaneCopyright.setPreferredSize(new java.awt.Dimension(valueWidth, 40));\r
739c6b04 584 jScrollPaneCopyright.setViewportView(getJTextAreaCopyright());\r
0f6a6511 585 jScrollPaneCopyright.setSize(new java.awt.Dimension(valueWidth, 40));\r
739c6b04 586 }\r
587 return jScrollPaneCopyright;\r
588 }\r
a13899c5 589\r
739c6b04 590 /**\r
591 This method initializes jTextAreaCopyright \r
592 \r
593 @return javax.swing.JTextArea \r
594 \r
595 **/\r
596 private JTextArea getJTextAreaCopyright() {\r
597 if (jTextAreaCopyright == null) {\r
598 jTextAreaCopyright = new JTextArea();\r
599 jTextAreaCopyright.setLineWrap(true);\r
600 jTextAreaCopyright.addFocusListener(this);\r
601 jTextAreaCopyright.setWrapStyleWord(true);\r
602 jTextAreaCopyright.setSelectionStart(0);\r
603 jTextAreaCopyright.setSelectionEnd(0);\r
0f6a6511 604 jTextAreaCopyright.setBounds(new java.awt.Rectangle(0, 0, valueWidth, 40));\r
623db5ca 605 jTextAreaCopyright.setToolTipText("One or more copyright lines.");\r
739c6b04 606 }\r
607 return jTextAreaCopyright;\r
608 }\r
609\r
739c6b04 610 /**\r
611 * This method initializes jTextFieldOutputFileBasename \r
612 * \r
613 * @return javax.swing.JTextField \r
614 */\r
615 private JTextField getJTextFieldOutputFileBasename() {\r
616 if (jTextFieldOutputFileBasename == null) {\r
617 jTextFieldOutputFileBasename = new JTextField();\r
0f6a6511 618 jTextFieldOutputFileBasename.setBounds(new java.awt.Rectangle(valueCol, 455, valueWidth, 20));\r
619 jTextFieldOutputFileBasename.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
739c6b04 620 jTextFieldOutputFileBasename.addFocusListener(this);\r
623db5ca 621 jTextFieldOutputFileBasename.setToolTipText("Enter a single word for generated output file names.");\r
739c6b04 622 }\r
623 return jTextFieldOutputFileBasename;\r
a13899c5 624 }\r
625\r
3b7a9058 626 /**\r
627 * This method initializes jComboBoxPcdIsDriver \r
628 * \r
629 * @return javax.swing.JComboBox \r
630 */\r
6173283b 631 private JTextField getJComboBoxPcdIsDriver() {\r
3b7a9058 632 if (jComboBoxPcdIsDriver == null) {\r
6173283b 633 jComboBoxPcdIsDriver = new JTextField();\r
0f6a6511 634 jComboBoxPcdIsDriver.setPreferredSize(new java.awt.Dimension(valueWidth, 20));\r
635 jComboBoxPcdIsDriver.setBounds(new java.awt.Rectangle(valueCol, 530, valueWidth, 20));\r
6173283b 636 //jComboBoxPcdIsDriver.addItemListener(this);\r
d933fc5f 637 jComboBoxPcdIsDriver.addFocusListener(this);\r
3b7a9058 638 jComboBoxPcdIsDriver.setEnabled(false);\r
6173283b 639 //Tools.generateComboBoxByVector(jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());\r
0f6a6511 640 jComboBoxPcdIsDriver.setVisible(false);\r
3b7a9058 641 }\r
642 return jComboBoxPcdIsDriver;\r
643 }\r
644\r
a13899c5 645 /**\r
646 This is the default constructor\r
647 \r
648 **/\r
649 public MsaHeader() {\r
650 super();\r
651 init();\r
652 this.setVisible(true);\r
653 }\r
654\r
655 /**\r
656 This is the override edit constructor\r
657 \r
658 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
659 \r
660 **/\r
661 public MsaHeader(OpeningModuleType inMsa) {\r
662 super();\r
663 this.omt = inMsa;\r
664 this.msa = omt.getXmlMsa();\r
2003a22e 665\r
9a8d6d9f 666 // \r
667 // Set module definitions default value\r
668 //\r
669 if (msa.getModuleDefinitions() == null) {\r
2003a22e 670 ModuleDefinitionsDocument.ModuleDefinitions md = ModuleDefinitionsDocument.ModuleDefinitions.Factory\r
671 .newInstance();\r
9a8d6d9f 672 md.setOutputFileBasename(msa.getMsaHeader().getModuleName());\r
673 md.setBinaryModule(false);\r
674 md.setSupportedArchitectures(ed.getVSupportedArchitectures());\r
675 msa.setModuleDefinitions(md);\r
676 }\r
3b7a9058 677\r
678 //\r
679 // Init items of Header, Definitions and Externs\r
680 //\r
a13899c5 681 init(msa.getMsaHeader());\r
739c6b04 682 init(msa.getModuleDefinitions());\r
3b7a9058 683 init(msa.getExterns());\r
cc95b47b 684 this.addListeners();\r
3b7a9058 685\r
a13899c5 686 this.setVisible(true);\r
687 this.setViewMode(false);\r
688 }\r
689\r
690 /**\r
691 Disable all components when the mode is view\r
692 \r
693 @param isView true - The view mode; false - The non-view mode\r
694 \r
695 **/\r
696 public void setViewMode(boolean isView) {\r
a13899c5 697 if (isView) {\r
698 this.jTextFieldBaseName.setEnabled(!isView);\r
699 this.jTextFieldGuid.setEnabled(!isView);\r
700 this.jTextFieldVersion.setEnabled(!isView);\r
701 this.jTextAreaLicense.setEnabled(!isView);\r
739c6b04 702 this.jTextAreaCopyright.setEnabled(!isView);\r
a13899c5 703 this.jTextAreaDescription.setEnabled(!isView);\r
704 this.jTextFieldSpecification.setEnabled(!isView);\r
705 this.jTextFieldAbstract.setEnabled(!isView);\r
706 this.jComboBoxModuleType.setEnabled(!isView);\r
707 this.jButtonCancel.setEnabled(!isView);\r
708 this.jButtonGenerateGuid.setEnabled(!isView);\r
709 this.jButtonOk.setEnabled(!isView);\r
710 }\r
711 }\r
712\r
713 /**\r
714 This method initializes this\r
715 \r
716 **/\r
717 private void init() {\r
9d0ac02b 718 this.setSize(dialogWidth, dialogHeight);\r
719 this.setPreferredSize(new java.awt.Dimension(dialogWidth, dialogHeight));\r
a13899c5 720 this.setContentPane(getJScrollPane());\r
721 this.setTitle("Module Surface Area Header");\r
722 initFrame();\r
723 }\r
724\r
725 /**\r
726 This method initializes this\r
727 Fill values to all fields if these values are not empty\r
728 \r
729 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
730 \r
731 **/\r
732 private void init(MsaHeaderDocument.MsaHeader inMsaHeader) {\r
733 init();\r
734 if (inMsaHeader != null) {\r
735 setMsaHeader(inMsaHeader);\r
736 if (this.msaHeader.getModuleName() != null) {\r
737 this.jTextFieldBaseName.setText(this.msaHeader.getModuleName());\r
738 }\r
739 if (this.msaHeader.getModuleType() != null) {\r
740 this.jComboBoxModuleType.setSelectedItem(this.msaHeader.getModuleType().toString());\r
741 }\r
742 if (this.msaHeader.getGuidValue() != null) {\r
743 this.jTextFieldGuid.setText(this.msaHeader.getGuidValue());\r
744 }\r
745 if (this.msaHeader.getVersion() != null) {\r
746 this.jTextFieldVersion.setText(this.msaHeader.getVersion());\r
747 }\r
748 if (this.msaHeader.getAbstract() != null) {\r
749 this.jTextFieldAbstract.setText(this.msaHeader.getAbstract());\r
750 }\r
751 if (this.msaHeader.getDescription() != null) {\r
752 this.jTextAreaDescription.setText(this.msaHeader.getDescription());\r
9a8d6d9f 753 jTextAreaDescription.setSelectionStart(0);\r
754 jTextAreaDescription.setSelectionEnd(0);\r
a13899c5 755 }\r
756 if (this.msaHeader.getCopyright() != null) {\r
739c6b04 757 this.jTextAreaCopyright.setText(this.msaHeader.getCopyright());\r
a13899c5 758 }\r
759 if (this.msaHeader.getLicense() != null) {\r
760 this.jTextAreaLicense.setText(this.msaHeader.getLicense().getStringValue());\r
9a8d6d9f 761 jTextAreaLicense.setSelectionStart(0);\r
762 jTextAreaLicense.setSelectionEnd(0);\r
a13899c5 763 }\r
764 if (this.msaHeader.getLicense() != null && this.msaHeader.getLicense().getURL() != null) {\r
765 this.jTextFieldURL.setText(this.msaHeader.getLicense().getURL());\r
766 }\r
767 if (this.msaHeader.getSpecification() != null) {\r
768 this.jTextFieldSpecification.setText(this.msaHeader.getSpecification());\r
769 }\r
770 }\r
771 }\r
772\r
739c6b04 773 /**\r
774 This method initializes this\r
775 Fill values to all fields if these values are not empty\r
776 \r
777 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader\r
778 \r
779 **/\r
780 private void init(ModuleDefinitionsDocument.ModuleDefinitions inMd) {\r
739c6b04 781 if (inMd != null) {\r
782 this.md = inMd;\r
783 if (md.getSupportedArchitectures() != null) {\r
784 this.setSelectedItems(Tools.convertListToVector(md.getSupportedArchitectures()));\r
785 }\r
786 if (md.getBinaryModule()) {\r
b63cc1b6 787 this.jRadioButtonBinaryModuleTrue.setSelected(true);\r
739c6b04 788 } else {\r
b63cc1b6 789 this.jRadioButtonBinaryModuleFalse.setSelected(true);\r
739c6b04 790 }\r
791 if (md.getOutputFileBasename() != null) {\r
792 this.jTextFieldOutputFileBasename.setText(md.getOutputFileBasename());\r
793 }\r
794 }\r
795 }\r
796\r
3b7a9058 797 /**\r
798 This method initializes this\r
799 Fill values to all fields if these values are not empty\r
800 \r
801 @param inEx The input data of ExternsDocument.Externs\r
802 \r
803 **/\r
804 private void init(ExternsDocument.Externs inEx) {\r
805 if (inEx != null) {\r
806 this.ex = inEx;\r
807 if (ex.getPcdIsDriver() != null) {\r
808 this.jCheckBoxPcd.setSelected(true);\r
6173283b 809 this.jCheckBoxPcd.setEnabled(true);\r
3b7a9058 810 }\r
811 this.jCheckBoxFlashMap.setSelected(ex.getTianoR8FlashMapH());\r
812 }\r
813 }\r
814\r
a13899c5 815 /**\r
816 This method initializes jContentPane\r
817 \r
818 @return javax.swing.JPanel jContentPane\r
819 \r
820 **/\r
821 private JPanel getJContentPane() {\r
822 if (jContentPane == null) {\r
823\r
824 jLabelURL = new JLabel();\r
825 jLabelURL.setText("License URL");\r
0f6a6511 826 jLabelURL.setLocation(new java.awt.Point(labelCol, 430));\r
827 jLabelURL.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 828 jLabelBaseName = new JLabel();\r
829 jLabelBaseName.setText("Module Name");\r
0f6a6511 830 jLabelBaseName.setBounds(new java.awt.Rectangle(labelCol, 10, labelWidth, 20));\r
a13899c5 831 jLabelModuleType = new JLabel();\r
0f6a6511 832 jLabelModuleType.setBounds(new java.awt.Rectangle(labelCol, 35, labelWidth, 20));\r
a13899c5 833 jLabelModuleType.setText("Module Type");\r
834 jLabelGuid = new JLabel();\r
835 jLabelGuid.setText("Guid Value");\r
0f6a6511 836 jLabelGuid.setLocation(new java.awt.Point(labelCol, 60));\r
837 jLabelGuid.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 838 jLabelVersion = new JLabel();\r
839 jLabelVersion.setText("Version");\r
0f6a6511 840 jLabelVersion.setLocation(new java.awt.Point(labelCol, 85));\r
841 jLabelVersion.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 842 jLabelAbstract = new JLabel();\r
843 jLabelAbstract.setText("Abstract");\r
0f6a6511 844 jLabelAbstract.setLocation(new java.awt.Point(labelCol, 110));\r
845 jLabelAbstract.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 846 jLabelDescription = new JLabel();\r
847 jLabelDescription.setText("Description");\r
0f6a6511 848 jLabelDescription.setLocation(new java.awt.Point(labelCol, 135));\r
849 jLabelDescription.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 850 jLabelCopyright = new JLabel();\r
851 jLabelCopyright.setText("Copyright");\r
0f6a6511 852 jLabelCopyright.setLocation(new java.awt.Point(labelCol, 260));\r
853 jLabelCopyright.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 854 jLabelLicense = new JLabel();\r
855 jLabelLicense.setText("License");\r
0f6a6511 856 jLabelLicense.setLocation(new java.awt.Point(labelCol, 305));\r
857 jLabelLicense.setSize(new java.awt.Dimension(labelWidth, 20));\r
739c6b04 858 jLabelOutputFileBasename = new JLabel();\r
0f6a6511 859 jLabelOutputFileBasename.setBounds(new java.awt.Rectangle(labelCol, 455, labelWidth, 20));\r
739c6b04 860 jLabelOutputFileBasename.setText("Output File Basename");\r
861 jLabelBinaryModule = new JLabel();\r
0f6a6511 862 jLabelBinaryModule.setBounds(new java.awt.Rectangle(labelCol, 480, labelWidth, 20));\r
739c6b04 863 jLabelBinaryModule.setText("Binary Module");\r
864 jLabelArch = new JLabel();\r
0f6a6511 865 jLabelArch.setBounds(new java.awt.Rectangle(labelCol, 505, labelWidth, 20));\r
739c6b04 866 jLabelArch.setText("Supported Architectures");\r
a13899c5 867 jLabelSpecification = new JLabel();\r
868 jLabelSpecification.setText("Specification");\r
0f6a6511 869 jLabelSpecification.setLocation(new java.awt.Point(labelCol, 530));\r
870 jLabelSpecification.setSize(new java.awt.Dimension(labelWidth, 20));\r
a13899c5 871\r
872 jContentPane = new JPanel();\r
873 jContentPane.setLayout(null);\r
9d0ac02b 874 jContentPane.setPreferredSize(new java.awt.Dimension(dialogWidth - 10, dialogHeight - 10));\r
3b7a9058 875\r
739c6b04 876 jContentPane.addFocusListener(this);\r
a13899c5 877\r
878 jContentPane.add(jLabelBaseName, null);\r
879 jContentPane.add(getJTextFieldBaseName(), null);\r
880 jContentPane.add(jLabelGuid, null);\r
881 jContentPane.add(getJTextFieldGuid(), null);\r
882 jContentPane.add(jLabelVersion, null);\r
883 jContentPane.add(getJTextFieldVersion(), null);\r
884 jContentPane.add(getJButtonGenerateGuid(), null);\r
885 jContentPane.add(jLabelLicense, null);\r
886 jContentPane.add(jLabelCopyright, null);\r
887 jContentPane.add(jLabelDescription, null);\r
a13899c5 888 jContentPane.add(getJTextFieldSpecification(), null);\r
889 jContentPane.add(getJButtonOk(), null);\r
890 jContentPane.add(getJButtonCancel(), null);\r
891 jContentPane.add(getJScrollPaneLicense(), null);\r
892 jContentPane.add(getJScrollPaneDescription(), null);\r
893 jContentPane.add(jLabelAbstract, null);\r
894 jContentPane.add(getJTextFieldAbstract(), null);\r
895 jContentPane.add(jLabelModuleType, null);\r
896 jContentPane.add(getJComboBoxModuleType(), null);\r
897 jContentPane.add(jLabelURL, null);\r
898 jContentPane.add(getJTextFieldURL(), null);\r
739c6b04 899 jContentPane.add(jLabelOutputFileBasename, null);\r
900 jContentPane.add(getJTextFieldOutputFileBasename(), null);\r
901 jContentPane.add(jLabelBinaryModule, null);\r
739c6b04 902 jContentPane.add(jLabelArch, null);\r
903\r
a13899c5 904 jStarLabel1 = new StarLabel();\r
905 jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
906 jStarLabel2 = new StarLabel();\r
907 jStarLabel2.setLocation(new java.awt.Point(0, 35));\r
908 jStarLabel4 = new StarLabel();\r
909 jStarLabel4.setLocation(new java.awt.Point(0, 60));\r
910 jStarLabel5 = new StarLabel();\r
911 jStarLabel5.setLocation(new java.awt.Point(0, 85));\r
912 jStarLabel6 = new StarLabel();\r
913 jStarLabel6.setLocation(new java.awt.Point(0, 135));\r
914 jStarLabel7 = new StarLabel();\r
915 jStarLabel7.setLocation(new java.awt.Point(0, 260));\r
916 jStarLabel8 = new StarLabel();\r
739c6b04 917 jStarLabel8.setLocation(new java.awt.Point(0, 305));\r
a13899c5 918 jStarLabel10 = new StarLabel();\r
919 jStarLabel10.setLocation(new java.awt.Point(0, 110));\r
920 jStarLabel12 = new StarLabel();\r
739c6b04 921 jStarLabel12.setLocation(new java.awt.Point(0, 455));\r
922 jStarLabel13 = new StarLabel();\r
923 jStarLabel13.setLocation(new java.awt.Point(0, 480));\r
924 jStarLabel14 = new StarLabel();\r
925 jStarLabel14.setLocation(new java.awt.Point(0, 505));\r
a13899c5 926\r
927 jContentPane.add(jStarLabel1, null);\r
928 jContentPane.add(jStarLabel2, null);\r
929 jContentPane.add(jStarLabel4, null);\r
930 jContentPane.add(jStarLabel5, null);\r
931 jContentPane.add(jStarLabel6, null);\r
932 jContentPane.add(jStarLabel7, null);\r
933 jContentPane.add(jStarLabel8, null);\r
934 jContentPane.add(jStarLabel10, null);\r
935 jContentPane.add(jStarLabel12, null);\r
739c6b04 936 jContentPane.add(jStarLabel13, null);\r
937 jContentPane.add(jStarLabel14, null);\r
739c6b04 938 jContentPane.add(getJScrollPaneCopyright(), null);\r
939\r
940 jContentPane.add(getJCheckBoxIa32(), null);\r
941 jContentPane.add(getJCheckBoxX64(), null);\r
942 jContentPane.add(getJCheckBoxIpf(), null);\r
943 jContentPane.add(getJCheckBoxEbc(), null);\r
944 jContentPane.add(getJCheckBoxArm(), null);\r
945 jContentPane.add(getJCheckBoxPpc(), null);\r
3b7a9058 946\r
947 jContentPane.add(getJCheckBoxPcd(), null);\r
948 jContentPane.add(getJComboBoxPcdIsDriver(), null);\r
949 jContentPane.add(getJCheckBoxFlashMap(), null);\r
b63cc1b6 950\r
951 ButtonGroup bg = new ButtonGroup();\r
952 jContentPane.add(getJRadioButtonBinaryModuleTrue(), null);\r
953 jContentPane.add(getJRadioButtonBinaryModuleFalse(), null);\r
954 bg.add(getJRadioButtonBinaryModuleTrue());\r
955 bg.add(getJRadioButtonBinaryModuleFalse());\r
a13899c5 956 }\r
957 return jContentPane;\r
958 }\r
959\r
960 /* (non-Javadoc)\r
961 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
962 *\r
963 * Override actionPerformed to listen all actions\r
964 *\r
965 */\r
966 public void actionPerformed(ActionEvent arg0) {\r
a13899c5 967 if (arg0.getSource() == jButtonGenerateGuid) {\r
968 jTextFieldGuid.setText(Tools.generateUuidString());\r
d1760183 969 jTextFieldGuid.requestFocus();\r
970 jButtonGenerateGuid.requestFocus();\r
a13899c5 971 }\r
972 }\r
973\r
974 /**\r
975 Data validation for all fields\r
976 \r
977 @retval true - All datas are valid\r
978 @retval false - At least one data is invalid\r
979 \r
980 **/\r
981 public boolean check() {\r
982 //\r
983 // Check if all required fields are not empty\r
984 // and check if all data fields values are valid\r
985 //\r
986\r
987 //\r
988 // Check Base Name\r
989 //\r
990 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
623db5ca 991 Log.wrn("Update Msa Header", "Name must be entered!");\r
a13899c5 992 //this.jTextFieldBaseName.requestFocus();\r
993 return false;\r
994 }\r
995 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
623db5ca 996 Log.wrn("Update Msa Header", "Incorrect data type for Name, it must start with an alpha character!");\r
a13899c5 997 //this.jTextFieldBaseName.requestFocus();\r
998 return false;\r
999 }\r
1000\r
1001 //\r
1002 // Check Guid\r
1003 //\r
1004 if (isEmpty(this.jTextFieldGuid.getText())) {\r
623db5ca 1005 Log.wrn("Update Msa Header", "The Guid Value must be entered!");\r
a13899c5 1006 //this.jTextFieldGuid.requestFocus();\r
1007 return false;\r
1008 }\r
1009 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
623db5ca 1010 Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format, 8-4-4-4-12");\r
a13899c5 1011 //this.jTextFieldGuid.requestFocus();\r
1012 return false;\r
1013 }\r
1014\r
1015 //\r
1016 // Check Version\r
1017 //\r
1018 if (isEmpty(this.jTextFieldVersion.getText())) {\r
623db5ca 1019 Log.wrn("Update Msa Header", "Version must be entered!");\r
a13899c5 1020 //this.jTextFieldVersion.requestFocus();\r
1021 return false;\r
1022 }\r
1023 if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
623db5ca 1024 Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
a13899c5 1025 //this.jTextFieldVersion.requestFocus();\r
1026 return false;\r
1027 }\r
1028\r
1029 //\r
1030 // Check Abstact\r
1031 //\r
1032 if (isEmpty(this.jTextFieldAbstract.getText())) {\r
623db5ca 1033 Log.wrn("Update Msa Header", "Abstract must be entered!");\r
a13899c5 1034 //this.jTextFieldAbstract.requestFocus();\r
1035 return false;\r
1036 }\r
1037 if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
3b7a9058 1038 Log.wrn("Update Msa Header",\r
1039 "Incorrect data type for Abstract, is should be a sentence describing the module.");\r
a13899c5 1040 //this.jTextFieldAbstract.requestFocus();\r
1041 return false;\r
1042 }\r
1043\r
1044 //\r
1045 // Check Description\r
1046 //\r
1047 if (isEmpty(this.jTextAreaDescription.getText())) {\r
623db5ca 1048 Log.wrn("Update Msa Header", "Description must be entered!");\r
a13899c5 1049 //this.jTextAreaDescription.requestFocus();\r
1050 return false;\r
1051 }\r
1052\r
1053 //\r
1054 // Check Copyright\r
1055 //\r
739c6b04 1056 if (isEmpty(this.jTextAreaCopyright.getText())) {\r
623db5ca 1057 Log.wrn("Update Msa Header", "Copyright must be entered!");\r
a13899c5 1058 //this.jTextFieldCopyright.requestFocus();\r
1059 return false;\r
1060 }\r
1061\r
1062 //\r
1063 // Check License\r
1064 //\r
1065 if (isEmpty(this.jTextAreaLicense.getText())) {\r
623db5ca 1066 Log.wrn("Update Msa Header", "License must be entered!");\r
a13899c5 1067 //this.jTextAreaLicense.requestFocus();\r
1068 return false;\r
1069 }\r
1070\r
1071 //\r
1072 // Check Specification\r
1073 //\r
1074 if (isEmpty(this.jTextFieldSpecification.getText())) {\r
623db5ca 1075 Log.wrn("Update Msa Header", "Specification must exist.");\r
a13899c5 1076 //this.jTextFieldSpecification.requestFocus();\r
1077 return false;\r
1078 }\r
1079 if (!DataValidation.isSpecification(this.jTextFieldSpecification.getText())) {\r
9d0ac02b 1080 // TODO Add code to check the specification number.\r
1081 // Future releases of Schema may require that we process these files\r
1082 // differently.\r
ed1665f2 1083 Log.wrn("Update Msa Header", "Incorrect data type for Specification");\r
a13899c5 1084 //this.jTextFieldSpecification.requestFocus();\r
1085 return false;\r
1086 }\r
1087\r
1088 return true;\r
1089 }\r
1090\r
1091 /**\r
1092 Save all components of Msa Header\r
1093 if exists msaHeader, set the value directly\r
1094 if not exists msaHeader, new an instance first\r
1095 \r
1096 **/\r
1097 public void save() {\r
1098 try {\r
55a2762d 1099 msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
a13899c5 1100 msa.setMsaHeader(msaHeader);\r
739c6b04 1101 msa.setModuleDefinitions(md);\r
a13899c5 1102 this.omt.setSaved(false);\r
1103 } catch (Exception e) {\r
ed1665f2 1104 Log.wrn("Save Module", e.getMessage());\r
a13899c5 1105 Log.err("Save Module", e.getMessage());\r
1106 }\r
1107 }\r
1108\r
1109 /**\r
1110 This method initializes Module type and Compontent type\r
1111 \r
1112 **/\r
1113 private void initFrame() {\r
1114 EnumerationData ed = new EnumerationData();\r
1115 Tools.generateComboBoxByVector(jComboBoxModuleType, ed.getVModuleType());\r
739c6b04 1116 this.setSelectedItems(ed.getVSupportedArchitectures());\r
a13899c5 1117 }\r
1118\r
1119 /**\r
1120 Get MsaHeaderDocument.MsaHeader\r
1121 \r
1122 @return MsaHeaderDocument.MsaHeader\r
1123 \r
1124 **/\r
1125 public MsaHeaderDocument.MsaHeader getMsaHeader() {\r
1126 return msaHeader;\r
1127 }\r
1128\r
1129 /**\r
1130 Set MsaHeaderDocument.MsaHeader\r
1131 \r
1132 @param msaHeader The input data of MsaHeaderDocument.MsaHeader\r
1133 \r
1134 **/\r
1135 public void setMsaHeader(MsaHeaderDocument.MsaHeader msaHeader) {\r
1136 this.msaHeader = msaHeader;\r
1137 }\r
1138\r
1139 /* (non-Javadoc)\r
1140 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)\r
1141 * \r
1142 * Override componentResized to resize all components when frame's size is changed\r
1143 */\r
1144 public void componentResized(ComponentEvent arg0) {\r
1145 int intCurrentWidth = this.getJContentPane().getWidth();\r
1146 int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
1147\r
8792f60f 1148 Tools.resizeComponentWidth(this.jTextFieldBaseName, intCurrentWidth, intPreferredWidth);\r
9a362ae7 1149 Tools.resizeComponentWidth(this.jTextFieldGuid, intCurrentWidth, intPreferredWidth + 7);\r
8792f60f 1150 Tools.resizeComponentWidth(this.jTextFieldVersion, intCurrentWidth, intPreferredWidth);\r
1151 Tools.resizeComponentWidth(this.jScrollPaneLicense, intCurrentWidth, intPreferredWidth);\r
1152 Tools.resizeComponentWidth(this.jTextFieldURL, intCurrentWidth, intPreferredWidth);\r
1153 Tools.resizeComponentWidth(this.jScrollPaneCopyright, intCurrentWidth, intPreferredWidth);\r
1154 Tools.resizeComponentWidth(this.jScrollPaneDescription, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1155 Tools.resizeComponentWidth(this.jTextFieldSpecification, intCurrentWidth, intPreferredWidth);\r
8792f60f 1156 Tools.resizeComponentWidth(this.jTextFieldAbstract, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1157 Tools.resizeComponentWidth(this.jComboBoxModuleType, intCurrentWidth, intPreferredWidth);\r
8792f60f 1158 Tools.resizeComponentWidth(this.jTextFieldOutputFileBasename, intCurrentWidth, intPreferredWidth);\r
b63cc1b6 1159 Tools.resizeComponentWidth(this.jComboBoxPcdIsDriver, intCurrentWidth, intPreferredWidth);\r
8792f60f 1160\r
1161 Tools.relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
b63cc1b6 1162 DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
a13899c5 1163 }\r
1164\r
1165 public void focusLost(FocusEvent arg0) {\r
1166 if (this.msaHeader == null) {\r
1167 msaHeader = MsaHeaderDocument.MsaHeader.Factory.newInstance();\r
1168 }\r
2003a22e 1169\r
a13899c5 1170 //\r
1171 // Check BaseName\r
1172 //\r
1173 if (arg0.getSource() == this.jTextFieldBaseName) {\r
1174 if (isEmpty(this.jTextFieldBaseName.getText())) {\r
623db5ca 1175 Log.wrn("Update Msa Header", "The Name must be entered!");\r
a13899c5 1176 //this.jTextFieldBaseName.requestFocus();\r
1177 return;\r
1178 }\r
1179 if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
623db5ca 1180 Log.wrn("Update Msa Header", "Incorrect data type for Name, it must begin with an alpha character.");\r
a13899c5 1181 //this.jTextFieldBaseName.requestFocus();\r
1182 return;\r
1183 }\r
2003a22e 1184 if (!this.jTextFieldBaseName.getText().equals(msaHeader.getModuleName())) {\r
1185 this.msaHeader.setModuleName(this.jTextFieldBaseName.getText());\r
1186 } else {\r
1187 return;\r
1188 }\r
a13899c5 1189 }\r
1190\r
1191 //\r
1192 // Check Module Type\r
1193 //\r
1194 if (arg0.getSource() == this.jComboBoxModuleType) {\r
2003a22e 1195 if (!jComboBoxModuleType.getSelectedItem().toString().equals(msaHeader.getModuleType().toString())) {\r
1196 msaHeader.setModuleType(ModuleTypeDef.Enum.forString(jComboBoxModuleType.getSelectedItem().toString()));\r
1197 } else {\r
1198 return;\r
1199 }\r
a13899c5 1200 }\r
1201\r
1202 //\r
1203 // Check Guid\r
1204 //\r
1205 if (arg0.getSource() == this.jTextFieldGuid) {\r
1206 if (isEmpty(this.jTextFieldGuid.getText())) {\r
623db5ca 1207 Log.wrn("Update Msa Header", "Guid must be entered!");\r
a13899c5 1208 //this.jTextFieldGuid.requestFocus();\r
1209 return;\r
1210 }\r
1211 if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
623db5ca 1212 Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format. (8-4-4-4-12)");\r
a13899c5 1213 //this.jTextFieldGuid.requestFocus();\r
1214 return;\r
1215 }\r
2003a22e 1216 if (!this.jTextFieldGuid.getText().equals(msaHeader.getGuidValue())) {\r
1217 this.msaHeader.setGuidValue(this.jTextFieldGuid.getText());\r
1218 } else {\r
1219 return;\r
1220 }\r
a13899c5 1221 }\r
1222\r
1223 //\r
1224 // Check Version\r
1225 //\r
1226 if (arg0.getSource() == this.jTextFieldVersion) {\r
a13899c5 1227 if (isEmpty(this.jTextFieldVersion.getText())) {\r
623db5ca 1228 Log.wrn("Update Msa Header", "Version must be entered!");\r
a13899c5 1229 //this.jTextFieldVersion.requestFocus();\r
1230 return;\r
1231 }\r
1232 if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
623db5ca 1233 Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
a13899c5 1234 //this.jTextFieldVersion.requestFocus();\r
1235 return;\r
1236 }\r
2003a22e 1237 if (!this.jTextFieldVersion.getText().equals(msaHeader.getVersion())) {\r
1238 this.msaHeader.setVersion(this.jTextFieldVersion.getText());\r
1239 } else {\r
1240 return;\r
1241 }\r
a13899c5 1242 }\r
1243\r
1244 //\r
1245 // Check Abstact\r
1246 //\r
1247 if (arg0.getSource() == this.jTextFieldAbstract) {\r
1248 if (isEmpty(this.jTextFieldAbstract.getText())) {\r
623db5ca 1249 Log.wrn("Update Msa Header", "Abstract must be entered!");\r
a13899c5 1250 //this.jTextFieldAbstract.requestFocus();\r
1251 return;\r
1252 }\r
1253 if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
623db5ca 1254 Log.wrn("Update Msa Header", "Incorrect data type for Abstract, it must be sentence.");\r
a13899c5 1255 //this.jTextFieldAbstract.requestFocus();\r
1256 return;\r
1257 }\r
2003a22e 1258 if (!this.jTextFieldAbstract.getText().equals(msaHeader.getAbstract())) {\r
1259 this.msaHeader.setAbstract(this.jTextFieldAbstract.getText());\r
1260 } else {\r
1261 return;\r
1262 }\r
a13899c5 1263 }\r
1264\r
1265 //\r
1266 // Check Description\r
1267 //\r
1268 if (arg0.getSource() == this.jTextAreaDescription) {\r
1269 if (isEmpty(this.jTextAreaDescription.getText())) {\r
623db5ca 1270 Log.wrn("Update Msa Header", "Description must be entered!");\r
a13899c5 1271 //this.jTextAreaDescription.requestFocus();\r
1272 return;\r
1273 }\r
2003a22e 1274 if (!this.jTextAreaDescription.getText().equals(msaHeader.getDescription())) {\r
1275 this.msaHeader.setDescription(this.jTextAreaDescription.getText());\r
1276 } else {\r
1277 return;\r
1278 }\r
a13899c5 1279 }\r
1280\r
1281 //\r
1282 // Check Copyright\r
1283 //\r
739c6b04 1284 if (arg0.getSource() == this.jTextAreaCopyright) {\r
1285 if (isEmpty(this.jTextAreaCopyright.getText())) {\r
623db5ca 1286 Log.wrn("Update Msa Header", "Copyright must be entered!");\r
a13899c5 1287 //this.jTextFieldCopyright.requestFocus();\r
1288 return;\r
1289 }\r
739c6b04 1290 if (!this.jTextAreaCopyright.getText().equals(msaHeader.getCopyright())) {\r
1291 this.msaHeader.setCopyright(this.jTextAreaCopyright.getText());\r
2003a22e 1292 } else {\r
1293 return;\r
1294 }\r
a13899c5 1295 }\r
1296\r
1297 //\r
1298 // Check License\r
1299 //\r
1300 if (arg0.getSource() == this.jTextAreaLicense) {\r
1301 if (isEmpty(this.jTextAreaLicense.getText())) {\r
623db5ca 1302 Log.wrn("Update Msa Header", "License must be entered!");\r
a13899c5 1303 //this.jTextAreaLicense.requestFocus();\r
1304 return;\r
1305 }\r
1306 if (this.msaHeader.getLicense() != null) {\r
2003a22e 1307 if (!this.jTextAreaLicense.getText().equals(msaHeader.getLicense().getStringValue())) {\r
1308 this.msaHeader.getLicense().setStringValue(this.jTextAreaLicense.getText());\r
1309 } else {\r
1310 return;\r
1311 }\r
a13899c5 1312 } else {\r
1313 License mLicense = License.Factory.newInstance();\r
1314 mLicense.setStringValue(this.jTextAreaLicense.getText());\r
1315 this.msaHeader.setLicense(mLicense);\r
1316 }\r
1317 }\r
1318\r
1319 //\r
1320 // Check License URL\r
1321 //\r
1322 if (arg0.getSource() == this.jTextFieldURL) {\r
1323 if (!isEmpty(this.jTextFieldURL.getText())) {\r
1324 if (this.msaHeader.getLicense() == null) {\r
1325 License mLicense = License.Factory.newInstance();\r
1326 mLicense.setURL(this.jTextFieldURL.getText());\r
1327 this.msaHeader.setLicense(mLicense);\r
1328 } else {\r
2003a22e 1329 if (!this.jTextFieldURL.getText().equals(msaHeader.getLicense().getURL())) {\r
1330 this.msaHeader.getLicense().setURL(this.jTextFieldURL.getText());\r
1331 } else {\r
1332 return;\r
1333 }\r
a13899c5 1334 }\r
1335 }\r
1336 }\r
a929458e 1337\r
739c6b04 1338 //\r
1339 // Check Output File Basename\r
1340 //\r
1341 if (arg0.getSource() == this.jTextFieldOutputFileBasename) {\r
1342 if (isEmpty(this.jTextFieldOutputFileBasename.getText())) {\r
623db5ca 1343 Log.wrn("Update Msa Header", "Output File Basename must be entered!");\r
739c6b04 1344 // jTextFieldOutputFileBasename.removeFocusListener(this);\r
1345 // jTextFieldOutputFileBasename.requestFocus();\r
1346 // jTextFieldOutputFileBasename.addFocusListener(this);\r
1347 return;\r
1348 }\r
6173283b 1349\r
f436f728 1350 if (!DataValidation.isOutputFileBasename(this.jTextFieldOutputFileBasename.getText())) {\r
6173283b 1351 Log.wrn("Update Msa Header",\r
1352 "Incorrect data type for Output File Basename, it must be a valid file name");\r
f436f728 1353 return;\r
1354 }\r
6173283b 1355\r
739c6b04 1356 if (!this.jTextFieldOutputFileBasename.getText().equals(md.getOutputFileBasename())) {\r
1357 this.md.setOutputFileBasename(this.jTextFieldOutputFileBasename.getText());\r
1358 } else {\r
1359 return;\r
1360 }\r
1361 }\r
1362\r
1363 //\r
1364 // Check Binary Module Type\r
1365 //\r
b63cc1b6 1366 if (arg0.getSource() == this.jRadioButtonBinaryModuleTrue) {\r
1367 if (jRadioButtonBinaryModuleTrue.isSelected()) {\r
739c6b04 1368 if (md.getBinaryModule()) {\r
1369 return;\r
1370 } else {\r
1371 md.setBinaryModule(true);\r
1372 }\r
b63cc1b6 1373 }\r
1374 }\r
1375\r
1376 //\r
1377 // Check Binary Module Type\r
1378 //\r
1379 if (arg0.getSource() == this.jRadioButtonBinaryModuleFalse) {\r
1380 if (jRadioButtonBinaryModuleFalse.isSelected()) {\r
739c6b04 1381 if (md.getBinaryModule()) {\r
1382 md.setBinaryModule(false);\r
1383 } else {\r
1384 return;\r
1385 }\r
1386 }\r
1387 }\r
1388\r
1389 //\r
1390 // Check Supported Arch\r
1391 //\r
1392 if (arg0.getSource() == this.jCheckBoxArm || arg0.getSource() == this.jCheckBoxEbc\r
1393 || arg0.getSource() == this.jCheckBoxIa32 || arg0.getSource() == this.jCheckBoxIpf\r
1394 || arg0.getSource() == this.jCheckBoxPpc || arg0.getSource() == this.jCheckBoxX64) {\r
1395 if (!this.getSelectedItemsString().equals(md.getSupportedArchitectures().toString())) {\r
1396 md.setSupportedArchitectures(this.getSelectedItemsVector());\r
1397 } else {\r
1398 return;\r
1399 }\r
1400 }\r
1401\r
3b7a9058 1402 //\r
1403 // Check Flash Map\r
1404 //\r
1405 if (arg0.getSource() == this.jCheckBoxFlashMap) {\r
1406 if ((this.ex == null) && this.jCheckBoxFlashMap.isSelected()) {\r
1407 this.ex = ExternsDocument.Externs.Factory.newInstance();\r
1408 this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());\r
1409 this.msa.setExterns(this.ex);\r
d933fc5f 1410 } else if ((this.ex != null) && this.jCheckBoxFlashMap.isSelected()) {\r
3b7a9058 1411 this.ex.setTianoR8FlashMapH(this.jCheckBoxFlashMap.isSelected());\r
1412 this.msa.setExterns(this.ex);\r
d933fc5f 1413 } else if ((this.ex != null) && !this.jCheckBoxFlashMap.isSelected()) {\r
3b7a9058 1414 ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();\r
1415 if (this.ex.getExternList() != null) {\r
1416 for (int index = 0; index < this.ex.getExternList().size(); index++) {\r
1417 newEx.addNewExtern();\r
1418 newEx.setExternArray(index, this.ex.getExternArray(index));\r
1419 }\r
1420 }\r
1421 if (this.ex.getSpecificationList() != null) {\r
1422 for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {\r
1423 newEx.addNewSpecification();\r
1424 newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));\r
1425 }\r
1426 }\r
1427 if (this.ex.getPcdIsDriver() != null) {\r
1428 newEx.setPcdIsDriver(this.ex.getPcdIsDriver());\r
1429 }\r
1430 this.ex = newEx;\r
1431 this.msa.setExterns(this.ex);\r
1432 }\r
1433 }\r
1434\r
a13899c5 1435 this.save();\r
1436 }\r
739c6b04 1437\r
1438 private Vector<String> getSelectedItemsVector() {\r
1439 Vector<String> v = new Vector<String>();\r
1440 if (this.jCheckBoxIa32.isSelected()) {\r
1441 v.addElement(jCheckBoxIa32.getText());\r
1442 }\r
1443 if (this.jCheckBoxX64.isSelected()) {\r
1444 v.addElement(jCheckBoxX64.getText());\r
1445 }\r
1446 if (this.jCheckBoxIpf.isSelected()) {\r
1447 v.addElement(jCheckBoxIpf.getText());\r
1448 }\r
1449 if (this.jCheckBoxEbc.isSelected()) {\r
1450 v.addElement(jCheckBoxEbc.getText());\r
1451 }\r
1452 if (this.jCheckBoxArm.isSelected()) {\r
1453 v.addElement(jCheckBoxArm.getText());\r
1454 }\r
1455 if (this.jCheckBoxPpc.isSelected()) {\r
1456 v.addElement(jCheckBoxPpc.getText());\r
1457 }\r
1458 return v;\r
1459 }\r
1460\r
1461 private String getSelectedItemsString() {\r
1462 String s = "";\r
1463 if (this.jCheckBoxIa32.isSelected()) {\r
1464 s = s + jCheckBoxIa32.getText() + " ";\r
1465 }\r
1466 if (this.jCheckBoxX64.isSelected()) {\r
1467 s = s + jCheckBoxX64.getText() + " ";\r
1468 }\r
1469 if (this.jCheckBoxIpf.isSelected()) {\r
1470 s = s + jCheckBoxIpf.getText() + " ";\r
1471 }\r
1472 if (this.jCheckBoxEbc.isSelected()) {\r
1473 s = s + jCheckBoxEbc.getText() + " ";\r
1474 }\r
1475 if (this.jCheckBoxArm.isSelected()) {\r
1476 s = s + jCheckBoxArm.getText() + " ";\r
1477 }\r
1478 if (this.jCheckBoxPpc.isSelected()) {\r
1479 s = s + jCheckBoxPpc.getText() + " ";\r
1480 }\r
1481 return s.trim();\r
1482 }\r
1483\r
1484 private void setAllItemsSelected(boolean isSelected) {\r
6173283b 1485 this.jCheckBoxIa32.setSelected(true);\r
739c6b04 1486 this.jCheckBoxX64.setSelected(isSelected);\r
1487 this.jCheckBoxIpf.setSelected(isSelected);\r
1488 this.jCheckBoxEbc.setSelected(isSelected);\r
1489 this.jCheckBoxArm.setSelected(isSelected);\r
1490 this.jCheckBoxPpc.setSelected(isSelected);\r
1491 }\r
1492\r
1493 private void setSelectedItems(Vector<String> v) {\r
1494 setAllItemsSelected(false);\r
6173283b 1495 boolean isIA32Selected = false;\r
739c6b04 1496 if (v != null) {\r
1497 for (int index = 0; index < v.size(); index++) {\r
1498 if (v.get(index).equals(this.jCheckBoxIa32.getText())) {\r
1499 this.jCheckBoxIa32.setSelected(true);\r
6173283b 1500 isIA32Selected = true;\r
739c6b04 1501 continue;\r
1502 }\r
1503 if (v.get(index).equals(this.jCheckBoxIpf.getText())) {\r
1504 this.jCheckBoxIpf.setSelected(true);\r
1505 continue;\r
1506 }\r
1507 if (v.get(index).equals(this.jCheckBoxX64.getText())) {\r
1508 this.jCheckBoxX64.setSelected(true);\r
1509 continue;\r
1510 }\r
1511 if (v.get(index).equals(this.jCheckBoxEbc.getText())) {\r
1512 this.jCheckBoxEbc.setSelected(true);\r
1513 continue;\r
1514 }\r
1515 if (v.get(index).equals(this.jCheckBoxArm.getText())) {\r
1516 this.jCheckBoxArm.setSelected(true);\r
1517 continue;\r
1518 }\r
1519 if (v.get(index).equals(this.jCheckBoxPpc.getText())) {\r
1520 this.jCheckBoxPpc.setSelected(true);\r
1521 continue;\r
1522 }\r
1523 }\r
6173283b 1524 if (!isIA32Selected) {\r
1525 this.jCheckBoxIa32.setSelected(false);\r
1526 }\r
739c6b04 1527 }\r
1528 }\r
3b7a9058 1529\r
1530 /**\r
1531 * This method initializes jCheckBoxPcd \r
1532 * \r
1533 * @return javax.swing.JCheckBox \r
1534 */\r
1535 private JCheckBox getJCheckBoxPcd() {\r
1536 if (jCheckBoxPcd == null) {\r
1537 jCheckBoxPcd = new JCheckBox();\r
0f6a6511 1538 jCheckBoxPcd.setBounds(new java.awt.Rectangle(labelCol, 530, labelWidth, 20));\r
3b7a9058 1539 jCheckBoxPcd.setText("Is this a PCD Driver?");\r
1540 jCheckBoxPcd.addFocusListener(this);\r
1541 jCheckBoxPcd.addActionListener(this);\r
6173283b 1542 jCheckBoxPcd.setEnabled(false);\r
3b7a9058 1543 }\r
1544 return jCheckBoxPcd;\r
1545 }\r
1546\r
1547 /**\r
1548 * This method initializes jCheckBoxFlashMap \r
1549 * \r
1550 * @return javax.swing.JCheckBox \r
1551 */\r
1552 private JCheckBox getJCheckBoxFlashMap() {\r
1553 if (jCheckBoxFlashMap == null) {\r
1554 jCheckBoxFlashMap = new JCheckBox();\r
0f6a6511 1555 jCheckBoxFlashMap.setBounds(new java.awt.Rectangle(labelCol, 555, 480, 20));\r
8de0094c 1556 jCheckBoxFlashMap.setText("Does this module require a legacy FlashMap header file?");\r
3b7a9058 1557 jCheckBoxFlashMap.addFocusListener(this);\r
1558 }\r
1559 return jCheckBoxFlashMap;\r
1560 }\r
b63cc1b6 1561\r
1562 /**\r
1563 * This method initializes jRadioButtonBinaryModuleTrue \r
1564 * \r
1565 * @return javax.swing.JRadioButton \r
1566 */\r
1567 private JRadioButton getJRadioButtonBinaryModuleTrue() {\r
1568 if (jRadioButtonBinaryModuleTrue == null) {\r
1569 jRadioButtonBinaryModuleTrue = new JRadioButton();\r
1570 jRadioButtonBinaryModuleTrue.setBounds(new java.awt.Rectangle(valueCol, 480, 140, 20));\r
1571 jRadioButtonBinaryModuleTrue.setText("True");\r
1572 jRadioButtonBinaryModuleTrue.setSelected(true);\r
1573 jRadioButtonBinaryModuleTrue.addFocusListener(this);\r
1574 jRadioButtonBinaryModuleTrue.setToolTipText("<html>Modules are either source modules <br>"\r
1575 + "which can be compiled or binary <br>"\r
1576 + "modules which are linked. <br>"\r
1577 + "A module cannot contain both. <br>"\r
1578 + "The GUID numbers should be identical <br>"\r
1579 + "for a binary and source MSA, <br>"\r
1580 + "however the BINARY MSA should have <br>"\r
1581 + "a higher version number.</html>");\r
1582 }\r
1583 return jRadioButtonBinaryModuleTrue;\r
1584 }\r
1585\r
1586 /**\r
1587 * This method initializes jRadioButtonBinaryModuleFalse \r
1588 * \r
1589 * @return javax.swing.JRadioButton \r
1590 */\r
1591 private JRadioButton getJRadioButtonBinaryModuleFalse() {\r
1592 if (jRadioButtonBinaryModuleFalse == null) {\r
1593 jRadioButtonBinaryModuleFalse = new JRadioButton();\r
1594 jRadioButtonBinaryModuleFalse.setBounds(new java.awt.Rectangle(valueCol + 140, 480, 140, 20));\r
1595 jRadioButtonBinaryModuleFalse.setText("False");\r
1596 jRadioButtonBinaryModuleFalse.addFocusListener(this);\r
1597 jRadioButtonBinaryModuleFalse.setToolTipText("<html>Modules are either source modules <br>"\r
1598 + "which can be compiled or binary <br>"\r
1599 + "modules which are linked. <br>"\r
1600 + "A module cannot contain both. <br>"\r
1601 + "The GUID numbers should be identical <br>"\r
1602 + "for a binary and source MSA, <br>"\r
1603 + "however the BINARY MSA should have <br>"\r
1604 + "a higher version number.</html>");\r
1605 }\r
1606 return jRadioButtonBinaryModuleFalse;\r
1607 }\r
6173283b 1608\r
1609 public void itemStateChanged(ItemEvent arg0) {\r
1610 if (arg0.getSource() == this.jCheckBoxIa32 || arg0.getSource() == this.jCheckBoxIpf\r
1611 || arg0.getSource() == this.jCheckBoxX64 || arg0.getSource() == this.jCheckBoxEbc\r
1612 || arg0.getSource() == this.jCheckBoxArm || arg0.getSource() == this.jCheckBoxPpc) {\r
1613 if (!this.jCheckBoxIa32.isSelected() && !this.jCheckBoxX64.isSelected() && !this.jCheckBoxIpf.isSelected()\r
1614 && !this.jCheckBoxEbc.isSelected() && !this.jCheckBoxPpc.isSelected()\r
1615 && !this.jCheckBoxArm.isSelected()) {\r
1616 Log\r
1617 .wrn("At lease one Supportted Architecture should be selected! IA32 is selected as default value!");\r
1618 this.jCheckBoxIa32.setSelected(true);\r
1619 }\r
1620 }\r
1621\r
1622 if (arg0.getSource() == this.jComboBoxModuleType) {\r
1623 if (this.jComboBoxModuleType.getSelectedItem().equals("PEIM")\r
1624 || this.jComboBoxModuleType.getSelectedItem().equals("DXE_DRIVER")) {\r
1625 this.jCheckBoxPcd.setEnabled(true);\r
1626 if (this.jCheckBoxPcd.isSelected()) {\r
1627 this.jCheckBoxPcd.setSelected(false);\r
1628 this.jCheckBoxPcd.setSelected(true);\r
1629 }\r
1630 } else {\r
1631 this.jCheckBoxPcd.setEnabled(false);\r
1632 this.jCheckBoxPcd.setSelected(false);\r
1633 }\r
1634 }\r
1635\r
1636 //\r
1637 // Check Pcd is Driver\r
1638 //\r
1639 if (arg0.getSource() == this.jCheckBoxPcd) {\r
1640 if (this.jCheckBoxPcd.isSelected()) {\r
1641 if (this.jComboBoxModuleType.getSelectedItem().toString().equals("DXE_DRIVER")) {\r
1642 this.jComboBoxPcdIsDriver.setText("DXE_PCD_DRIVER");\r
1643 this.jComboBoxPcdIsDriver.setEnabled(true);\r
1644 } else if (this.jComboBoxModuleType.getSelectedItem().toString().equals("PEIM")) {\r
1645 this.jComboBoxPcdIsDriver.setText("PEI_PCD_DRIVER");\r
1646 this.jComboBoxPcdIsDriver.setEnabled(true);\r
1647 }\r
1648 }\r
1649\r
1650 if ((this.ex == null) && this.jCheckBoxPcd.isSelected()) {\r
1651 this.ex = ExternsDocument.Externs.Factory.newInstance();\r
1652 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1653 this.msa.setExterns(this.ex);\r
1654 } else if ((this.ex != null) && (this.ex.getPcdIsDriver() == null) && this.jCheckBoxPcd.isSelected()) {\r
1655 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1656 this.msa.setExterns(this.ex);\r
1657 } else if ((this.ex != null) && (this.ex.getPcdIsDriver() != null)) {\r
1658 if (this.jCheckBoxPcd.isSelected()\r
1659 && !this.jComboBoxPcdIsDriver.getText().toString().equals(this.ex.getPcdIsDriver().toString())) {\r
1660 this.ex.setPcdIsDriver(PcdDriverTypes.Enum.forString(this.jComboBoxPcdIsDriver.getText()));\r
1661 this.msa.setExterns(this.ex);\r
1662 }\r
1663 if (!this.jCheckBoxPcd.isSelected()) {\r
1664 ExternsDocument.Externs newEx = ExternsDocument.Externs.Factory.newInstance();\r
1665 if (this.ex.getExternList() != null) {\r
1666 for (int index = 0; index < this.ex.getExternList().size(); index++) {\r
1667 newEx.addNewExtern();\r
1668 newEx.setExternArray(index, this.ex.getExternArray(index));\r
1669 }\r
1670 }\r
1671 if (this.ex.getSpecificationList() != null) {\r
1672 for (int index = 0; index < this.ex.getSpecificationList().size(); index++) {\r
1673 newEx.addNewSpecification();\r
1674 newEx.setSpecificationArray(index, this.ex.getSpecificationArray(index));\r
1675 }\r
1676 }\r
1677 if (this.ex.getTianoR8FlashMapH()) {\r
1678 newEx.setTianoR8FlashMapH(this.ex.getTianoR8FlashMapH());\r
1679 }\r
1680 this.ex = newEx;\r
1681 this.msa.setExterns(this.ex);\r
1682 }\r
1683 }\r
1684 this.save();\r
1685 }\r
cc95b47b 1686 \r
1687 this.omt.setSaved(false);\r
1688 }\r
1689 \r
1690 private void addListeners() {\r
1691 this.jTextFieldBaseName.getDocument().addDocumentListener(this);\r
1692 this.jTextFieldGuid.getDocument().addDocumentListener(this);\r
1693 this.jTextFieldAbstract.getDocument().addDocumentListener(this);\r
1694 this.jTextAreaCopyright.getDocument().addDocumentListener(this);\r
1695 this.jTextAreaDescription.getDocument().addDocumentListener(this);\r
1696 this.jTextAreaLicense.getDocument().addDocumentListener(this);\r
1697 this.jTextFieldOutputFileBasename.getDocument().addDocumentListener(this);\r
1698 this.jTextFieldSpecification.getDocument().addDocumentListener(this);\r
1699 this.jTextFieldURL.getDocument().addDocumentListener(this);\r
1700 this.jTextFieldVersion.getDocument().addDocumentListener(this);\r
1701 \r
1702 this.jComboBoxModuleType.addItemListener(this);\r
1703 \r
1704 this.jCheckBoxIa32.addItemListener(this);\r
1705 this.jCheckBoxX64.addItemListener(this);\r
1706 this.jCheckBoxIpf.addItemListener(this);\r
1707 this.jCheckBoxEbc.addItemListener(this);\r
1708 this.jCheckBoxArm.addItemListener(this);\r
1709 this.jCheckBoxPpc.addItemListener(this);\r
1710 \r
1711 this.jCheckBoxPcd.addItemListener(this);\r
1712 \r
1713 this.jCheckBoxFlashMap.addItemListener(this);\r
1714 }\r
1715\r
1716 public void insertUpdate(DocumentEvent e) {\r
1717 this.omt.setSaved(false); \r
1718 }\r
1719\r
1720 public void removeUpdate(DocumentEvent e) {\r
1721 this.omt.setSaved(false);\r
1722 }\r
1723\r
1724 public void changedUpdate(DocumentEvent e) {\r
1725 // Do nothing\r
6173283b 1726 }\r
a13899c5 1727}\r