3 The file is used to create, update MsaHeader of MSA file
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
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.
16 package org
.tianocore
.frameworkwizard
.module
.ui
;
18 import java
.awt
.event
.ActionEvent
;
19 import java
.awt
.event
.ComponentEvent
;
20 import java
.awt
.event
.FocusEvent
;
21 import java
.util
.Vector
;
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
;
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
;
49 The class is used to create, update MsaHeader of MSA file
50 It extends IInternalFrame
55 public class MsaHeader
extends IInternalFrame
{
58 /// Define class Serial Version UID
60 private static final long serialVersionUID
= -8152099582923006900L;
62 private int dialogWidth
= 500;
64 private int dialogHeight
= 630;
66 private final int labelWidth
= 155;
68 private int valueWidth
= 320;
70 private final int labelCol
= 12;
72 private final int valueCol
= 168;
74 //Define class members
76 private JPanel jContentPane
= null;
78 private JLabel jLabelBaseName
= null;
80 private JTextField jTextFieldBaseName
= null;
82 private JLabel jLabelGuid
= null;
84 private JTextField jTextFieldGuid
= null;
86 private JLabel jLabelVersion
= null;
88 private JTextField jTextFieldVersion
= null;
90 private JButton jButtonGenerateGuid
= null;
92 private JLabel jLabelLicense
= null;
94 private JTextArea jTextAreaLicense
= null;
96 private JLabel jLabelCopyright
= null;
98 private JLabel jLabelDescription
= null;
100 private JTextArea jTextAreaDescription
= null;
102 private JLabel jLabelSpecification
= null;
104 private JTextField jTextFieldSpecification
= null;
106 private JButton jButtonOk
= null;
108 private JButton jButtonCancel
= null;
110 private JScrollPane jScrollPaneLicense
= null;
112 private JScrollPane jScrollPaneDescription
= null;
114 private JLabel jLabelAbstract
= null;
116 private JTextField jTextFieldAbstract
= null;
118 private JLabel jLabelModuleType
= null;
120 private JComboBox jComboBoxModuleType
= null;
122 private JLabel jLabelArch
= null;
124 private JLabel jLabelBinaryModule
= null;
126 private JComboBox jComboBoxBinaryModule
= null;
128 private JLabel jLabelOutputFileBasename
= null;
130 private JTextField jTextFieldOutputFileBasename
= null;
132 private JScrollPane jScrollPaneCopyright
= null;
134 private JTextArea jTextAreaCopyright
= null;
136 private JLabel jLabelURL
= null;
138 private JTextField jTextFieldURL
= null;
140 private JScrollPane jScrollPane
= null;
142 private StarLabel jStarLabel1
= null;
144 private StarLabel jStarLabel2
= null;
146 private StarLabel jStarLabel4
= null;
148 private StarLabel jStarLabel5
= null;
150 private StarLabel jStarLabel6
= null;
152 private StarLabel jStarLabel7
= null;
154 private StarLabel jStarLabel8
= null;
156 private StarLabel jStarLabel10
= null;
158 private StarLabel jStarLabel12
= null;
160 private StarLabel jStarLabel13
= null;
162 private StarLabel jStarLabel14
= null;
164 private JCheckBox jCheckBoxIa32
= null;
166 private JCheckBox jCheckBoxX64
= null;
168 private JCheckBox jCheckBoxIpf
= null;
170 private JCheckBox jCheckBoxEbc
= null;
172 private JCheckBox jCheckBoxArm
= null;
174 private JCheckBox jCheckBoxPpc
= null;
176 private JComboBox jComboBoxPcdIsDriver
= null;
178 private JCheckBox jCheckBoxPcd
= null;
180 private JCheckBox jCheckBoxFlashMap
= null;
185 private MsaHeaderDocument
.MsaHeader msaHeader
= null;
187 private ModuleDefinitionsDocument
.ModuleDefinitions md
= null;
189 private ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
191 private ExternsDocument
.Externs ex
= null;
193 private OpeningModuleType omt
= null;
195 private EnumerationData ed
= new EnumerationData();
198 * This method initializes jCheckBoxIa32
200 * @return javax.swing.JCheckBox
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);
210 return jCheckBoxIa32
;
214 * This method initializes jCheckBoxX64
216 * @return javax.swing.JCheckBox
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);
230 * This method initializes jCheckBoxIpf
232 * @return javax.swing.JCheckBox
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);
246 * This method initializes jCheckBoxEbc
248 * @return javax.swing.JCheckBox
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);
262 * This method initializes jCheckBoxArm
264 * @return javax.swing.JCheckBox
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);
278 * This method initializes jCheckBoxPpc
280 * @return javax.swing.JCheckBox
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);
294 This method initializes jTextFieldBaseName
296 @return javax.swing.JTextField jTextFieldBaseName
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");
307 return jTextFieldBaseName
;
311 This method initializes jTextFieldGuid
313 @return javax.swing.JTextField jTextFieldGuid
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)");
325 return jTextFieldGuid
;
329 This method initializes jTextFieldVersion
331 @return javax.swing.JTextField jTextFieldVersion
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");
343 return jTextFieldVersion
;
347 This method initializes jButtonGenerateGuid
349 @return javax.swing.JButton jButtonGenerateGuid
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);
362 return jButtonGenerateGuid
;
366 This method initializes jTextAreaLicense
368 @return javax.swing.JTextArea jTextAreaLicense
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.");
382 return jTextAreaLicense
;
386 This method initializes jTextAreaDescription
388 @return javax.swing.JTextArea jTextAreaDescription
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);
401 return jTextAreaDescription
;
405 This method initializes jTextFieldSpecification
407 @return javax.swing.JTextField jTextFieldSpecification
410 private JTextField
getJTextFieldSpecification() {
411 if (jTextFieldSpecification
== null) {
412 int specWidth
= valueWidth
+ 50;
413 jTextFieldSpecification
= new JTextField();
415 jTextFieldSpecification
.setPreferredSize(new java
.awt
.Dimension(specWidth
, 20));
416 jTextFieldSpecification
.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
417 jTextFieldSpecification
.setBorder(null);
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);
424 return jTextFieldSpecification
;
428 This method initializes jButtonOk
430 @return javax.swing.JButton jButtonOk
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);
446 This method initializes jButtonCancel
448 @return javax.swing.JButton jButtonCancel
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);
460 return jButtonCancel
;
464 This method initializes jScrollPaneLicense
466 @return javax.swing.JScrollPane jScrollPaneLicense
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));
478 return jScrollPaneLicense
;
482 This method initializes jScrollPaneDescription
484 @return javax.swing.JScrollPane jScrollPaneDescription
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));
496 return jScrollPaneDescription
;
500 This method initializes jTextFieldAbstract
502 @return javax.swing.JTextField jTextFieldAbstract
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.");
514 return jTextFieldAbstract
;
518 This method initializes jComboBoxModuleType
520 @return javax.swing.JComboBox jComboBoxModuleType
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);
530 return jComboBoxModuleType
;
534 This method initializes jTextFieldURL
536 @return javax.swing.JTextField
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.");
548 return jTextFieldURL
;
552 This method initializes jScrollPane
554 @return javax.swing.JScrollPane
557 private JScrollPane
getJScrollPane() {
558 if (jScrollPane
== null) {
559 jScrollPane
= new JScrollPane();
560 jScrollPane
.setViewportView(getJContentPane());
566 This method initializes jScrollPaneCopyright
568 @return javax.swing.JScrollPane
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));
579 return jScrollPaneCopyright
;
583 This method initializes jTextAreaCopyright
585 @return javax.swing.JTextArea
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.");
599 return jTextAreaCopyright
;
603 * This method initializes jComboBoxBinaryModule
605 * @return javax.swing.JComboBox
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>");
622 return jComboBoxBinaryModule
;
626 * This method initializes jTextFieldOutputFileBasename
628 * @return javax.swing.JTextField
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.");
638 return jTextFieldOutputFileBasename
;
642 * This method initializes jComboBoxPcdIsDriver
644 * @return javax.swing.JComboBox
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);
657 return jComboBoxPcdIsDriver
;
661 This is the default constructor
667 this.setVisible(true);
671 This is the override edit constructor
673 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
676 public MsaHeader(OpeningModuleType inMsa
) {
679 this.msa
= omt
.getXmlMsa();
682 // Set module definitions default value
684 if (msa
.getModuleDefinitions() == null) {
685 ModuleDefinitionsDocument
.ModuleDefinitions md
= ModuleDefinitionsDocument
.ModuleDefinitions
.Factory
687 md
.setOutputFileBasename(msa
.getMsaHeader().getModuleName());
688 md
.setBinaryModule(false);
689 md
.setSupportedArchitectures(ed
.getVSupportedArchitectures());
690 msa
.setModuleDefinitions(md
);
694 // Init items of Header, Definitions and Externs
696 init(msa
.getMsaHeader());
697 init(msa
.getModuleDefinitions());
698 init(msa
.getExterns());
700 this.setVisible(true);
701 this.setViewMode(false);
705 Disable all components when the mode is view
707 @param isView true - The view mode; false - The non-view mode
710 public void setViewMode(boolean 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
);
728 This method initializes this
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");
740 This method initializes this
741 Fill values to all fields if these values are not empty
743 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
746 private void init(MsaHeaderDocument
.MsaHeader inMsaHeader
) {
748 if (inMsaHeader
!= null) {
749 setMsaHeader(inMsaHeader
);
750 if (this.msaHeader
.getModuleName() != null) {
751 this.jTextFieldBaseName
.setText(this.msaHeader
.getModuleName());
753 if (this.msaHeader
.getModuleType() != null) {
754 this.jComboBoxModuleType
.setSelectedItem(this.msaHeader
.getModuleType().toString());
756 if (this.msaHeader
.getGuidValue() != null) {
757 this.jTextFieldGuid
.setText(this.msaHeader
.getGuidValue());
759 if (this.msaHeader
.getVersion() != null) {
760 this.jTextFieldVersion
.setText(this.msaHeader
.getVersion());
762 if (this.msaHeader
.getAbstract() != null) {
763 this.jTextFieldAbstract
.setText(this.msaHeader
.getAbstract());
765 if (this.msaHeader
.getDescription() != null) {
766 this.jTextAreaDescription
.setText(this.msaHeader
.getDescription());
767 jTextAreaDescription
.setSelectionStart(0);
768 jTextAreaDescription
.setSelectionEnd(0);
770 if (this.msaHeader
.getCopyright() != null) {
771 this.jTextAreaCopyright
.setText(this.msaHeader
.getCopyright());
773 if (this.msaHeader
.getLicense() != null) {
774 this.jTextAreaLicense
.setText(this.msaHeader
.getLicense().getStringValue());
775 jTextAreaLicense
.setSelectionStart(0);
776 jTextAreaLicense
.setSelectionEnd(0);
778 if (this.msaHeader
.getLicense() != null && this.msaHeader
.getLicense().getURL() != null) {
779 this.jTextFieldURL
.setText(this.msaHeader
.getLicense().getURL());
781 if (this.msaHeader
.getSpecification() != null) {
782 this.jTextFieldSpecification
.setText(this.msaHeader
.getSpecification());
788 This method initializes this
789 Fill values to all fields if these values are not empty
791 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
794 private void init(ModuleDefinitionsDocument
.ModuleDefinitions inMd
) {
797 if (md
.getSupportedArchitectures() != null) {
798 this.setSelectedItems(Tools
.convertListToVector(md
.getSupportedArchitectures()));
800 if (md
.getBinaryModule()) {
801 this.jComboBoxBinaryModule
.setSelectedIndex(1);
803 this.jComboBoxBinaryModule
.setSelectedIndex(0);
805 if (md
.getOutputFileBasename() != null) {
806 this.jTextFieldOutputFileBasename
.setText(md
.getOutputFileBasename());
812 This method initializes this
813 Fill values to all fields if these values are not empty
815 @param inEx The input data of ExternsDocument.Externs
818 private void init(ExternsDocument
.Externs 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!
829 this.jCheckBoxFlashMap
.setSelected(ex
.getTianoR8FlashMapH());
834 This method initializes jContentPane
836 @return javax.swing.JPanel jContentPane
839 private JPanel
getJContentPane() {
840 if (jContentPane
== null) {
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));
890 jContentPane
= new JPanel();
891 jContentPane
.setLayout(null);
892 jContentPane
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
- 10, dialogHeight
- 10));
894 jContentPane
.addFocusListener(this);
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);
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));
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);
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);
967 jContentPane
.add(getJCheckBoxPcd(), null);
968 jContentPane
.add(getJComboBoxPcdIsDriver(), null);
970 jContentPane
.add(getJCheckBoxFlashMap(), null);
976 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
978 * Override actionPerformed to listen all actions
981 public void actionPerformed(ActionEvent arg0
) {
982 if (arg0
.getSource() == jButtonOk
) {
988 this.setEdited(true);
992 if (arg0
.getSource() == jButtonCancel
) {
993 this.setEdited(false);
996 if (arg0
.getSource() == jButtonGenerateGuid
) {
997 jTextFieldGuid
.setText(Tools
.generateUuidString());
998 jTextFieldGuid
.requestFocus();
999 jButtonGenerateGuid
.requestFocus();
1002 if (arg0
.getSource() == this.jCheckBoxPcd
) {
1003 this.jComboBoxPcdIsDriver
.setEnabled(this.jCheckBoxPcd
.isSelected());
1008 Data validation for all fields
1010 @retval true - All datas are valid
1011 @retval false - At least one data is invalid
1014 public boolean check() {
1016 // Check if all required fields are not empty
1017 // and check if all data fields values are valid
1023 if (isEmpty(this.jTextFieldBaseName
.getText())) {
1024 Log
.wrn("Update Msa Header", "Name must be entered!");
1025 //this.jTextFieldBaseName.requestFocus();
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();
1037 if (isEmpty(this.jTextFieldGuid
.getText())) {
1038 Log
.wrn("Update Msa Header", "The Guid Value must be entered!");
1039 //this.jTextFieldGuid.requestFocus();
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();
1051 if (isEmpty(this.jTextFieldVersion
.getText())) {
1052 Log
.wrn("Update Msa Header", "Version must be entered!");
1053 //this.jTextFieldVersion.requestFocus();
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();
1065 if (isEmpty(this.jTextFieldAbstract
.getText())) {
1066 Log
.wrn("Update Msa Header", "Abstract must be entered!");
1067 //this.jTextFieldAbstract.requestFocus();
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();
1078 // Check Description
1080 if (isEmpty(this.jTextAreaDescription
.getText())) {
1081 Log
.wrn("Update Msa Header", "Description must be entered!");
1082 //this.jTextAreaDescription.requestFocus();
1089 if (isEmpty(this.jTextAreaCopyright
.getText())) {
1090 Log
.wrn("Update Msa Header", "Copyright must be entered!");
1091 //this.jTextFieldCopyright.requestFocus();
1098 if (isEmpty(this.jTextAreaLicense
.getText())) {
1099 Log
.wrn("Update Msa Header", "License must be entered!");
1100 //this.jTextAreaLicense.requestFocus();
1105 // Check Specification
1107 if (isEmpty(this.jTextFieldSpecification
.getText())) {
1108 Log
.wrn("Update Msa Header", "Specification must exist.");
1109 //this.jTextFieldSpecification.requestFocus();
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
1116 Log
.wrn("Update Msa Header", "Incorrect data type for Specification");
1117 //this.jTextFieldSpecification.requestFocus();
1125 Save all components of Msa Header
1126 if exists msaHeader, set the value directly
1127 if not exists msaHeader, new an instance first
1130 public void save() {
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());
1143 This method initializes Module type and Compontent type
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());
1154 Get MsaHeaderDocument.MsaHeader
1156 @return MsaHeaderDocument.MsaHeader
1159 public MsaHeaderDocument
.MsaHeader
getMsaHeader() {
1164 Set MsaHeaderDocument.MsaHeader
1166 @param msaHeader The input data of MsaHeaderDocument.MsaHeader
1169 public void setMsaHeader(MsaHeaderDocument
.MsaHeader msaHeader
) {
1170 this.msaHeader
= msaHeader
;
1174 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
1176 * Override componentResized to resize all components when frame's size is changed
1178 public void componentResized(ComponentEvent arg0
) {
1179 int intCurrentWidth
= this.getJContentPane().getWidth();
1180 int intPreferredWidth
= this.getJContentPane().getPreferredSize().width
;
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);
1196 Tools
.relocateComponentX(this.jButtonGenerateGuid
, intCurrentWidth
, intPreferredWidth
,
1197 DataType
.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON
- 5);
1200 public void focusLost(FocusEvent arg0
) {
1201 if (this.msaHeader
== null) {
1202 msaHeader
= MsaHeaderDocument
.MsaHeader
.Factory
.newInstance();
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();
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();
1219 if (!this.jTextFieldBaseName
.getText().equals(msaHeader
.getModuleName())) {
1220 this.msaHeader
.setModuleName(this.jTextFieldBaseName
.getText());
1227 // Check Module Type
1229 if (arg0
.getSource() == this.jComboBoxModuleType
) {
1230 if (!jComboBoxModuleType
.getSelectedItem().toString().equals(msaHeader
.getModuleType().toString())) {
1231 msaHeader
.setModuleType(ModuleTypeDef
.Enum
.forString(jComboBoxModuleType
.getSelectedItem().toString()));
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();
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();
1251 if (!this.jTextFieldGuid
.getText().equals(msaHeader
.getGuidValue())) {
1252 this.msaHeader
.setGuidValue(this.jTextFieldGuid
.getText());
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();
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();
1272 if (!this.jTextFieldVersion
.getText().equals(msaHeader
.getVersion())) {
1273 this.msaHeader
.setVersion(this.jTextFieldVersion
.getText());
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();
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();
1293 if (!this.jTextFieldAbstract
.getText().equals(msaHeader
.getAbstract())) {
1294 this.msaHeader
.setAbstract(this.jTextFieldAbstract
.getText());
1301 // Check Description
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();
1309 if (!this.jTextAreaDescription
.getText().equals(msaHeader
.getDescription())) {
1310 this.msaHeader
.setDescription(this.jTextAreaDescription
.getText());
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();
1325 if (!this.jTextAreaCopyright
.getText().equals(msaHeader
.getCopyright())) {
1326 this.msaHeader
.setCopyright(this.jTextAreaCopyright
.getText());
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();
1341 if (this.msaHeader
.getLicense() != null) {
1342 if (!this.jTextAreaLicense
.getText().equals(msaHeader
.getLicense().getStringValue())) {
1343 this.msaHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
1348 License mLicense
= License
.Factory
.newInstance();
1349 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
1350 this.msaHeader
.setLicense(mLicense
);
1355 // Check License URL
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
);
1364 if (!this.jTextFieldURL
.getText().equals(msaHeader
.getLicense().getURL())) {
1365 this.msaHeader
.getLicense().setURL(this.jTextFieldURL
.getText());
1374 // Check Output File Basename
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);
1384 if (!this.jTextFieldOutputFileBasename
.getText().equals(md
.getOutputFileBasename())) {
1385 this.md
.setOutputFileBasename(this.jTextFieldOutputFileBasename
.getText());
1392 // Check Binary Module Type
1394 if (arg0
.getSource() == this.jComboBoxBinaryModule
) {
1395 if (jComboBoxBinaryModule
.getSelectedItem().toString().equals(DataType
.TRUE
)) {
1396 if (md
.getBinaryModule()) {
1399 md
.setBinaryModule(true);
1401 } else if (jComboBoxBinaryModule
.getSelectedItem().toString().equals(DataType
.FALSE
)) {
1402 if (md
.getBinaryModule()) {
1403 md
.setBinaryModule(false);
1411 // Check Supported Arch
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());
1424 // Check Pcd is Driver
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()
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()
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()
1441 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getSelectedItem()
1443 this.msa
.setExterns(this.ex
);
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
));
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
));
1459 if (this.ex
.getTianoR8FlashMapH()) {
1460 newEx
.setTianoR8FlashMapH(this.ex
.getTianoR8FlashMapH());
1463 this.msa
.setExterns(this.ex
);
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
));
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
));
1493 if (this.ex
.getPcdIsDriver() != null) {
1494 newEx
.setPcdIsDriver(this.ex
.getPcdIsDriver());
1497 this.msa
.setExterns(this.ex
);
1504 private Vector
<String
> getSelectedItemsVector() {
1505 Vector
<String
> v
= new Vector
<String
>();
1506 if (this.jCheckBoxIa32
.isSelected()) {
1507 v
.addElement(jCheckBoxIa32
.getText());
1509 if (this.jCheckBoxX64
.isSelected()) {
1510 v
.addElement(jCheckBoxX64
.getText());
1512 if (this.jCheckBoxIpf
.isSelected()) {
1513 v
.addElement(jCheckBoxIpf
.getText());
1515 if (this.jCheckBoxEbc
.isSelected()) {
1516 v
.addElement(jCheckBoxEbc
.getText());
1518 if (this.jCheckBoxArm
.isSelected()) {
1519 v
.addElement(jCheckBoxArm
.getText());
1521 if (this.jCheckBoxPpc
.isSelected()) {
1522 v
.addElement(jCheckBoxPpc
.getText());
1527 private String
getSelectedItemsString() {
1529 if (this.jCheckBoxIa32
.isSelected()) {
1530 s
= s
+ jCheckBoxIa32
.getText() + " ";
1532 if (this.jCheckBoxX64
.isSelected()) {
1533 s
= s
+ jCheckBoxX64
.getText() + " ";
1535 if (this.jCheckBoxIpf
.isSelected()) {
1536 s
= s
+ jCheckBoxIpf
.getText() + " ";
1538 if (this.jCheckBoxEbc
.isSelected()) {
1539 s
= s
+ jCheckBoxEbc
.getText() + " ";
1541 if (this.jCheckBoxArm
.isSelected()) {
1542 s
= s
+ jCheckBoxArm
.getText() + " ";
1544 if (this.jCheckBoxPpc
.isSelected()) {
1545 s
= s
+ jCheckBoxPpc
.getText() + " ";
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
);
1559 private void setSelectedItems(Vector
<String
> v
) {
1560 setAllItemsSelected(false);
1562 for (int index
= 0; index
< v
.size(); index
++) {
1563 if (v
.get(index
).equals(this.jCheckBoxIa32
.getText())) {
1564 this.jCheckBoxIa32
.setSelected(true);
1567 if (v
.get(index
).equals(this.jCheckBoxIpf
.getText())) {
1568 this.jCheckBoxIpf
.setSelected(true);
1571 if (v
.get(index
).equals(this.jCheckBoxX64
.getText())) {
1572 this.jCheckBoxX64
.setSelected(true);
1575 if (v
.get(index
).equals(this.jCheckBoxEbc
.getText())) {
1576 this.jCheckBoxEbc
.setSelected(true);
1579 if (v
.get(index
).equals(this.jCheckBoxArm
.getText())) {
1580 this.jCheckBoxArm
.setSelected(true);
1583 if (v
.get(index
).equals(this.jCheckBoxPpc
.getText())) {
1584 this.jCheckBoxPpc
.setSelected(true);
1592 * This method initializes jCheckBoxPcd
1594 * @return javax.swing.JCheckBox
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);
1604 return jCheckBoxPcd
;
1608 * This method initializes jCheckBoxFlashMap
1610 * @return javax.swing.JCheckBox
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);
1619 return jCheckBoxFlashMap
;