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