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
.awt
.event
.ItemEvent
;
22 import java
.util
.Vector
;
24 import javax
.swing
.ButtonGroup
;
25 import javax
.swing
.JButton
;
26 import javax
.swing
.JCheckBox
;
27 import javax
.swing
.JComboBox
;
28 import javax
.swing
.JLabel
;
29 import javax
.swing
.JPanel
;
30 import javax
.swing
.JScrollPane
;
31 import javax
.swing
.JTextArea
;
32 import javax
.swing
.JTextField
;
34 import org
.tianocore
.ExternsDocument
;
35 import org
.tianocore
.ModuleDefinitionsDocument
;
36 import org
.tianocore
.ModuleSurfaceAreaDocument
;
37 import org
.tianocore
.ModuleTypeDef
;
38 import org
.tianocore
.MsaHeaderDocument
;
39 import org
.tianocore
.PcdDriverTypes
;
40 import org
.tianocore
.LicenseDocument
.License
;
41 import org
.tianocore
.frameworkwizard
.common
.DataType
;
42 import org
.tianocore
.frameworkwizard
.common
.DataValidation
;
43 import org
.tianocore
.frameworkwizard
.common
.EnumerationData
;
44 import org
.tianocore
.frameworkwizard
.common
.Log
;
45 import org
.tianocore
.frameworkwizard
.common
.Tools
;
46 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
47 import org
.tianocore
.frameworkwizard
.common
.ui
.IInternalFrame
;
48 import org
.tianocore
.frameworkwizard
.common
.ui
.StarLabel
;
49 import javax
.swing
.JRadioButton
;
50 import javax
.swing
.event
.DocumentEvent
;
51 import javax
.swing
.event
.DocumentListener
;
54 The class is used to create, update MsaHeader of MSA file
55 It extends IInternalFrame
60 public class MsaHeader
extends IInternalFrame
implements DocumentListener
{
63 /// Define class Serial Version UID
65 private static final long serialVersionUID
= -8152099582923006900L;
67 private int dialogWidth
= 500;
69 private int dialogHeight
= 630;
71 private final int labelWidth
= 155;
73 private int valueWidth
= 320;
75 private final int labelCol
= 12;
77 private final int valueCol
= 168;
80 //Define class members
82 private JPanel jContentPane
= null;
84 private JLabel jLabelBaseName
= null;
86 private JTextField jTextFieldBaseName
= null;
88 private JLabel jLabelGuid
= null;
90 private JTextField jTextFieldGuid
= null;
92 private JLabel jLabelVersion
= null;
94 private JTextField jTextFieldVersion
= null;
96 private JButton jButtonGenerateGuid
= null;
98 private JLabel jLabelLicense
= null;
100 private JTextArea jTextAreaLicense
= null;
102 private JLabel jLabelCopyright
= null;
104 private JLabel jLabelDescription
= null;
106 private JTextArea jTextAreaDescription
= null;
108 private JLabel jLabelSpecification
= null;
110 private JTextField jTextFieldSpecification
= null;
112 private JButton jButtonOk
= null;
114 private JButton jButtonCancel
= null;
116 private JScrollPane jScrollPaneLicense
= null;
118 private JScrollPane jScrollPaneDescription
= null;
120 private JLabel jLabelAbstract
= null;
122 private JTextField jTextFieldAbstract
= null;
124 private JLabel jLabelModuleType
= null;
126 private JComboBox jComboBoxModuleType
= null;
128 private JLabel jLabelArch
= null;
130 private JLabel jLabelBinaryModule
= null;
132 private JLabel jLabelOutputFileBasename
= null;
134 private JTextField jTextFieldOutputFileBasename
= null;
136 private JScrollPane jScrollPaneCopyright
= null;
138 private JTextArea jTextAreaCopyright
= null;
140 private JLabel jLabelURL
= null;
142 private JTextField jTextFieldURL
= null;
144 private JScrollPane jScrollPane
= null;
146 private StarLabel jStarLabel1
= null;
148 private StarLabel jStarLabel2
= null;
150 private StarLabel jStarLabel4
= null;
152 private StarLabel jStarLabel5
= null;
154 private StarLabel jStarLabel6
= null;
156 private StarLabel jStarLabel7
= null;
158 private StarLabel jStarLabel8
= null;
160 private StarLabel jStarLabel10
= null;
162 private StarLabel jStarLabel12
= null;
164 private StarLabel jStarLabel13
= null;
166 private StarLabel jStarLabel14
= null;
168 private JCheckBox jCheckBoxIa32
= null;
170 private JCheckBox jCheckBoxX64
= null;
172 private JCheckBox jCheckBoxIpf
= null;
174 private JCheckBox jCheckBoxEbc
= null;
176 private JCheckBox jCheckBoxArm
= null;
178 private JCheckBox jCheckBoxPpc
= null;
180 private JTextField jComboBoxPcdIsDriver
= null;
182 private JCheckBox jCheckBoxPcd
= null;
184 private JCheckBox jCheckBoxFlashMap
= null;
189 private MsaHeaderDocument
.MsaHeader msaHeader
= null;
191 private ModuleDefinitionsDocument
.ModuleDefinitions md
= null;
193 private ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
195 private ExternsDocument
.Externs ex
= null;
197 private OpeningModuleType omt
= null;
199 private EnumerationData ed
= new EnumerationData();
201 private JRadioButton jRadioButtonBinaryModuleTrue
= null;
203 private JRadioButton jRadioButtonBinaryModuleFalse
= null;
206 * This method initializes jCheckBoxIa32
208 * @return javax.swing.JCheckBox
210 private JCheckBox
getJCheckBoxIa32() {
211 if (jCheckBoxIa32
== null) {
212 jCheckBoxIa32
= new JCheckBox();
213 jCheckBoxIa32
.setBounds(new java
.awt
.Rectangle(valueCol
, 505, 55, 20));
214 jCheckBoxIa32
.setText("IA32");
215 jCheckBoxIa32
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
217 return jCheckBoxIa32
;
221 * This method initializes jCheckBoxX64
223 * @return javax.swing.JCheckBox
225 private JCheckBox
getJCheckBoxX64() {
226 if (jCheckBoxX64
== null) {
227 jCheckBoxX64
= new JCheckBox();
228 jCheckBoxX64
.setBounds(new java
.awt
.Rectangle(valueCol
+ 55, 505, 53, 20));
229 jCheckBoxX64
.setText("X64");
230 jCheckBoxX64
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
236 * This method initializes jCheckBoxIpf
238 * @return javax.swing.JCheckBox
240 private JCheckBox
getJCheckBoxIpf() {
241 if (jCheckBoxIpf
== null) {
242 jCheckBoxIpf
= new JCheckBox();
243 jCheckBoxIpf
.setBounds(new java
.awt
.Rectangle(valueCol
+ 110, 505, 52, 20));
244 jCheckBoxIpf
.setText("IPF");
245 jCheckBoxIpf
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
251 * This method initializes jCheckBoxEbc
253 * @return javax.swing.JCheckBox
255 private JCheckBox
getJCheckBoxEbc() {
256 if (jCheckBoxEbc
== null) {
257 jCheckBoxEbc
= new JCheckBox();
258 jCheckBoxEbc
.setBounds(new java
.awt
.Rectangle(valueCol
+ 165, 505, 53, 20));
259 jCheckBoxEbc
.setText("EBC");
260 jCheckBoxEbc
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
266 * This method initializes jCheckBoxArm
268 * @return javax.swing.JCheckBox
270 private JCheckBox
getJCheckBoxArm() {
271 if (jCheckBoxArm
== null) {
272 jCheckBoxArm
= new JCheckBox();
273 jCheckBoxArm
.setBounds(new java
.awt
.Rectangle(valueCol
+ 220, 505, 54, 20));
274 jCheckBoxArm
.setText("ARM");
275 jCheckBoxArm
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
281 * This method initializes jCheckBoxPpc
283 * @return javax.swing.JCheckBox
285 private JCheckBox
getJCheckBoxPpc() {
286 if (jCheckBoxPpc
== null) {
287 jCheckBoxPpc
= new JCheckBox();
288 jCheckBoxPpc
.setBounds(new java
.awt
.Rectangle(valueCol
+ 285, 505, 53, 20));
289 jCheckBoxPpc
.setText("PPC");
290 jCheckBoxPpc
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
296 This method initializes jTextFieldBaseName
298 @return javax.swing.JTextField jTextFieldBaseName
301 private JTextField
getJTextFieldBaseName() {
302 if (jTextFieldBaseName
== null) {
303 jTextFieldBaseName
= new JTextField();
304 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(valueCol
, 10, valueWidth
, 20));
305 jTextFieldBaseName
.setPreferredSize(new java
.awt
.Dimension(320, 20));
306 jTextFieldBaseName
.addFocusListener(this);
307 jTextFieldBaseName
.setToolTipText("A brief Identifier, such as USB I/O Library, of the module");
309 return jTextFieldBaseName
;
313 This method initializes jTextFieldGuid
315 @return javax.swing.JTextField jTextFieldGuid
318 private JTextField
getJTextFieldGuid() {
319 if (jTextFieldGuid
== null) {
320 jTextFieldGuid
= new JTextField();
321 jTextFieldGuid
.setPreferredSize(new java
.awt
.Dimension(250, 20));
322 jTextFieldGuid
.setLocation(new java
.awt
.Point(valueCol
, 60));
323 jTextFieldGuid
.setSize(new java
.awt
.Dimension(250, 20));
324 jTextFieldGuid
.addFocusListener(this);
325 jTextFieldGuid
.setToolTipText("Guaranteed Unique Identification Number, Registry Format (8-4-4-4-12)");
327 return jTextFieldGuid
;
331 This method initializes jTextFieldVersion
333 @return javax.swing.JTextField jTextFieldVersion
336 private JTextField
getJTextFieldVersion() {
337 if (jTextFieldVersion
== null) {
338 jTextFieldVersion
= new JTextField();
339 jTextFieldVersion
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
340 jTextFieldVersion
.setLocation(new java
.awt
.Point(valueCol
, 85));
341 jTextFieldVersion
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
342 jTextFieldVersion
.addFocusListener(this);
343 jTextFieldVersion
.setToolTipText("A Version Number, 1.0, 1, 1.01, 1.0.1");
345 return jTextFieldVersion
;
349 This method initializes jButtonGenerateGuid
351 @return javax.swing.JButton jButtonGenerateGuid
354 private JButton
getJButtonGenerateGuid() {
355 if (jButtonGenerateGuid
== null) {
356 int genGuidCol
= valueCol
+ 285;
357 jButtonGenerateGuid
= new JButton();
358 jButtonGenerateGuid
.setPreferredSize(new java
.awt
.Dimension(65, 20));
359 jButtonGenerateGuid
.setSize(new java
.awt
.Dimension(65, 20));
360 jButtonGenerateGuid
.setLocation(new java
.awt
.Point(genGuidCol
, 60));
361 jButtonGenerateGuid
.setText("GEN");
362 jButtonGenerateGuid
.addActionListener(this);
364 return jButtonGenerateGuid
;
368 This method initializes jTextAreaLicense
370 @return javax.swing.JTextArea jTextAreaLicense
373 private JTextArea
getJTextAreaLicense() {
374 if (jTextAreaLicense
== null) {
375 jTextAreaLicense
= new JTextArea();
376 jTextAreaLicense
.setText("");
377 jTextAreaLicense
.setLineWrap(true);
378 jTextAreaLicense
.addFocusListener(this);
379 jTextAreaLicense
.setWrapStyleWord(true);
380 jTextAreaLicense
.setSelectionStart(0);
381 jTextAreaLicense
.setSelectionEnd(0);
382 jTextAreaLicense
.setToolTipText("The License for this Module.");
384 return jTextAreaLicense
;
388 This method initializes jTextAreaDescription
390 @return javax.swing.JTextArea jTextAreaDescription
393 private JTextArea
getJTextAreaDescription() {
394 if (jTextAreaDescription
== null) {
395 jTextAreaDescription
= new JTextArea();
396 jTextAreaDescription
.setLineWrap(true);
397 jTextAreaDescription
.addFocusListener(this);
398 jTextAreaDescription
.setToolTipText("A verbose description of the module.");
399 jTextAreaDescription
.setWrapStyleWord(true);
400 jTextAreaDescription
.setSelectionStart(0);
401 jTextAreaDescription
.setSelectionEnd(0);
403 return jTextAreaDescription
;
407 This method initializes jTextFieldSpecification
409 @return javax.swing.JTextField jTextFieldSpecification
412 private JTextField
getJTextFieldSpecification() {
413 if (jTextFieldSpecification
== null) {
414 int specWidth
= valueWidth
+ 50;
415 jTextFieldSpecification
= new JTextField();
417 jTextFieldSpecification
.setPreferredSize(new java
.awt
.Dimension(specWidth
, 20));
418 jTextFieldSpecification
.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
419 jTextFieldSpecification
.setBorder(null);
421 jTextFieldSpecification
.setSize(new java
.awt
.Dimension(specWidth
, 20));
422 jTextFieldSpecification
.setLocation(new java
.awt
.Point(labelCol
, dialogHeight
- 30));
423 jTextFieldSpecification
.setEditable(false);
424 jTextFieldSpecification
.addFocusListener(this);
426 return jTextFieldSpecification
;
430 This method initializes jButtonOk
432 @return javax.swing.JButton jButtonOk
435 private JButton
getJButtonOk() {
436 if (jButtonOk
== null) {
437 jButtonOk
= new JButton();
438 jButtonOk
.setText("OK");
439 jButtonOk
.setPreferredSize(new java
.awt
.Dimension(90, 20));
440 jButtonOk
.setBounds(new java
.awt
.Rectangle(390, 455, 90, 20));
441 jButtonOk
.addActionListener(this);
442 jButtonOk
.setVisible(false);
448 This method initializes jButtonCancel
450 @return javax.swing.JButton jButtonCancel
453 private JButton
getJButtonCancel() {
454 if (jButtonCancel
== null) {
455 jButtonCancel
= new JButton();
456 jButtonCancel
.setText("Cancel");
457 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 445, 90, 20));
458 jButtonCancel
.addActionListener(this);
459 jButtonCancel
.setPreferredSize(new java
.awt
.Dimension(90, 20));
460 jButtonCancel
.setVisible(false);
462 return jButtonCancel
;
466 This method initializes jScrollPaneLicense
468 @return javax.swing.JScrollPane jScrollPaneLicense
471 private JScrollPane
getJScrollPaneLicense() {
472 if (jScrollPaneLicense
== null) {
473 jScrollPaneLicense
= new JScrollPane();
474 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
475 jScrollPaneLicense
.setSize(new java
.awt
.Dimension(valueWidth
, 120));
476 jScrollPaneLicense
.setLocation(new java
.awt
.Point(valueCol
, 305));
477 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
478 jScrollPaneLicense
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 120));
480 return jScrollPaneLicense
;
484 This method initializes jScrollPaneDescription
486 @return javax.swing.JScrollPane jScrollPaneDescription
489 private JScrollPane
getJScrollPaneDescription() {
490 if (jScrollPaneDescription
== null) {
491 jScrollPaneDescription
= new JScrollPane();
492 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
493 jScrollPaneDescription
.setSize(new java
.awt
.Dimension(valueWidth
, 120));
494 jScrollPaneDescription
.setLocation(new java
.awt
.Point(valueCol
, 135));
495 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
496 jScrollPaneDescription
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 120));
498 return jScrollPaneDescription
;
502 This method initializes jTextFieldAbstract
504 @return javax.swing.JTextField jTextFieldAbstract
507 private JTextField
getJTextFieldAbstract() {
508 if (jTextFieldAbstract
== null) {
509 jTextFieldAbstract
= new JTextField();
510 jTextFieldAbstract
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
511 jTextFieldAbstract
.setLocation(new java
.awt
.Point(valueCol
, 110));
512 jTextFieldAbstract
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
513 jTextFieldAbstract
.addFocusListener(this);
514 jTextFieldAbstract
.setToolTipText("A one sentence description of this module.");
516 return jTextFieldAbstract
;
520 This method initializes jComboBoxModuleType
522 @return javax.swing.JComboBox jComboBoxModuleType
525 private JComboBox
getJComboBoxModuleType() {
526 if (jComboBoxModuleType
== null) {
527 jComboBoxModuleType
= new JComboBox();
528 jComboBoxModuleType
.setBounds(new java
.awt
.Rectangle(valueCol
, 35, valueWidth
, 20));
529 jComboBoxModuleType
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
531 return jComboBoxModuleType
;
535 This method initializes jTextFieldURL
537 @return javax.swing.JTextField
540 private JTextField
getJTextFieldURL() {
541 if (jTextFieldURL
== null) {
542 jTextFieldURL
= new JTextField();
543 jTextFieldURL
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
544 jTextFieldURL
.setLocation(new java
.awt
.Point(valueCol
, 430));
545 jTextFieldURL
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
546 jTextFieldURL
.addFocusListener(this);
547 jTextFieldURL
.setToolTipText("A URL for the latest version of the license.");
549 return jTextFieldURL
;
553 This method initializes jScrollPane
555 @return javax.swing.JScrollPane
558 private JScrollPane
getJScrollPane() {
559 if (jScrollPane
== null) {
560 jScrollPane
= new JScrollPane();
561 jScrollPane
.setViewportView(getJContentPane());
567 This method initializes jScrollPaneCopyright
569 @return javax.swing.JScrollPane
572 private JScrollPane
getJScrollPaneCopyright() {
573 if (jScrollPaneCopyright
== null) {
574 jScrollPaneCopyright
= new JScrollPane();
575 jScrollPaneCopyright
.setBounds(new java
.awt
.Rectangle(valueCol
, 260, valueWidth
, 40));
576 jScrollPaneCopyright
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 40));
577 jScrollPaneCopyright
.setViewportView(getJTextAreaCopyright());
578 jScrollPaneCopyright
.setSize(new java
.awt
.Dimension(valueWidth
, 40));
580 return jScrollPaneCopyright
;
584 This method initializes jTextAreaCopyright
586 @return javax.swing.JTextArea
589 private JTextArea
getJTextAreaCopyright() {
590 if (jTextAreaCopyright
== null) {
591 jTextAreaCopyright
= new JTextArea();
592 jTextAreaCopyright
.setLineWrap(true);
593 jTextAreaCopyright
.addFocusListener(this);
594 jTextAreaCopyright
.setWrapStyleWord(true);
595 jTextAreaCopyright
.setSelectionStart(0);
596 jTextAreaCopyright
.setSelectionEnd(0);
597 jTextAreaCopyright
.setBounds(new java
.awt
.Rectangle(0, 0, valueWidth
, 40));
598 jTextAreaCopyright
.setToolTipText("One or more copyright lines.");
600 return jTextAreaCopyright
;
604 * This method initializes jTextFieldOutputFileBasename
606 * @return javax.swing.JTextField
608 private JTextField
getJTextFieldOutputFileBasename() {
609 if (jTextFieldOutputFileBasename
== null) {
610 jTextFieldOutputFileBasename
= new JTextField();
611 jTextFieldOutputFileBasename
.setBounds(new java
.awt
.Rectangle(valueCol
, 455, valueWidth
, 20));
612 jTextFieldOutputFileBasename
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
613 jTextFieldOutputFileBasename
.addFocusListener(this);
614 jTextFieldOutputFileBasename
.setToolTipText("Enter a single word for generated output file names.");
616 return jTextFieldOutputFileBasename
;
620 * This method initializes jComboBoxPcdIsDriver
622 * @return javax.swing.JComboBox
624 private JTextField
getJComboBoxPcdIsDriver() {
625 if (jComboBoxPcdIsDriver
== null) {
626 jComboBoxPcdIsDriver
= new JTextField();
627 jComboBoxPcdIsDriver
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
628 jComboBoxPcdIsDriver
.setBounds(new java
.awt
.Rectangle(valueCol
, 530, valueWidth
, 20));
629 jComboBoxPcdIsDriver
.setEnabled(false);
630 jComboBoxPcdIsDriver
.setVisible(false);
632 return jComboBoxPcdIsDriver
;
636 This is the default constructor
642 this.setVisible(true);
646 This is the override edit constructor
648 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
651 public MsaHeader(OpeningModuleType inMsa
) {
654 this.msa
= omt
.getXmlMsa();
657 // Set module definitions default value
659 if (msa
.getModuleDefinitions() == null) {
660 ModuleDefinitionsDocument
.ModuleDefinitions md
= ModuleDefinitionsDocument
.ModuleDefinitions
.Factory
662 md
.setOutputFileBasename(msa
.getMsaHeader().getModuleName());
663 md
.setBinaryModule(false);
664 md
.setSupportedArchitectures(ed
.getVSupportedArchitectures());
665 msa
.setModuleDefinitions(md
);
669 // Init items of Header, Definitions and Externs
671 init(msa
.getMsaHeader());
672 init(msa
.getModuleDefinitions());
673 init(msa
.getExterns());
676 this.setVisible(true);
677 this.setViewMode(false);
681 Disable all components when the mode is view
683 @param isView true - The view mode; false - The non-view mode
686 public void setViewMode(boolean isView
) {
688 this.jTextFieldBaseName
.setEnabled(!isView
);
689 this.jTextFieldGuid
.setEnabled(!isView
);
690 this.jTextFieldVersion
.setEnabled(!isView
);
691 this.jTextAreaLicense
.setEnabled(!isView
);
692 this.jTextAreaCopyright
.setEnabled(!isView
);
693 this.jTextAreaDescription
.setEnabled(!isView
);
694 this.jTextFieldSpecification
.setEnabled(!isView
);
695 this.jTextFieldAbstract
.setEnabled(!isView
);
696 this.jComboBoxModuleType
.setEnabled(!isView
);
697 this.jButtonCancel
.setEnabled(!isView
);
698 this.jButtonGenerateGuid
.setEnabled(!isView
);
699 this.jButtonOk
.setEnabled(!isView
);
704 This method initializes this
707 private void init() {
708 this.setSize(dialogWidth
, dialogHeight
);
709 this.setPreferredSize(new java
.awt
.Dimension(dialogWidth
, dialogHeight
));
710 this.setContentPane(getJScrollPane());
711 this.setTitle("Module Surface Area Header");
716 This method initializes this
717 Fill values to all fields if these values are not empty
719 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
722 private void init(MsaHeaderDocument
.MsaHeader inMsaHeader
) {
724 if (inMsaHeader
!= null) {
725 setMsaHeader(inMsaHeader
);
726 if (this.msaHeader
.getModuleName() != null) {
727 this.jTextFieldBaseName
.setText(this.msaHeader
.getModuleName());
729 if (this.msaHeader
.getModuleType() != null) {
730 this.jComboBoxModuleType
.setSelectedItem(this.msaHeader
.getModuleType().toString());
732 if (this.msaHeader
.getGuidValue() != null) {
733 this.jTextFieldGuid
.setText(this.msaHeader
.getGuidValue());
735 if (this.msaHeader
.getVersion() != null) {
736 this.jTextFieldVersion
.setText(this.msaHeader
.getVersion());
738 if (this.msaHeader
.getAbstract() != null) {
739 this.jTextFieldAbstract
.setText(this.msaHeader
.getAbstract());
741 if (this.msaHeader
.getDescription() != null) {
742 this.jTextAreaDescription
.setText(this.msaHeader
.getDescription());
743 jTextAreaDescription
.setSelectionStart(0);
744 jTextAreaDescription
.setSelectionEnd(0);
746 if (this.msaHeader
.getCopyright() != null) {
747 this.jTextAreaCopyright
.setText(this.msaHeader
.getCopyright());
749 if (this.msaHeader
.getLicense() != null) {
750 this.jTextAreaLicense
.setText(this.msaHeader
.getLicense().getStringValue());
751 jTextAreaLicense
.setSelectionStart(0);
752 jTextAreaLicense
.setSelectionEnd(0);
754 if (this.msaHeader
.getLicense() != null && this.msaHeader
.getLicense().getURL() != null) {
755 this.jTextFieldURL
.setText(this.msaHeader
.getLicense().getURL());
757 if (this.msaHeader
.getSpecification() != null) {
758 this.jTextFieldSpecification
.setText(this.msaHeader
.getSpecification());
764 This method initializes this
765 Fill values to all fields if these values are not empty
767 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
770 private void init(ModuleDefinitionsDocument
.ModuleDefinitions inMd
) {
773 if (md
.getSupportedArchitectures() != null) {
774 this.setSelectedItems(Tools
.convertListToVector(md
.getSupportedArchitectures()));
776 if (md
.getBinaryModule()) {
777 this.jRadioButtonBinaryModuleTrue
.setSelected(true);
779 this.jRadioButtonBinaryModuleFalse
.setSelected(true);
781 if (md
.getOutputFileBasename() != null) {
782 this.jTextFieldOutputFileBasename
.setText(md
.getOutputFileBasename());
788 This method initializes this
789 Fill values to all fields if these values are not empty
791 @param inEx The input data of ExternsDocument.Externs
794 private void init(ExternsDocument
.Externs inEx
) {
797 if (ex
.getPcdIsDriver() != null) {
798 this.jCheckBoxPcd
.setSelected(true);
799 this.jCheckBoxPcd
.setEnabled(true);
801 this.jCheckBoxFlashMap
.setSelected(ex
.getTianoR8FlashMapH());
806 This method initializes jContentPane
808 @return javax.swing.JPanel jContentPane
811 private JPanel
getJContentPane() {
812 if (jContentPane
== null) {
814 jLabelURL
= new JLabel();
815 jLabelURL
.setText("License URL");
816 jLabelURL
.setLocation(new java
.awt
.Point(labelCol
, 430));
817 jLabelURL
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
818 jLabelBaseName
= new JLabel();
819 jLabelBaseName
.setText("Module Name");
820 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(labelCol
, 10, labelWidth
, 20));
821 jLabelModuleType
= new JLabel();
822 jLabelModuleType
.setBounds(new java
.awt
.Rectangle(labelCol
, 35, labelWidth
, 20));
823 jLabelModuleType
.setText("Module Type");
824 jLabelGuid
= new JLabel();
825 jLabelGuid
.setText("Guid Value");
826 jLabelGuid
.setLocation(new java
.awt
.Point(labelCol
, 60));
827 jLabelGuid
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
828 jLabelVersion
= new JLabel();
829 jLabelVersion
.setText("Version");
830 jLabelVersion
.setLocation(new java
.awt
.Point(labelCol
, 85));
831 jLabelVersion
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
832 jLabelAbstract
= new JLabel();
833 jLabelAbstract
.setText("Abstract");
834 jLabelAbstract
.setLocation(new java
.awt
.Point(labelCol
, 110));
835 jLabelAbstract
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
836 jLabelDescription
= new JLabel();
837 jLabelDescription
.setText("Description");
838 jLabelDescription
.setLocation(new java
.awt
.Point(labelCol
, 135));
839 jLabelDescription
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
840 jLabelCopyright
= new JLabel();
841 jLabelCopyright
.setText("Copyright");
842 jLabelCopyright
.setLocation(new java
.awt
.Point(labelCol
, 260));
843 jLabelCopyright
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
844 jLabelLicense
= new JLabel();
845 jLabelLicense
.setText("License");
846 jLabelLicense
.setLocation(new java
.awt
.Point(labelCol
, 305));
847 jLabelLicense
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
848 jLabelOutputFileBasename
= new JLabel();
849 jLabelOutputFileBasename
.setBounds(new java
.awt
.Rectangle(labelCol
, 455, labelWidth
, 20));
850 jLabelOutputFileBasename
.setText("Output File Basename");
851 jLabelBinaryModule
= new JLabel();
852 jLabelBinaryModule
.setBounds(new java
.awt
.Rectangle(labelCol
, 480, labelWidth
, 20));
853 jLabelBinaryModule
.setText("Binary Module");
854 jLabelArch
= new JLabel();
855 jLabelArch
.setBounds(new java
.awt
.Rectangle(labelCol
, 505, labelWidth
, 20));
856 jLabelArch
.setText("Supported Architectures");
857 jLabelSpecification
= new JLabel();
858 jLabelSpecification
.setText("Specification");
859 jLabelSpecification
.setLocation(new java
.awt
.Point(labelCol
, 530));
860 jLabelSpecification
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
862 jContentPane
= new JPanel();
863 jContentPane
.setLayout(null);
864 jContentPane
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
- 10, dialogHeight
- 10));
866 jContentPane
.addFocusListener(this);
868 jContentPane
.add(jLabelBaseName
, null);
869 jContentPane
.add(getJTextFieldBaseName(), null);
870 jContentPane
.add(jLabelGuid
, null);
871 jContentPane
.add(getJTextFieldGuid(), null);
872 jContentPane
.add(jLabelVersion
, null);
873 jContentPane
.add(getJTextFieldVersion(), null);
874 jContentPane
.add(getJButtonGenerateGuid(), null);
875 jContentPane
.add(jLabelLicense
, null);
876 jContentPane
.add(jLabelCopyright
, null);
877 jContentPane
.add(jLabelDescription
, null);
878 jContentPane
.add(getJTextFieldSpecification(), null);
879 jContentPane
.add(getJButtonOk(), null);
880 jContentPane
.add(getJButtonCancel(), null);
881 jContentPane
.add(getJScrollPaneLicense(), null);
882 jContentPane
.add(getJScrollPaneDescription(), null);
883 jContentPane
.add(jLabelAbstract
, null);
884 jContentPane
.add(getJTextFieldAbstract(), null);
885 jContentPane
.add(jLabelModuleType
, null);
886 jContentPane
.add(getJComboBoxModuleType(), null);
887 jContentPane
.add(jLabelURL
, null);
888 jContentPane
.add(getJTextFieldURL(), null);
889 jContentPane
.add(jLabelOutputFileBasename
, null);
890 jContentPane
.add(getJTextFieldOutputFileBasename(), null);
891 jContentPane
.add(jLabelBinaryModule
, null);
892 jContentPane
.add(jLabelArch
, null);
894 jStarLabel1
= new StarLabel();
895 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
896 jStarLabel2
= new StarLabel();
897 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
898 jStarLabel4
= new StarLabel();
899 jStarLabel4
.setLocation(new java
.awt
.Point(0, 60));
900 jStarLabel5
= new StarLabel();
901 jStarLabel5
.setLocation(new java
.awt
.Point(0, 85));
902 jStarLabel6
= new StarLabel();
903 jStarLabel6
.setLocation(new java
.awt
.Point(0, 135));
904 jStarLabel7
= new StarLabel();
905 jStarLabel7
.setLocation(new java
.awt
.Point(0, 260));
906 jStarLabel8
= new StarLabel();
907 jStarLabel8
.setLocation(new java
.awt
.Point(0, 305));
908 jStarLabel10
= new StarLabel();
909 jStarLabel10
.setLocation(new java
.awt
.Point(0, 110));
910 jStarLabel12
= new StarLabel();
911 jStarLabel12
.setLocation(new java
.awt
.Point(0, 455));
912 jStarLabel13
= new StarLabel();
913 jStarLabel13
.setLocation(new java
.awt
.Point(0, 480));
914 jStarLabel14
= new StarLabel();
915 jStarLabel14
.setLocation(new java
.awt
.Point(0, 505));
917 jContentPane
.add(jStarLabel1
, null);
918 jContentPane
.add(jStarLabel2
, null);
919 jContentPane
.add(jStarLabel4
, null);
920 jContentPane
.add(jStarLabel5
, null);
921 jContentPane
.add(jStarLabel6
, null);
922 jContentPane
.add(jStarLabel7
, null);
923 jContentPane
.add(jStarLabel8
, null);
924 jContentPane
.add(jStarLabel10
, null);
925 jContentPane
.add(jStarLabel12
, null);
926 jContentPane
.add(jStarLabel13
, null);
927 jContentPane
.add(jStarLabel14
, null);
928 jContentPane
.add(getJScrollPaneCopyright(), null);
930 jContentPane
.add(getJCheckBoxIa32(), null);
931 jContentPane
.add(getJCheckBoxX64(), null);
932 jContentPane
.add(getJCheckBoxIpf(), null);
933 jContentPane
.add(getJCheckBoxEbc(), null);
934 jContentPane
.add(getJCheckBoxArm(), null);
935 jContentPane
.add(getJCheckBoxPpc(), null);
937 jContentPane
.add(getJCheckBoxPcd(), null);
938 jContentPane
.add(getJComboBoxPcdIsDriver(), null);
939 jContentPane
.add(getJCheckBoxFlashMap(), null);
941 ButtonGroup bg
= new ButtonGroup();
942 jContentPane
.add(getJRadioButtonBinaryModuleTrue(), null);
943 jContentPane
.add(getJRadioButtonBinaryModuleFalse(), null);
944 bg
.add(getJRadioButtonBinaryModuleTrue());
945 bg
.add(getJRadioButtonBinaryModuleFalse());
951 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
953 * Override actionPerformed to listen all actions
956 public void actionPerformed(ActionEvent arg0
) {
957 if (arg0
.getSource() == jButtonGenerateGuid
) {
958 jTextFieldGuid
.setText(Tools
.generateUuidString());
959 jTextFieldGuid
.requestFocus();
960 jButtonGenerateGuid
.requestFocus();
965 Data validation for all fields
967 @retval true - All datas are valid
968 @retval false - At least one data is invalid
971 public boolean check() {
973 // Check if all required fields are not empty
974 // and check if all data fields values are valid
980 if (isEmpty(this.jTextFieldBaseName
.getText())) {
981 Log
.wrn("Update Msa Header", "Name must be entered!");
982 //this.jTextFieldBaseName.requestFocus();
985 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
986 Log
.wrn("Update Msa Header", "Incorrect data type for Name, it must start with an alpha character!");
987 //this.jTextFieldBaseName.requestFocus();
994 if (isEmpty(this.jTextFieldGuid
.getText())) {
995 Log
.wrn("Update Msa Header", "The Guid Value must be entered!");
996 //this.jTextFieldGuid.requestFocus();
999 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
1000 Log
.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format, 8-4-4-4-12");
1001 //this.jTextFieldGuid.requestFocus();
1008 if (isEmpty(this.jTextFieldVersion
.getText())) {
1009 Log
.wrn("Update Msa Header", "Version must be entered!");
1010 //this.jTextFieldVersion.requestFocus();
1013 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
1014 Log
.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");
1015 //this.jTextFieldVersion.requestFocus();
1022 if (isEmpty(this.jTextFieldAbstract
.getText())) {
1023 Log
.wrn("Update Msa Header", "Abstract must be entered!");
1024 //this.jTextFieldAbstract.requestFocus();
1027 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
1028 Log
.wrn("Update Msa Header",
1029 "Incorrect data type for Abstract, is should be a sentence describing the module.");
1030 //this.jTextFieldAbstract.requestFocus();
1035 // Check Description
1037 if (isEmpty(this.jTextAreaDescription
.getText())) {
1038 Log
.wrn("Update Msa Header", "Description must be entered!");
1039 //this.jTextAreaDescription.requestFocus();
1046 if (isEmpty(this.jTextAreaCopyright
.getText())) {
1047 Log
.wrn("Update Msa Header", "Copyright must be entered!");
1048 //this.jTextFieldCopyright.requestFocus();
1055 if (isEmpty(this.jTextAreaLicense
.getText())) {
1056 Log
.wrn("Update Msa Header", "License must be entered!");
1057 //this.jTextAreaLicense.requestFocus();
1062 // Check Specification
1064 if (isEmpty(this.jTextFieldSpecification
.getText())) {
1065 Log
.wrn("Update Msa Header", "Specification must exist.");
1066 //this.jTextFieldSpecification.requestFocus();
1069 if (!DataValidation
.isSpecification(this.jTextFieldSpecification
.getText())) {
1070 // TODO Add code to check the specification number.
1071 // Future releases of Schema may require that we process these files
1073 Log
.wrn("Update Msa Header", "Incorrect data type for Specification");
1074 //this.jTextFieldSpecification.requestFocus();
1082 Save all components of Msa Header
1083 if exists msaHeader, set the value directly
1084 if not exists msaHeader, new an instance first
1087 public void save() {
1089 msaHeader
.setSpecification(this.jTextFieldSpecification
.getText());
1090 msa
.setMsaHeader(msaHeader
);
1091 msa
.setModuleDefinitions(md
);
1092 this.omt
.setSaved(false);
1093 } catch (Exception e
) {
1094 Log
.wrn("Save Module", e
.getMessage());
1095 Log
.err("Save Module", e
.getMessage());
1100 This method initializes Module type and Compontent type
1103 private void initFrame() {
1104 EnumerationData ed
= new EnumerationData();
1105 Tools
.generateComboBoxByVector(jComboBoxModuleType
, ed
.getVModuleType());
1106 this.setSelectedItems(ed
.getVSupportedArchitectures());
1110 Get MsaHeaderDocument.MsaHeader
1112 @return MsaHeaderDocument.MsaHeader
1115 public MsaHeaderDocument
.MsaHeader
getMsaHeader() {
1120 Set MsaHeaderDocument.MsaHeader
1122 @param msaHeader The input data of MsaHeaderDocument.MsaHeader
1125 public void setMsaHeader(MsaHeaderDocument
.MsaHeader msaHeader
) {
1126 this.msaHeader
= msaHeader
;
1130 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
1132 * Override componentResized to resize all components when frame's size is changed
1134 public void componentResized(ComponentEvent arg0
) {
1135 int intCurrentWidth
= this.getJContentPane().getWidth();
1136 int intPreferredWidth
= this.getJContentPane().getPreferredSize().width
;
1138 Tools
.resizeComponentWidth(this.jTextFieldBaseName
, intCurrentWidth
, intPreferredWidth
);
1139 Tools
.resizeComponentWidth(this.jTextFieldGuid
, intCurrentWidth
, intPreferredWidth
+ 7);
1140 Tools
.resizeComponentWidth(this.jTextFieldVersion
, intCurrentWidth
, intPreferredWidth
);
1141 Tools
.resizeComponentWidth(this.jScrollPaneLicense
, intCurrentWidth
, intPreferredWidth
);
1142 Tools
.resizeComponentWidth(this.jTextFieldURL
, intCurrentWidth
, intPreferredWidth
);
1143 Tools
.resizeComponentWidth(this.jScrollPaneCopyright
, intCurrentWidth
, intPreferredWidth
);
1144 Tools
.resizeComponentWidth(this.jScrollPaneDescription
, intCurrentWidth
, intPreferredWidth
);
1145 Tools
.resizeComponentWidth(this.jTextFieldSpecification
, intCurrentWidth
, intPreferredWidth
);
1146 Tools
.resizeComponentWidth(this.jTextFieldAbstract
, intCurrentWidth
, intPreferredWidth
);
1147 Tools
.resizeComponentWidth(this.jComboBoxModuleType
, intCurrentWidth
, intPreferredWidth
);
1148 Tools
.resizeComponentWidth(this.jTextFieldOutputFileBasename
, intCurrentWidth
, intPreferredWidth
);
1149 Tools
.resizeComponentWidth(this.jComboBoxPcdIsDriver
, intCurrentWidth
, intPreferredWidth
);
1151 Tools
.relocateComponentX(this.jButtonGenerateGuid
, intCurrentWidth
, intPreferredWidth
,
1152 DataType
.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON
);
1155 public void focusLost(FocusEvent arg0
) {
1156 if (this.msaHeader
== null) {
1157 msaHeader
= MsaHeaderDocument
.MsaHeader
.Factory
.newInstance();
1163 if (arg0
.getSource() == this.jTextFieldBaseName
) {
1164 if (isEmpty(this.jTextFieldBaseName
.getText())) {
1165 Log
.wrn("Update Msa Header", "The Name must be entered!");
1166 //this.jTextFieldBaseName.requestFocus();
1169 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
1170 Log
.wrn("Update Msa Header", "Incorrect data type for Name, it must begin with an alpha character.");
1171 //this.jTextFieldBaseName.requestFocus();
1174 if (!this.jTextFieldBaseName
.getText().equals(msaHeader
.getModuleName())) {
1175 this.msaHeader
.setModuleName(this.jTextFieldBaseName
.getText());
1184 if (arg0
.getSource() == this.jTextFieldGuid
) {
1185 if (isEmpty(this.jTextFieldGuid
.getText())) {
1186 Log
.wrn("Update Msa Header", "Guid must be entered!");
1187 //this.jTextFieldGuid.requestFocus();
1190 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
1191 Log
.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format. (8-4-4-4-12)");
1192 //this.jTextFieldGuid.requestFocus();
1195 if (!this.jTextFieldGuid
.getText().equals(msaHeader
.getGuidValue())) {
1196 this.msaHeader
.setGuidValue(this.jTextFieldGuid
.getText());
1205 if (arg0
.getSource() == this.jTextFieldVersion
) {
1206 if (isEmpty(this.jTextFieldVersion
.getText())) {
1207 Log
.wrn("Update Msa Header", "Version must be entered!");
1208 //this.jTextFieldVersion.requestFocus();
1211 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
1212 Log
.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");
1213 //this.jTextFieldVersion.requestFocus();
1216 if (!this.jTextFieldVersion
.getText().equals(msaHeader
.getVersion())) {
1217 this.msaHeader
.setVersion(this.jTextFieldVersion
.getText());
1226 if (arg0
.getSource() == this.jTextFieldAbstract
) {
1227 if (isEmpty(this.jTextFieldAbstract
.getText())) {
1228 Log
.wrn("Update Msa Header", "Abstract must be entered!");
1229 //this.jTextFieldAbstract.requestFocus();
1232 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
1233 Log
.wrn("Update Msa Header", "Incorrect data type for Abstract, it must be sentence.");
1234 //this.jTextFieldAbstract.requestFocus();
1237 if (!this.jTextFieldAbstract
.getText().equals(msaHeader
.getAbstract())) {
1238 this.msaHeader
.setAbstract(this.jTextFieldAbstract
.getText());
1245 // Check Description
1247 if (arg0
.getSource() == this.jTextAreaDescription
) {
1248 if (isEmpty(this.jTextAreaDescription
.getText())) {
1249 Log
.wrn("Update Msa Header", "Description must be entered!");
1250 //this.jTextAreaDescription.requestFocus();
1253 if (!this.jTextAreaDescription
.getText().equals(msaHeader
.getDescription())) {
1254 this.msaHeader
.setDescription(this.jTextAreaDescription
.getText());
1263 if (arg0
.getSource() == this.jTextAreaCopyright
) {
1264 if (isEmpty(this.jTextAreaCopyright
.getText())) {
1265 Log
.wrn("Update Msa Header", "Copyright must be entered!");
1266 //this.jTextFieldCopyright.requestFocus();
1269 if (!this.jTextAreaCopyright
.getText().equals(msaHeader
.getCopyright())) {
1270 this.msaHeader
.setCopyright(this.jTextAreaCopyright
.getText());
1279 if (arg0
.getSource() == this.jTextAreaLicense
) {
1280 if (isEmpty(this.jTextAreaLicense
.getText())) {
1281 Log
.wrn("Update Msa Header", "License must be entered!");
1282 //this.jTextAreaLicense.requestFocus();
1285 if (this.msaHeader
.getLicense() != null) {
1286 if (!this.jTextAreaLicense
.getText().equals(msaHeader
.getLicense().getStringValue())) {
1287 this.msaHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
1292 License mLicense
= License
.Factory
.newInstance();
1293 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
1294 this.msaHeader
.setLicense(mLicense
);
1299 // Check License URL
1301 if (arg0
.getSource() == this.jTextFieldURL
) {
1302 if (!isEmpty(this.jTextFieldURL
.getText())) {
1303 if (this.msaHeader
.getLicense() == null) {
1304 License mLicense
= License
.Factory
.newInstance();
1305 mLicense
.setURL(this.jTextFieldURL
.getText());
1306 this.msaHeader
.setLicense(mLicense
);
1308 if (!this.jTextFieldURL
.getText().equals(msaHeader
.getLicense().getURL())) {
1309 this.msaHeader
.getLicense().setURL(this.jTextFieldURL
.getText());
1318 // Check Output File Basename
1320 if (arg0
.getSource() == this.jTextFieldOutputFileBasename
) {
1321 if (isEmpty(this.jTextFieldOutputFileBasename
.getText())) {
1322 Log
.wrn("Update Msa Header", "Output File Basename must be entered!");
1323 // jTextFieldOutputFileBasename.removeFocusListener(this);
1324 // jTextFieldOutputFileBasename.requestFocus();
1325 // jTextFieldOutputFileBasename.addFocusListener(this);
1329 if (!DataValidation
.isOutputFileBasename(this.jTextFieldOutputFileBasename
.getText())) {
1330 Log
.wrn("Update Msa Header",
1331 "Incorrect data type for Output File Basename, it must be a valid file name");
1335 if (!this.jTextFieldOutputFileBasename
.getText().equals(md
.getOutputFileBasename())) {
1336 this.md
.setOutputFileBasename(this.jTextFieldOutputFileBasename
.getText());
1343 // Check Binary Module Type
1345 if (arg0
.getSource() == this.jRadioButtonBinaryModuleTrue
) {
1346 if (jRadioButtonBinaryModuleTrue
.isSelected()) {
1347 if (md
.getBinaryModule()) {
1350 md
.setBinaryModule(true);
1356 // Check Binary Module Type
1358 if (arg0
.getSource() == this.jRadioButtonBinaryModuleFalse
) {
1359 if (jRadioButtonBinaryModuleFalse
.isSelected()) {
1360 if (md
.getBinaryModule()) {
1361 md
.setBinaryModule(false);
1371 private Vector
<String
> getSelectedItemsVector() {
1372 Vector
<String
> v
= new Vector
<String
>();
1373 if (this.jCheckBoxIa32
.isSelected()) {
1374 v
.addElement(jCheckBoxIa32
.getText());
1376 if (this.jCheckBoxX64
.isSelected()) {
1377 v
.addElement(jCheckBoxX64
.getText());
1379 if (this.jCheckBoxIpf
.isSelected()) {
1380 v
.addElement(jCheckBoxIpf
.getText());
1382 if (this.jCheckBoxEbc
.isSelected()) {
1383 v
.addElement(jCheckBoxEbc
.getText());
1385 if (this.jCheckBoxArm
.isSelected()) {
1386 v
.addElement(jCheckBoxArm
.getText());
1388 if (this.jCheckBoxPpc
.isSelected()) {
1389 v
.addElement(jCheckBoxPpc
.getText());
1394 private String
getSelectedItemsString() {
1396 if (this.jCheckBoxIa32
.isSelected()) {
1397 s
= s
+ jCheckBoxIa32
.getText() + " ";
1399 if (this.jCheckBoxX64
.isSelected()) {
1400 s
= s
+ jCheckBoxX64
.getText() + " ";
1402 if (this.jCheckBoxIpf
.isSelected()) {
1403 s
= s
+ jCheckBoxIpf
.getText() + " ";
1405 if (this.jCheckBoxEbc
.isSelected()) {
1406 s
= s
+ jCheckBoxEbc
.getText() + " ";
1408 if (this.jCheckBoxArm
.isSelected()) {
1409 s
= s
+ jCheckBoxArm
.getText() + " ";
1411 if (this.jCheckBoxPpc
.isSelected()) {
1412 s
= s
+ jCheckBoxPpc
.getText() + " ";
1417 private void setAllItemsSelected(boolean isSelected
) {
1418 this.jCheckBoxIa32
.setSelected(true);
1419 this.jCheckBoxX64
.setSelected(isSelected
);
1420 this.jCheckBoxIpf
.setSelected(isSelected
);
1421 this.jCheckBoxEbc
.setSelected(isSelected
);
1422 this.jCheckBoxArm
.setSelected(isSelected
);
1423 this.jCheckBoxPpc
.setSelected(isSelected
);
1426 private void setSelectedItems(Vector
<String
> v
) {
1427 setAllItemsSelected(false);
1428 boolean isIA32Selected
= false;
1430 for (int index
= 0; index
< v
.size(); index
++) {
1431 if (v
.get(index
).equals(this.jCheckBoxIa32
.getText())) {
1432 this.jCheckBoxIa32
.setSelected(true);
1433 isIA32Selected
= true;
1436 if (v
.get(index
).equals(this.jCheckBoxIpf
.getText())) {
1437 this.jCheckBoxIpf
.setSelected(true);
1440 if (v
.get(index
).equals(this.jCheckBoxX64
.getText())) {
1441 this.jCheckBoxX64
.setSelected(true);
1444 if (v
.get(index
).equals(this.jCheckBoxEbc
.getText())) {
1445 this.jCheckBoxEbc
.setSelected(true);
1448 if (v
.get(index
).equals(this.jCheckBoxArm
.getText())) {
1449 this.jCheckBoxArm
.setSelected(true);
1452 if (v
.get(index
).equals(this.jCheckBoxPpc
.getText())) {
1453 this.jCheckBoxPpc
.setSelected(true);
1457 if (!isIA32Selected
) {
1458 this.jCheckBoxIa32
.setSelected(false);
1464 * This method initializes jCheckBoxPcd
1466 * @return javax.swing.JCheckBox
1468 private JCheckBox
getJCheckBoxPcd() {
1469 if (jCheckBoxPcd
== null) {
1470 jCheckBoxPcd
= new JCheckBox();
1471 jCheckBoxPcd
.setBounds(new java
.awt
.Rectangle(labelCol
, 530, labelWidth
, 20));
1472 jCheckBoxPcd
.setText("Is this a PCD Driver?");
1473 jCheckBoxPcd
.addFocusListener(this);
1474 jCheckBoxPcd
.addActionListener(this);
1475 jCheckBoxPcd
.setEnabled(false);
1477 return jCheckBoxPcd
;
1481 * This method initializes jCheckBoxFlashMap
1483 * @return javax.swing.JCheckBox
1485 private JCheckBox
getJCheckBoxFlashMap() {
1486 if (jCheckBoxFlashMap
== null) {
1487 jCheckBoxFlashMap
= new JCheckBox();
1488 jCheckBoxFlashMap
.setBounds(new java
.awt
.Rectangle(labelCol
, 555, 480, 20));
1489 jCheckBoxFlashMap
.setText("Does this module require a legacy FlashMap header file?");
1491 return jCheckBoxFlashMap
;
1495 * This method initializes jRadioButtonBinaryModuleTrue
1497 * @return javax.swing.JRadioButton
1499 private JRadioButton
getJRadioButtonBinaryModuleTrue() {
1500 if (jRadioButtonBinaryModuleTrue
== null) {
1501 jRadioButtonBinaryModuleTrue
= new JRadioButton();
1502 jRadioButtonBinaryModuleTrue
.setBounds(new java
.awt
.Rectangle(valueCol
, 480, 140, 20));
1503 jRadioButtonBinaryModuleTrue
.setText("True");
1504 jRadioButtonBinaryModuleTrue
.setSelected(true);
1505 jRadioButtonBinaryModuleTrue
.addFocusListener(this);
1506 jRadioButtonBinaryModuleTrue
1507 .setToolTipText("<html>Modules are either source modules which can be compiled or binary <br>"
1508 + "modules which are linked. A module cannot contain both. <br>"
1509 + "The GUID numbers should be identical for a binary and source MSA, <br>"
1510 + "however the BINARY MSA should have a higher version number.</html>");
1512 return jRadioButtonBinaryModuleTrue
;
1516 * This method initializes jRadioButtonBinaryModuleFalse
1518 * @return javax.swing.JRadioButton
1520 private JRadioButton
getJRadioButtonBinaryModuleFalse() {
1521 if (jRadioButtonBinaryModuleFalse
== null) {
1522 jRadioButtonBinaryModuleFalse
= new JRadioButton();
1523 jRadioButtonBinaryModuleFalse
.setBounds(new java
.awt
.Rectangle(valueCol
+ 140, 480, 140, 20));
1524 jRadioButtonBinaryModuleFalse
.setText("False");
1525 jRadioButtonBinaryModuleFalse
.addFocusListener(this);
1526 jRadioButtonBinaryModuleFalse
1527 .setToolTipText("<html>Modules are either source modules which can be compiled or binary <br>"
1528 + "modules which are linked. A module cannot contain both. <br>"
1529 + "The GUID numbers should be identical for a binary and source MSA, <br>"
1530 + "however the BINARY MSA should have a higher version number.</html>");
1532 return jRadioButtonBinaryModuleFalse
;
1535 public void itemStateChanged(ItemEvent arg0
) {
1537 // Check Supported Arch
1539 if (arg0
.getSource() == this.jCheckBoxIa32
|| arg0
.getSource() == this.jCheckBoxIpf
1540 || arg0
.getSource() == this.jCheckBoxX64
|| arg0
.getSource() == this.jCheckBoxEbc
1541 || arg0
.getSource() == this.jCheckBoxArm
|| arg0
.getSource() == this.jCheckBoxPpc
) {
1542 if (!this.jCheckBoxIa32
.isSelected() && !this.jCheckBoxX64
.isSelected() && !this.jCheckBoxIpf
.isSelected()
1543 && !this.jCheckBoxEbc
.isSelected() && !this.jCheckBoxPpc
.isSelected()
1544 && !this.jCheckBoxArm
.isSelected()) {
1546 .wrn("At lease one Supportted Architecture should be selected! IA32 is selected as default value!");
1547 this.jCheckBoxIa32
.setSelected(true);
1550 if (!this.getSelectedItemsString().equals(md
.getSupportedArchitectures().toString())) {
1551 md
.setSupportedArchitectures(this.getSelectedItemsVector());
1556 if (arg0
.getSource() == this.jComboBoxModuleType
) {
1557 if (this.jComboBoxModuleType
.getSelectedItem().equals("PEIM")
1558 || this.jComboBoxModuleType
.getSelectedItem().equals("DXE_DRIVER")) {
1559 this.jCheckBoxPcd
.setEnabled(true);
1560 if (this.jCheckBoxPcd
.isSelected()) {
1561 this.jCheckBoxPcd
.setSelected(false);
1562 this.jCheckBoxPcd
.setSelected(true);
1565 this.jCheckBoxPcd
.setEnabled(false);
1566 this.jCheckBoxPcd
.setSelected(false);
1568 if (!jComboBoxModuleType
.getSelectedItem().toString().equals(msaHeader
.getModuleType().toString())) {
1569 msaHeader
.setModuleType(ModuleTypeDef
.Enum
.forString(jComboBoxModuleType
.getSelectedItem().toString()));
1575 // Check Pcd is Driver
1577 if (arg0
.getSource() == this.jCheckBoxPcd
) {
1578 if (this.jCheckBoxPcd
.isSelected()) {
1579 if (this.jComboBoxModuleType
.getSelectedItem().toString().equals("DXE_DRIVER")) {
1580 this.jComboBoxPcdIsDriver
.setText("DXE_PCD_DRIVER");
1581 this.jComboBoxPcdIsDriver
.setEnabled(true);
1582 } else if (this.jComboBoxModuleType
.getSelectedItem().toString().equals("PEIM")) {
1583 this.jComboBoxPcdIsDriver
.setText("PEI_PCD_DRIVER");
1584 this.jComboBoxPcdIsDriver
.setEnabled(true);
1588 if ((this.ex
== null) && this.jCheckBoxPcd
.isSelected()) {
1589 this.ex
= ExternsDocument
.Externs
.Factory
.newInstance();
1590 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1591 this.msa
.setExterns(this.ex
);
1592 } else if ((this.ex
!= null) && (this.ex
.getPcdIsDriver() == null) && this.jCheckBoxPcd
.isSelected()) {
1593 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1594 this.msa
.setExterns(this.ex
);
1595 } else if ((this.ex
!= null) && (this.ex
.getPcdIsDriver() != null)) {
1596 if (this.jCheckBoxPcd
.isSelected()
1597 && !this.jComboBoxPcdIsDriver
.getText().toString().equals(this.ex
.getPcdIsDriver().toString())) {
1598 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1599 this.msa
.setExterns(this.ex
);
1601 if (!this.jCheckBoxPcd
.isSelected()) {
1602 ExternsDocument
.Externs newEx
= ExternsDocument
.Externs
.Factory
.newInstance();
1603 if (this.ex
.getExternList() != null) {
1604 for (int index
= 0; index
< this.ex
.getExternList().size(); index
++) {
1605 newEx
.addNewExtern();
1606 newEx
.setExternArray(index
, this.ex
.getExternArray(index
));
1609 if (this.ex
.getSpecificationList() != null) {
1610 for (int index
= 0; index
< this.ex
.getSpecificationList().size(); index
++) {
1611 newEx
.addNewSpecification();
1612 newEx
.setSpecificationArray(index
, this.ex
.getSpecificationArray(index
));
1615 if (this.ex
.getTianoR8FlashMapH()) {
1616 newEx
.setTianoR8FlashMapH(this.ex
.getTianoR8FlashMapH());
1619 this.msa
.setExterns(this.ex
);
1627 if (arg0
.getSource() == this.jCheckBoxFlashMap
) {
1628 if ((this.ex
== null) && this.jCheckBoxFlashMap
.isSelected()) {
1629 this.ex
= ExternsDocument
.Externs
.Factory
.newInstance();
1630 this.ex
.setTianoR8FlashMapH(this.jCheckBoxFlashMap
.isSelected());
1631 this.msa
.setExterns(this.ex
);
1632 } else if ((this.ex
!= null) && this.jCheckBoxFlashMap
.isSelected()) {
1633 this.ex
.setTianoR8FlashMapH(this.jCheckBoxFlashMap
.isSelected());
1634 this.msa
.setExterns(this.ex
);
1635 } else if ((this.ex
!= null) && !this.jCheckBoxFlashMap
.isSelected()) {
1636 ExternsDocument
.Externs newEx
= ExternsDocument
.Externs
.Factory
.newInstance();
1637 if (this.ex
.getExternList() != null) {
1638 for (int index
= 0; index
< this.ex
.getExternList().size(); index
++) {
1639 newEx
.addNewExtern();
1640 newEx
.setExternArray(index
, this.ex
.getExternArray(index
));
1643 if (this.ex
.getSpecificationList() != null) {
1644 for (int index
= 0; index
< this.ex
.getSpecificationList().size(); index
++) {
1645 newEx
.addNewSpecification();
1646 newEx
.setSpecificationArray(index
, this.ex
.getSpecificationArray(index
));
1649 if (this.ex
.getPcdIsDriver() != null) {
1650 newEx
.setPcdIsDriver(this.ex
.getPcdIsDriver());
1653 this.msa
.setExterns(this.ex
);
1659 private void addListeners() {
1660 this.jTextFieldBaseName
.getDocument().addDocumentListener(this);
1661 this.jTextFieldGuid
.getDocument().addDocumentListener(this);
1662 this.jTextFieldAbstract
.getDocument().addDocumentListener(this);
1663 this.jTextAreaCopyright
.getDocument().addDocumentListener(this);
1664 this.jTextAreaDescription
.getDocument().addDocumentListener(this);
1665 this.jTextAreaLicense
.getDocument().addDocumentListener(this);
1666 this.jTextFieldOutputFileBasename
.getDocument().addDocumentListener(this);
1667 this.jTextFieldSpecification
.getDocument().addDocumentListener(this);
1668 this.jTextFieldURL
.getDocument().addDocumentListener(this);
1669 this.jTextFieldVersion
.getDocument().addDocumentListener(this);
1671 this.jComboBoxModuleType
.addItemListener(this);
1673 this.jCheckBoxIa32
.addItemListener(this);
1674 this.jCheckBoxX64
.addItemListener(this);
1675 this.jCheckBoxIpf
.addItemListener(this);
1676 this.jCheckBoxEbc
.addItemListener(this);
1677 this.jCheckBoxArm
.addItemListener(this);
1678 this.jCheckBoxPpc
.addItemListener(this);
1680 this.jCheckBoxPcd
.addItemListener(this);
1682 this.jCheckBoxFlashMap
.addItemListener(this);
1685 public void insertUpdate(DocumentEvent e
) {
1686 this.omt
.setSaved(false);
1689 public void removeUpdate(DocumentEvent e
) {
1690 this.omt
.setSaved(false);
1693 public void changedUpdate(DocumentEvent e
) {