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
);
216 jCheckBoxIa32
.addFocusListener(this);
218 return jCheckBoxIa32
;
222 * This method initializes jCheckBoxX64
224 * @return javax.swing.JCheckBox
226 private JCheckBox
getJCheckBoxX64() {
227 if (jCheckBoxX64
== null) {
228 jCheckBoxX64
= new JCheckBox();
229 jCheckBoxX64
.setBounds(new java
.awt
.Rectangle(valueCol
+ 55, 505, 53, 20));
230 jCheckBoxX64
.setText("X64");
231 jCheckBoxX64
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
232 jCheckBoxX64
.addFocusListener(this);
238 * This method initializes jCheckBoxIpf
240 * @return javax.swing.JCheckBox
242 private JCheckBox
getJCheckBoxIpf() {
243 if (jCheckBoxIpf
== null) {
244 jCheckBoxIpf
= new JCheckBox();
245 jCheckBoxIpf
.setBounds(new java
.awt
.Rectangle(valueCol
+ 110, 505, 52, 20));
246 jCheckBoxIpf
.setText("IPF");
247 jCheckBoxIpf
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
248 jCheckBoxIpf
.addFocusListener(this);
254 * This method initializes jCheckBoxEbc
256 * @return javax.swing.JCheckBox
258 private JCheckBox
getJCheckBoxEbc() {
259 if (jCheckBoxEbc
== null) {
260 jCheckBoxEbc
= new JCheckBox();
261 jCheckBoxEbc
.setBounds(new java
.awt
.Rectangle(valueCol
+ 165, 505, 53, 20));
262 jCheckBoxEbc
.setText("EBC");
263 jCheckBoxEbc
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
264 jCheckBoxEbc
.addFocusListener(this);
270 * This method initializes jCheckBoxArm
272 * @return javax.swing.JCheckBox
274 private JCheckBox
getJCheckBoxArm() {
275 if (jCheckBoxArm
== null) {
276 jCheckBoxArm
= new JCheckBox();
277 jCheckBoxArm
.setBounds(new java
.awt
.Rectangle(valueCol
+ 220, 505, 54, 20));
278 jCheckBoxArm
.setText("ARM");
279 jCheckBoxArm
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
280 jCheckBoxArm
.addFocusListener(this);
286 * This method initializes jCheckBoxPpc
288 * @return javax.swing.JCheckBox
290 private JCheckBox
getJCheckBoxPpc() {
291 if (jCheckBoxPpc
== null) {
292 jCheckBoxPpc
= new JCheckBox();
293 jCheckBoxPpc
.setBounds(new java
.awt
.Rectangle(valueCol
+ 285, 505, 53, 20));
294 jCheckBoxPpc
.setText("PPC");
295 jCheckBoxPpc
.setToolTipText(DataType
.SUP_ARCH_LIST_HELP_TEXT
);
296 jCheckBoxPpc
.addFocusListener(this);
302 This method initializes jTextFieldBaseName
304 @return javax.swing.JTextField jTextFieldBaseName
307 private JTextField
getJTextFieldBaseName() {
308 if (jTextFieldBaseName
== null) {
309 jTextFieldBaseName
= new JTextField();
310 jTextFieldBaseName
.setBounds(new java
.awt
.Rectangle(valueCol
, 10, valueWidth
, 20));
311 jTextFieldBaseName
.setPreferredSize(new java
.awt
.Dimension(320, 20));
312 jTextFieldBaseName
.addFocusListener(this);
313 jTextFieldBaseName
.setToolTipText("A brief Identifier, such as USB I/O Library, of the module");
315 return jTextFieldBaseName
;
319 This method initializes jTextFieldGuid
321 @return javax.swing.JTextField jTextFieldGuid
324 private JTextField
getJTextFieldGuid() {
325 if (jTextFieldGuid
== null) {
326 jTextFieldGuid
= new JTextField();
327 jTextFieldGuid
.setPreferredSize(new java
.awt
.Dimension(250, 20));
328 jTextFieldGuid
.setLocation(new java
.awt
.Point(valueCol
, 60));
329 jTextFieldGuid
.setSize(new java
.awt
.Dimension(250, 20));
330 jTextFieldGuid
.addFocusListener(this);
331 jTextFieldGuid
.setToolTipText("Guaranteed Unique Identification Number, Registry Format (8-4-4-4-12)");
333 return jTextFieldGuid
;
337 This method initializes jTextFieldVersion
339 @return javax.swing.JTextField jTextFieldVersion
342 private JTextField
getJTextFieldVersion() {
343 if (jTextFieldVersion
== null) {
344 jTextFieldVersion
= new JTextField();
345 jTextFieldVersion
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
346 jTextFieldVersion
.setLocation(new java
.awt
.Point(valueCol
, 85));
347 jTextFieldVersion
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
348 jTextFieldVersion
.addFocusListener(this);
349 jTextFieldVersion
.setToolTipText("A Version Number, 1.0, 1, 1.01, 1.0.1");
351 return jTextFieldVersion
;
355 This method initializes jButtonGenerateGuid
357 @return javax.swing.JButton jButtonGenerateGuid
360 private JButton
getJButtonGenerateGuid() {
361 if (jButtonGenerateGuid
== null) {
362 int genGuidCol
= valueCol
+ 285;
363 jButtonGenerateGuid
= new JButton();
364 jButtonGenerateGuid
.setPreferredSize(new java
.awt
.Dimension(65, 20));
365 jButtonGenerateGuid
.setSize(new java
.awt
.Dimension(65, 20));
366 jButtonGenerateGuid
.setLocation(new java
.awt
.Point(genGuidCol
, 60));
367 jButtonGenerateGuid
.setText("GEN");
368 jButtonGenerateGuid
.addActionListener(this);
370 return jButtonGenerateGuid
;
374 This method initializes jTextAreaLicense
376 @return javax.swing.JTextArea jTextAreaLicense
379 private JTextArea
getJTextAreaLicense() {
380 if (jTextAreaLicense
== null) {
381 jTextAreaLicense
= new JTextArea();
382 jTextAreaLicense
.setText("");
383 jTextAreaLicense
.setLineWrap(true);
384 jTextAreaLicense
.addFocusListener(this);
385 jTextAreaLicense
.setWrapStyleWord(true);
386 jTextAreaLicense
.setSelectionStart(0);
387 jTextAreaLicense
.setSelectionEnd(0);
388 jTextAreaLicense
.setToolTipText("The License for this Module.");
390 return jTextAreaLicense
;
394 This method initializes jTextAreaDescription
396 @return javax.swing.JTextArea jTextAreaDescription
399 private JTextArea
getJTextAreaDescription() {
400 if (jTextAreaDescription
== null) {
401 jTextAreaDescription
= new JTextArea();
402 jTextAreaDescription
.setLineWrap(true);
403 jTextAreaDescription
.addFocusListener(this);
404 jTextAreaDescription
.setToolTipText("A verbose description of the module.");
405 jTextAreaDescription
.setWrapStyleWord(true);
406 jTextAreaDescription
.setSelectionStart(0);
407 jTextAreaDescription
.setSelectionEnd(0);
409 return jTextAreaDescription
;
413 This method initializes jTextFieldSpecification
415 @return javax.swing.JTextField jTextFieldSpecification
418 private JTextField
getJTextFieldSpecification() {
419 if (jTextFieldSpecification
== null) {
420 int specWidth
= valueWidth
+ 50;
421 jTextFieldSpecification
= new JTextField();
423 jTextFieldSpecification
.setPreferredSize(new java
.awt
.Dimension(specWidth
, 20));
424 jTextFieldSpecification
.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052");
425 jTextFieldSpecification
.setBorder(null);
427 jTextFieldSpecification
.setSize(new java
.awt
.Dimension(specWidth
, 20));
428 jTextFieldSpecification
.setLocation(new java
.awt
.Point(labelCol
, dialogHeight
- 30));
429 jTextFieldSpecification
.setEditable(false);
430 jTextFieldSpecification
.addFocusListener(this);
432 return jTextFieldSpecification
;
436 This method initializes jButtonOk
438 @return javax.swing.JButton jButtonOk
441 private JButton
getJButtonOk() {
442 if (jButtonOk
== null) {
443 jButtonOk
= new JButton();
444 jButtonOk
.setText("OK");
445 jButtonOk
.setPreferredSize(new java
.awt
.Dimension(90, 20));
446 jButtonOk
.setBounds(new java
.awt
.Rectangle(390, 455, 90, 20));
447 jButtonOk
.addActionListener(this);
448 jButtonOk
.setVisible(false);
454 This method initializes jButtonCancel
456 @return javax.swing.JButton jButtonCancel
459 private JButton
getJButtonCancel() {
460 if (jButtonCancel
== null) {
461 jButtonCancel
= new JButton();
462 jButtonCancel
.setText("Cancel");
463 jButtonCancel
.setBounds(new java
.awt
.Rectangle(390, 445, 90, 20));
464 jButtonCancel
.addActionListener(this);
465 jButtonCancel
.setPreferredSize(new java
.awt
.Dimension(90, 20));
466 jButtonCancel
.setVisible(false);
468 return jButtonCancel
;
472 This method initializes jScrollPaneLicense
474 @return javax.swing.JScrollPane jScrollPaneLicense
477 private JScrollPane
getJScrollPaneLicense() {
478 if (jScrollPaneLicense
== null) {
479 jScrollPaneLicense
= new JScrollPane();
480 jScrollPaneLicense
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
481 jScrollPaneLicense
.setSize(new java
.awt
.Dimension(valueWidth
, 120));
482 jScrollPaneLicense
.setLocation(new java
.awt
.Point(valueCol
, 305));
483 jScrollPaneLicense
.setViewportView(getJTextAreaLicense());
484 jScrollPaneLicense
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 120));
486 return jScrollPaneLicense
;
490 This method initializes jScrollPaneDescription
492 @return javax.swing.JScrollPane jScrollPaneDescription
495 private JScrollPane
getJScrollPaneDescription() {
496 if (jScrollPaneDescription
== null) {
497 jScrollPaneDescription
= new JScrollPane();
498 jScrollPaneDescription
.setHorizontalScrollBarPolicy(javax
.swing
.JScrollPane
.HORIZONTAL_SCROLLBAR_NEVER
);
499 jScrollPaneDescription
.setSize(new java
.awt
.Dimension(valueWidth
, 120));
500 jScrollPaneDescription
.setLocation(new java
.awt
.Point(valueCol
, 135));
501 jScrollPaneDescription
.setViewportView(getJTextAreaDescription());
502 jScrollPaneDescription
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 120));
504 return jScrollPaneDescription
;
508 This method initializes jTextFieldAbstract
510 @return javax.swing.JTextField jTextFieldAbstract
513 private JTextField
getJTextFieldAbstract() {
514 if (jTextFieldAbstract
== null) {
515 jTextFieldAbstract
= new JTextField();
516 jTextFieldAbstract
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
517 jTextFieldAbstract
.setLocation(new java
.awt
.Point(valueCol
, 110));
518 jTextFieldAbstract
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
519 jTextFieldAbstract
.addFocusListener(this);
520 jTextFieldAbstract
.setToolTipText("A one sentence description of this module.");
522 return jTextFieldAbstract
;
526 This method initializes jComboBoxModuleType
528 @return javax.swing.JComboBox jComboBoxModuleType
531 private JComboBox
getJComboBoxModuleType() {
532 if (jComboBoxModuleType
== null) {
533 jComboBoxModuleType
= new JComboBox();
534 jComboBoxModuleType
.setBounds(new java
.awt
.Rectangle(valueCol
, 35, valueWidth
, 20));
535 jComboBoxModuleType
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
536 jComboBoxModuleType
.addFocusListener(this);
538 return jComboBoxModuleType
;
542 This method initializes jTextFieldURL
544 @return javax.swing.JTextField
547 private JTextField
getJTextFieldURL() {
548 if (jTextFieldURL
== null) {
549 jTextFieldURL
= new JTextField();
550 jTextFieldURL
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
551 jTextFieldURL
.setLocation(new java
.awt
.Point(valueCol
, 430));
552 jTextFieldURL
.setSize(new java
.awt
.Dimension(valueWidth
, 20));
553 jTextFieldURL
.addFocusListener(this);
554 jTextFieldURL
.setToolTipText("A URL for the latest version of the license.");
556 return jTextFieldURL
;
560 This method initializes jScrollPane
562 @return javax.swing.JScrollPane
565 private JScrollPane
getJScrollPane() {
566 if (jScrollPane
== null) {
567 jScrollPane
= new JScrollPane();
568 jScrollPane
.setViewportView(getJContentPane());
574 This method initializes jScrollPaneCopyright
576 @return javax.swing.JScrollPane
579 private JScrollPane
getJScrollPaneCopyright() {
580 if (jScrollPaneCopyright
== null) {
581 jScrollPaneCopyright
= new JScrollPane();
582 jScrollPaneCopyright
.setBounds(new java
.awt
.Rectangle(valueCol
, 260, valueWidth
, 40));
583 jScrollPaneCopyright
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 40));
584 jScrollPaneCopyright
.setViewportView(getJTextAreaCopyright());
585 jScrollPaneCopyright
.setSize(new java
.awt
.Dimension(valueWidth
, 40));
587 return jScrollPaneCopyright
;
591 This method initializes jTextAreaCopyright
593 @return javax.swing.JTextArea
596 private JTextArea
getJTextAreaCopyright() {
597 if (jTextAreaCopyright
== null) {
598 jTextAreaCopyright
= new JTextArea();
599 jTextAreaCopyright
.setLineWrap(true);
600 jTextAreaCopyright
.addFocusListener(this);
601 jTextAreaCopyright
.setWrapStyleWord(true);
602 jTextAreaCopyright
.setSelectionStart(0);
603 jTextAreaCopyright
.setSelectionEnd(0);
604 jTextAreaCopyright
.setBounds(new java
.awt
.Rectangle(0, 0, valueWidth
, 40));
605 jTextAreaCopyright
.setToolTipText("One or more copyright lines.");
607 return jTextAreaCopyright
;
611 * This method initializes jTextFieldOutputFileBasename
613 * @return javax.swing.JTextField
615 private JTextField
getJTextFieldOutputFileBasename() {
616 if (jTextFieldOutputFileBasename
== null) {
617 jTextFieldOutputFileBasename
= new JTextField();
618 jTextFieldOutputFileBasename
.setBounds(new java
.awt
.Rectangle(valueCol
, 455, valueWidth
, 20));
619 jTextFieldOutputFileBasename
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
620 jTextFieldOutputFileBasename
.addFocusListener(this);
621 jTextFieldOutputFileBasename
.setToolTipText("Enter a single word for generated output file names.");
623 return jTextFieldOutputFileBasename
;
627 * This method initializes jComboBoxPcdIsDriver
629 * @return javax.swing.JComboBox
631 private JTextField
getJComboBoxPcdIsDriver() {
632 if (jComboBoxPcdIsDriver
== null) {
633 jComboBoxPcdIsDriver
= new JTextField();
634 jComboBoxPcdIsDriver
.setPreferredSize(new java
.awt
.Dimension(valueWidth
, 20));
635 jComboBoxPcdIsDriver
.setBounds(new java
.awt
.Rectangle(valueCol
, 530, valueWidth
, 20));
636 //jComboBoxPcdIsDriver.addItemListener(this);
637 jComboBoxPcdIsDriver
.addFocusListener(this);
638 jComboBoxPcdIsDriver
.setEnabled(false);
639 //Tools.generateComboBoxByVector(jComboBoxPcdIsDriver, ed.getVPcdDriverTypes());
640 jComboBoxPcdIsDriver
.setVisible(false);
642 return jComboBoxPcdIsDriver
;
646 This is the default constructor
652 this.setVisible(true);
656 This is the override edit constructor
658 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
661 public MsaHeader(OpeningModuleType inMsa
) {
664 this.msa
= omt
.getXmlMsa();
667 // Set module definitions default value
669 if (msa
.getModuleDefinitions() == null) {
670 ModuleDefinitionsDocument
.ModuleDefinitions md
= ModuleDefinitionsDocument
.ModuleDefinitions
.Factory
672 md
.setOutputFileBasename(msa
.getMsaHeader().getModuleName());
673 md
.setBinaryModule(false);
674 md
.setSupportedArchitectures(ed
.getVSupportedArchitectures());
675 msa
.setModuleDefinitions(md
);
679 // Init items of Header, Definitions and Externs
681 init(msa
.getMsaHeader());
682 init(msa
.getModuleDefinitions());
683 init(msa
.getExterns());
686 this.setVisible(true);
687 this.setViewMode(false);
691 Disable all components when the mode is view
693 @param isView true - The view mode; false - The non-view mode
696 public void setViewMode(boolean isView
) {
698 this.jTextFieldBaseName
.setEnabled(!isView
);
699 this.jTextFieldGuid
.setEnabled(!isView
);
700 this.jTextFieldVersion
.setEnabled(!isView
);
701 this.jTextAreaLicense
.setEnabled(!isView
);
702 this.jTextAreaCopyright
.setEnabled(!isView
);
703 this.jTextAreaDescription
.setEnabled(!isView
);
704 this.jTextFieldSpecification
.setEnabled(!isView
);
705 this.jTextFieldAbstract
.setEnabled(!isView
);
706 this.jComboBoxModuleType
.setEnabled(!isView
);
707 this.jButtonCancel
.setEnabled(!isView
);
708 this.jButtonGenerateGuid
.setEnabled(!isView
);
709 this.jButtonOk
.setEnabled(!isView
);
714 This method initializes this
717 private void init() {
718 this.setSize(dialogWidth
, dialogHeight
);
719 this.setPreferredSize(new java
.awt
.Dimension(dialogWidth
, dialogHeight
));
720 this.setContentPane(getJScrollPane());
721 this.setTitle("Module Surface Area Header");
726 This method initializes this
727 Fill values to all fields if these values are not empty
729 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
732 private void init(MsaHeaderDocument
.MsaHeader inMsaHeader
) {
734 if (inMsaHeader
!= null) {
735 setMsaHeader(inMsaHeader
);
736 if (this.msaHeader
.getModuleName() != null) {
737 this.jTextFieldBaseName
.setText(this.msaHeader
.getModuleName());
739 if (this.msaHeader
.getModuleType() != null) {
740 this.jComboBoxModuleType
.setSelectedItem(this.msaHeader
.getModuleType().toString());
742 if (this.msaHeader
.getGuidValue() != null) {
743 this.jTextFieldGuid
.setText(this.msaHeader
.getGuidValue());
745 if (this.msaHeader
.getVersion() != null) {
746 this.jTextFieldVersion
.setText(this.msaHeader
.getVersion());
748 if (this.msaHeader
.getAbstract() != null) {
749 this.jTextFieldAbstract
.setText(this.msaHeader
.getAbstract());
751 if (this.msaHeader
.getDescription() != null) {
752 this.jTextAreaDescription
.setText(this.msaHeader
.getDescription());
753 jTextAreaDescription
.setSelectionStart(0);
754 jTextAreaDescription
.setSelectionEnd(0);
756 if (this.msaHeader
.getCopyright() != null) {
757 this.jTextAreaCopyright
.setText(this.msaHeader
.getCopyright());
759 if (this.msaHeader
.getLicense() != null) {
760 this.jTextAreaLicense
.setText(this.msaHeader
.getLicense().getStringValue());
761 jTextAreaLicense
.setSelectionStart(0);
762 jTextAreaLicense
.setSelectionEnd(0);
764 if (this.msaHeader
.getLicense() != null && this.msaHeader
.getLicense().getURL() != null) {
765 this.jTextFieldURL
.setText(this.msaHeader
.getLicense().getURL());
767 if (this.msaHeader
.getSpecification() != null) {
768 this.jTextFieldSpecification
.setText(this.msaHeader
.getSpecification());
774 This method initializes this
775 Fill values to all fields if these values are not empty
777 @param inMsaHeader The input data of MsaHeaderDocument.MsaHeader
780 private void init(ModuleDefinitionsDocument
.ModuleDefinitions inMd
) {
783 if (md
.getSupportedArchitectures() != null) {
784 this.setSelectedItems(Tools
.convertListToVector(md
.getSupportedArchitectures()));
786 if (md
.getBinaryModule()) {
787 this.jRadioButtonBinaryModuleTrue
.setSelected(true);
789 this.jRadioButtonBinaryModuleFalse
.setSelected(true);
791 if (md
.getOutputFileBasename() != null) {
792 this.jTextFieldOutputFileBasename
.setText(md
.getOutputFileBasename());
798 This method initializes this
799 Fill values to all fields if these values are not empty
801 @param inEx The input data of ExternsDocument.Externs
804 private void init(ExternsDocument
.Externs inEx
) {
807 if (ex
.getPcdIsDriver() != null) {
808 this.jCheckBoxPcd
.setSelected(true);
809 this.jCheckBoxPcd
.setEnabled(true);
811 this.jCheckBoxFlashMap
.setSelected(ex
.getTianoR8FlashMapH());
816 This method initializes jContentPane
818 @return javax.swing.JPanel jContentPane
821 private JPanel
getJContentPane() {
822 if (jContentPane
== null) {
824 jLabelURL
= new JLabel();
825 jLabelURL
.setText("License URL");
826 jLabelURL
.setLocation(new java
.awt
.Point(labelCol
, 430));
827 jLabelURL
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
828 jLabelBaseName
= new JLabel();
829 jLabelBaseName
.setText("Module Name");
830 jLabelBaseName
.setBounds(new java
.awt
.Rectangle(labelCol
, 10, labelWidth
, 20));
831 jLabelModuleType
= new JLabel();
832 jLabelModuleType
.setBounds(new java
.awt
.Rectangle(labelCol
, 35, labelWidth
, 20));
833 jLabelModuleType
.setText("Module Type");
834 jLabelGuid
= new JLabel();
835 jLabelGuid
.setText("Guid Value");
836 jLabelGuid
.setLocation(new java
.awt
.Point(labelCol
, 60));
837 jLabelGuid
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
838 jLabelVersion
= new JLabel();
839 jLabelVersion
.setText("Version");
840 jLabelVersion
.setLocation(new java
.awt
.Point(labelCol
, 85));
841 jLabelVersion
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
842 jLabelAbstract
= new JLabel();
843 jLabelAbstract
.setText("Abstract");
844 jLabelAbstract
.setLocation(new java
.awt
.Point(labelCol
, 110));
845 jLabelAbstract
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
846 jLabelDescription
= new JLabel();
847 jLabelDescription
.setText("Description");
848 jLabelDescription
.setLocation(new java
.awt
.Point(labelCol
, 135));
849 jLabelDescription
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
850 jLabelCopyright
= new JLabel();
851 jLabelCopyright
.setText("Copyright");
852 jLabelCopyright
.setLocation(new java
.awt
.Point(labelCol
, 260));
853 jLabelCopyright
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
854 jLabelLicense
= new JLabel();
855 jLabelLicense
.setText("License");
856 jLabelLicense
.setLocation(new java
.awt
.Point(labelCol
, 305));
857 jLabelLicense
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
858 jLabelOutputFileBasename
= new JLabel();
859 jLabelOutputFileBasename
.setBounds(new java
.awt
.Rectangle(labelCol
, 455, labelWidth
, 20));
860 jLabelOutputFileBasename
.setText("Output File Basename");
861 jLabelBinaryModule
= new JLabel();
862 jLabelBinaryModule
.setBounds(new java
.awt
.Rectangle(labelCol
, 480, labelWidth
, 20));
863 jLabelBinaryModule
.setText("Binary Module");
864 jLabelArch
= new JLabel();
865 jLabelArch
.setBounds(new java
.awt
.Rectangle(labelCol
, 505, labelWidth
, 20));
866 jLabelArch
.setText("Supported Architectures");
867 jLabelSpecification
= new JLabel();
868 jLabelSpecification
.setText("Specification");
869 jLabelSpecification
.setLocation(new java
.awt
.Point(labelCol
, 530));
870 jLabelSpecification
.setSize(new java
.awt
.Dimension(labelWidth
, 20));
872 jContentPane
= new JPanel();
873 jContentPane
.setLayout(null);
874 jContentPane
.setPreferredSize(new java
.awt
.Dimension(dialogWidth
- 10, dialogHeight
- 10));
876 jContentPane
.addFocusListener(this);
878 jContentPane
.add(jLabelBaseName
, null);
879 jContentPane
.add(getJTextFieldBaseName(), null);
880 jContentPane
.add(jLabelGuid
, null);
881 jContentPane
.add(getJTextFieldGuid(), null);
882 jContentPane
.add(jLabelVersion
, null);
883 jContentPane
.add(getJTextFieldVersion(), null);
884 jContentPane
.add(getJButtonGenerateGuid(), null);
885 jContentPane
.add(jLabelLicense
, null);
886 jContentPane
.add(jLabelCopyright
, null);
887 jContentPane
.add(jLabelDescription
, null);
888 jContentPane
.add(getJTextFieldSpecification(), null);
889 jContentPane
.add(getJButtonOk(), null);
890 jContentPane
.add(getJButtonCancel(), null);
891 jContentPane
.add(getJScrollPaneLicense(), null);
892 jContentPane
.add(getJScrollPaneDescription(), null);
893 jContentPane
.add(jLabelAbstract
, null);
894 jContentPane
.add(getJTextFieldAbstract(), null);
895 jContentPane
.add(jLabelModuleType
, null);
896 jContentPane
.add(getJComboBoxModuleType(), null);
897 jContentPane
.add(jLabelURL
, null);
898 jContentPane
.add(getJTextFieldURL(), null);
899 jContentPane
.add(jLabelOutputFileBasename
, null);
900 jContentPane
.add(getJTextFieldOutputFileBasename(), null);
901 jContentPane
.add(jLabelBinaryModule
, null);
902 jContentPane
.add(jLabelArch
, null);
904 jStarLabel1
= new StarLabel();
905 jStarLabel1
.setLocation(new java
.awt
.Point(0, 10));
906 jStarLabel2
= new StarLabel();
907 jStarLabel2
.setLocation(new java
.awt
.Point(0, 35));
908 jStarLabel4
= new StarLabel();
909 jStarLabel4
.setLocation(new java
.awt
.Point(0, 60));
910 jStarLabel5
= new StarLabel();
911 jStarLabel5
.setLocation(new java
.awt
.Point(0, 85));
912 jStarLabel6
= new StarLabel();
913 jStarLabel6
.setLocation(new java
.awt
.Point(0, 135));
914 jStarLabel7
= new StarLabel();
915 jStarLabel7
.setLocation(new java
.awt
.Point(0, 260));
916 jStarLabel8
= new StarLabel();
917 jStarLabel8
.setLocation(new java
.awt
.Point(0, 305));
918 jStarLabel10
= new StarLabel();
919 jStarLabel10
.setLocation(new java
.awt
.Point(0, 110));
920 jStarLabel12
= new StarLabel();
921 jStarLabel12
.setLocation(new java
.awt
.Point(0, 455));
922 jStarLabel13
= new StarLabel();
923 jStarLabel13
.setLocation(new java
.awt
.Point(0, 480));
924 jStarLabel14
= new StarLabel();
925 jStarLabel14
.setLocation(new java
.awt
.Point(0, 505));
927 jContentPane
.add(jStarLabel1
, null);
928 jContentPane
.add(jStarLabel2
, null);
929 jContentPane
.add(jStarLabel4
, null);
930 jContentPane
.add(jStarLabel5
, null);
931 jContentPane
.add(jStarLabel6
, null);
932 jContentPane
.add(jStarLabel7
, null);
933 jContentPane
.add(jStarLabel8
, null);
934 jContentPane
.add(jStarLabel10
, null);
935 jContentPane
.add(jStarLabel12
, null);
936 jContentPane
.add(jStarLabel13
, null);
937 jContentPane
.add(jStarLabel14
, null);
938 jContentPane
.add(getJScrollPaneCopyright(), null);
940 jContentPane
.add(getJCheckBoxIa32(), null);
941 jContentPane
.add(getJCheckBoxX64(), null);
942 jContentPane
.add(getJCheckBoxIpf(), null);
943 jContentPane
.add(getJCheckBoxEbc(), null);
944 jContentPane
.add(getJCheckBoxArm(), null);
945 jContentPane
.add(getJCheckBoxPpc(), null);
947 jContentPane
.add(getJCheckBoxPcd(), null);
948 jContentPane
.add(getJComboBoxPcdIsDriver(), null);
949 jContentPane
.add(getJCheckBoxFlashMap(), null);
951 ButtonGroup bg
= new ButtonGroup();
952 jContentPane
.add(getJRadioButtonBinaryModuleTrue(), null);
953 jContentPane
.add(getJRadioButtonBinaryModuleFalse(), null);
954 bg
.add(getJRadioButtonBinaryModuleTrue());
955 bg
.add(getJRadioButtonBinaryModuleFalse());
961 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
963 * Override actionPerformed to listen all actions
966 public void actionPerformed(ActionEvent arg0
) {
967 if (arg0
.getSource() == jButtonGenerateGuid
) {
968 jTextFieldGuid
.setText(Tools
.generateUuidString());
969 jTextFieldGuid
.requestFocus();
970 jButtonGenerateGuid
.requestFocus();
975 Data validation for all fields
977 @retval true - All datas are valid
978 @retval false - At least one data is invalid
981 public boolean check() {
983 // Check if all required fields are not empty
984 // and check if all data fields values are valid
990 if (isEmpty(this.jTextFieldBaseName
.getText())) {
991 Log
.wrn("Update Msa Header", "Name must be entered!");
992 //this.jTextFieldBaseName.requestFocus();
995 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
996 Log
.wrn("Update Msa Header", "Incorrect data type for Name, it must start with an alpha character!");
997 //this.jTextFieldBaseName.requestFocus();
1004 if (isEmpty(this.jTextFieldGuid
.getText())) {
1005 Log
.wrn("Update Msa Header", "The Guid Value must be entered!");
1006 //this.jTextFieldGuid.requestFocus();
1009 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
1010 Log
.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format, 8-4-4-4-12");
1011 //this.jTextFieldGuid.requestFocus();
1018 if (isEmpty(this.jTextFieldVersion
.getText())) {
1019 Log
.wrn("Update Msa Header", "Version must be entered!");
1020 //this.jTextFieldVersion.requestFocus();
1023 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
1024 Log
.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");
1025 //this.jTextFieldVersion.requestFocus();
1032 if (isEmpty(this.jTextFieldAbstract
.getText())) {
1033 Log
.wrn("Update Msa Header", "Abstract must be entered!");
1034 //this.jTextFieldAbstract.requestFocus();
1037 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
1038 Log
.wrn("Update Msa Header",
1039 "Incorrect data type for Abstract, is should be a sentence describing the module.");
1040 //this.jTextFieldAbstract.requestFocus();
1045 // Check Description
1047 if (isEmpty(this.jTextAreaDescription
.getText())) {
1048 Log
.wrn("Update Msa Header", "Description must be entered!");
1049 //this.jTextAreaDescription.requestFocus();
1056 if (isEmpty(this.jTextAreaCopyright
.getText())) {
1057 Log
.wrn("Update Msa Header", "Copyright must be entered!");
1058 //this.jTextFieldCopyright.requestFocus();
1065 if (isEmpty(this.jTextAreaLicense
.getText())) {
1066 Log
.wrn("Update Msa Header", "License must be entered!");
1067 //this.jTextAreaLicense.requestFocus();
1072 // Check Specification
1074 if (isEmpty(this.jTextFieldSpecification
.getText())) {
1075 Log
.wrn("Update Msa Header", "Specification must exist.");
1076 //this.jTextFieldSpecification.requestFocus();
1079 if (!DataValidation
.isSpecification(this.jTextFieldSpecification
.getText())) {
1080 // TODO Add code to check the specification number.
1081 // Future releases of Schema may require that we process these files
1083 Log
.wrn("Update Msa Header", "Incorrect data type for Specification");
1084 //this.jTextFieldSpecification.requestFocus();
1092 Save all components of Msa Header
1093 if exists msaHeader, set the value directly
1094 if not exists msaHeader, new an instance first
1097 public void save() {
1099 msaHeader
.setSpecification(this.jTextFieldSpecification
.getText());
1100 msa
.setMsaHeader(msaHeader
);
1101 msa
.setModuleDefinitions(md
);
1102 this.omt
.setSaved(false);
1103 } catch (Exception e
) {
1104 Log
.wrn("Save Module", e
.getMessage());
1105 Log
.err("Save Module", e
.getMessage());
1110 This method initializes Module type and Compontent type
1113 private void initFrame() {
1114 EnumerationData ed
= new EnumerationData();
1115 Tools
.generateComboBoxByVector(jComboBoxModuleType
, ed
.getVModuleType());
1116 this.setSelectedItems(ed
.getVSupportedArchitectures());
1120 Get MsaHeaderDocument.MsaHeader
1122 @return MsaHeaderDocument.MsaHeader
1125 public MsaHeaderDocument
.MsaHeader
getMsaHeader() {
1130 Set MsaHeaderDocument.MsaHeader
1132 @param msaHeader The input data of MsaHeaderDocument.MsaHeader
1135 public void setMsaHeader(MsaHeaderDocument
.MsaHeader msaHeader
) {
1136 this.msaHeader
= msaHeader
;
1140 * @see java.awt.event.ComponentListener#componentResized(java.awt.event.ComponentEvent)
1142 * Override componentResized to resize all components when frame's size is changed
1144 public void componentResized(ComponentEvent arg0
) {
1145 int intCurrentWidth
= this.getJContentPane().getWidth();
1146 int intPreferredWidth
= this.getJContentPane().getPreferredSize().width
;
1148 Tools
.resizeComponentWidth(this.jTextFieldBaseName
, intCurrentWidth
, intPreferredWidth
);
1149 Tools
.resizeComponentWidth(this.jTextFieldGuid
, intCurrentWidth
, intPreferredWidth
+ 7);
1150 Tools
.resizeComponentWidth(this.jTextFieldVersion
, intCurrentWidth
, intPreferredWidth
);
1151 Tools
.resizeComponentWidth(this.jScrollPaneLicense
, intCurrentWidth
, intPreferredWidth
);
1152 Tools
.resizeComponentWidth(this.jTextFieldURL
, intCurrentWidth
, intPreferredWidth
);
1153 Tools
.resizeComponentWidth(this.jScrollPaneCopyright
, intCurrentWidth
, intPreferredWidth
);
1154 Tools
.resizeComponentWidth(this.jScrollPaneDescription
, intCurrentWidth
, intPreferredWidth
);
1155 Tools
.resizeComponentWidth(this.jTextFieldSpecification
, intCurrentWidth
, intPreferredWidth
);
1156 Tools
.resizeComponentWidth(this.jTextFieldAbstract
, intCurrentWidth
, intPreferredWidth
);
1157 Tools
.resizeComponentWidth(this.jComboBoxModuleType
, intCurrentWidth
, intPreferredWidth
);
1158 Tools
.resizeComponentWidth(this.jTextFieldOutputFileBasename
, intCurrentWidth
, intPreferredWidth
);
1159 Tools
.resizeComponentWidth(this.jComboBoxPcdIsDriver
, intCurrentWidth
, intPreferredWidth
);
1161 Tools
.relocateComponentX(this.jButtonGenerateGuid
, intCurrentWidth
, intPreferredWidth
,
1162 DataType
.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON
);
1165 public void focusLost(FocusEvent arg0
) {
1166 if (this.msaHeader
== null) {
1167 msaHeader
= MsaHeaderDocument
.MsaHeader
.Factory
.newInstance();
1173 if (arg0
.getSource() == this.jTextFieldBaseName
) {
1174 if (isEmpty(this.jTextFieldBaseName
.getText())) {
1175 Log
.wrn("Update Msa Header", "The Name must be entered!");
1176 //this.jTextFieldBaseName.requestFocus();
1179 if (!DataValidation
.isBaseName(this.jTextFieldBaseName
.getText())) {
1180 Log
.wrn("Update Msa Header", "Incorrect data type for Name, it must begin with an alpha character.");
1181 //this.jTextFieldBaseName.requestFocus();
1184 if (!this.jTextFieldBaseName
.getText().equals(msaHeader
.getModuleName())) {
1185 this.msaHeader
.setModuleName(this.jTextFieldBaseName
.getText());
1192 // Check Module Type
1194 if (arg0
.getSource() == this.jComboBoxModuleType
) {
1195 if (!jComboBoxModuleType
.getSelectedItem().toString().equals(msaHeader
.getModuleType().toString())) {
1196 msaHeader
.setModuleType(ModuleTypeDef
.Enum
.forString(jComboBoxModuleType
.getSelectedItem().toString()));
1205 if (arg0
.getSource() == this.jTextFieldGuid
) {
1206 if (isEmpty(this.jTextFieldGuid
.getText())) {
1207 Log
.wrn("Update Msa Header", "Guid must be entered!");
1208 //this.jTextFieldGuid.requestFocus();
1211 if (!DataValidation
.isGuid((this.jTextFieldGuid
).getText())) {
1212 Log
.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format. (8-4-4-4-12)");
1213 //this.jTextFieldGuid.requestFocus();
1216 if (!this.jTextFieldGuid
.getText().equals(msaHeader
.getGuidValue())) {
1217 this.msaHeader
.setGuidValue(this.jTextFieldGuid
.getText());
1226 if (arg0
.getSource() == this.jTextFieldVersion
) {
1227 if (isEmpty(this.jTextFieldVersion
.getText())) {
1228 Log
.wrn("Update Msa Header", "Version must be entered!");
1229 //this.jTextFieldVersion.requestFocus();
1232 if (!DataValidation
.isVersion(this.jTextFieldVersion
.getText())) {
1233 Log
.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");
1234 //this.jTextFieldVersion.requestFocus();
1237 if (!this.jTextFieldVersion
.getText().equals(msaHeader
.getVersion())) {
1238 this.msaHeader
.setVersion(this.jTextFieldVersion
.getText());
1247 if (arg0
.getSource() == this.jTextFieldAbstract
) {
1248 if (isEmpty(this.jTextFieldAbstract
.getText())) {
1249 Log
.wrn("Update Msa Header", "Abstract must be entered!");
1250 //this.jTextFieldAbstract.requestFocus();
1253 if (!DataValidation
.isAbstract(this.jTextFieldAbstract
.getText())) {
1254 Log
.wrn("Update Msa Header", "Incorrect data type for Abstract, it must be sentence.");
1255 //this.jTextFieldAbstract.requestFocus();
1258 if (!this.jTextFieldAbstract
.getText().equals(msaHeader
.getAbstract())) {
1259 this.msaHeader
.setAbstract(this.jTextFieldAbstract
.getText());
1266 // Check Description
1268 if (arg0
.getSource() == this.jTextAreaDescription
) {
1269 if (isEmpty(this.jTextAreaDescription
.getText())) {
1270 Log
.wrn("Update Msa Header", "Description must be entered!");
1271 //this.jTextAreaDescription.requestFocus();
1274 if (!this.jTextAreaDescription
.getText().equals(msaHeader
.getDescription())) {
1275 this.msaHeader
.setDescription(this.jTextAreaDescription
.getText());
1284 if (arg0
.getSource() == this.jTextAreaCopyright
) {
1285 if (isEmpty(this.jTextAreaCopyright
.getText())) {
1286 Log
.wrn("Update Msa Header", "Copyright must be entered!");
1287 //this.jTextFieldCopyright.requestFocus();
1290 if (!this.jTextAreaCopyright
.getText().equals(msaHeader
.getCopyright())) {
1291 this.msaHeader
.setCopyright(this.jTextAreaCopyright
.getText());
1300 if (arg0
.getSource() == this.jTextAreaLicense
) {
1301 if (isEmpty(this.jTextAreaLicense
.getText())) {
1302 Log
.wrn("Update Msa Header", "License must be entered!");
1303 //this.jTextAreaLicense.requestFocus();
1306 if (this.msaHeader
.getLicense() != null) {
1307 if (!this.jTextAreaLicense
.getText().equals(msaHeader
.getLicense().getStringValue())) {
1308 this.msaHeader
.getLicense().setStringValue(this.jTextAreaLicense
.getText());
1313 License mLicense
= License
.Factory
.newInstance();
1314 mLicense
.setStringValue(this.jTextAreaLicense
.getText());
1315 this.msaHeader
.setLicense(mLicense
);
1320 // Check License URL
1322 if (arg0
.getSource() == this.jTextFieldURL
) {
1323 if (!isEmpty(this.jTextFieldURL
.getText())) {
1324 if (this.msaHeader
.getLicense() == null) {
1325 License mLicense
= License
.Factory
.newInstance();
1326 mLicense
.setURL(this.jTextFieldURL
.getText());
1327 this.msaHeader
.setLicense(mLicense
);
1329 if (!this.jTextFieldURL
.getText().equals(msaHeader
.getLicense().getURL())) {
1330 this.msaHeader
.getLicense().setURL(this.jTextFieldURL
.getText());
1339 // Check Output File Basename
1341 if (arg0
.getSource() == this.jTextFieldOutputFileBasename
) {
1342 if (isEmpty(this.jTextFieldOutputFileBasename
.getText())) {
1343 Log
.wrn("Update Msa Header", "Output File Basename must be entered!");
1344 // jTextFieldOutputFileBasename.removeFocusListener(this);
1345 // jTextFieldOutputFileBasename.requestFocus();
1346 // jTextFieldOutputFileBasename.addFocusListener(this);
1350 if (!DataValidation
.isOutputFileBasename(this.jTextFieldOutputFileBasename
.getText())) {
1351 Log
.wrn("Update Msa Header",
1352 "Incorrect data type for Output File Basename, it must be a valid file name");
1356 if (!this.jTextFieldOutputFileBasename
.getText().equals(md
.getOutputFileBasename())) {
1357 this.md
.setOutputFileBasename(this.jTextFieldOutputFileBasename
.getText());
1364 // Check Binary Module Type
1366 if (arg0
.getSource() == this.jRadioButtonBinaryModuleTrue
) {
1367 if (jRadioButtonBinaryModuleTrue
.isSelected()) {
1368 if (md
.getBinaryModule()) {
1371 md
.setBinaryModule(true);
1377 // Check Binary Module Type
1379 if (arg0
.getSource() == this.jRadioButtonBinaryModuleFalse
) {
1380 if (jRadioButtonBinaryModuleFalse
.isSelected()) {
1381 if (md
.getBinaryModule()) {
1382 md
.setBinaryModule(false);
1390 // Check Supported Arch
1392 if (arg0
.getSource() == this.jCheckBoxArm
|| arg0
.getSource() == this.jCheckBoxEbc
1393 || arg0
.getSource() == this.jCheckBoxIa32
|| arg0
.getSource() == this.jCheckBoxIpf
1394 || arg0
.getSource() == this.jCheckBoxPpc
|| arg0
.getSource() == this.jCheckBoxX64
) {
1395 if (!this.getSelectedItemsString().equals(md
.getSupportedArchitectures().toString())) {
1396 md
.setSupportedArchitectures(this.getSelectedItemsVector());
1405 if (arg0
.getSource() == this.jCheckBoxFlashMap
) {
1406 if ((this.ex
== null) && this.jCheckBoxFlashMap
.isSelected()) {
1407 this.ex
= ExternsDocument
.Externs
.Factory
.newInstance();
1408 this.ex
.setTianoR8FlashMapH(this.jCheckBoxFlashMap
.isSelected());
1409 this.msa
.setExterns(this.ex
);
1410 } else if ((this.ex
!= null) && this.jCheckBoxFlashMap
.isSelected()) {
1411 this.ex
.setTianoR8FlashMapH(this.jCheckBoxFlashMap
.isSelected());
1412 this.msa
.setExterns(this.ex
);
1413 } else if ((this.ex
!= null) && !this.jCheckBoxFlashMap
.isSelected()) {
1414 ExternsDocument
.Externs newEx
= ExternsDocument
.Externs
.Factory
.newInstance();
1415 if (this.ex
.getExternList() != null) {
1416 for (int index
= 0; index
< this.ex
.getExternList().size(); index
++) {
1417 newEx
.addNewExtern();
1418 newEx
.setExternArray(index
, this.ex
.getExternArray(index
));
1421 if (this.ex
.getSpecificationList() != null) {
1422 for (int index
= 0; index
< this.ex
.getSpecificationList().size(); index
++) {
1423 newEx
.addNewSpecification();
1424 newEx
.setSpecificationArray(index
, this.ex
.getSpecificationArray(index
));
1427 if (this.ex
.getPcdIsDriver() != null) {
1428 newEx
.setPcdIsDriver(this.ex
.getPcdIsDriver());
1431 this.msa
.setExterns(this.ex
);
1438 private Vector
<String
> getSelectedItemsVector() {
1439 Vector
<String
> v
= new Vector
<String
>();
1440 if (this.jCheckBoxIa32
.isSelected()) {
1441 v
.addElement(jCheckBoxIa32
.getText());
1443 if (this.jCheckBoxX64
.isSelected()) {
1444 v
.addElement(jCheckBoxX64
.getText());
1446 if (this.jCheckBoxIpf
.isSelected()) {
1447 v
.addElement(jCheckBoxIpf
.getText());
1449 if (this.jCheckBoxEbc
.isSelected()) {
1450 v
.addElement(jCheckBoxEbc
.getText());
1452 if (this.jCheckBoxArm
.isSelected()) {
1453 v
.addElement(jCheckBoxArm
.getText());
1455 if (this.jCheckBoxPpc
.isSelected()) {
1456 v
.addElement(jCheckBoxPpc
.getText());
1461 private String
getSelectedItemsString() {
1463 if (this.jCheckBoxIa32
.isSelected()) {
1464 s
= s
+ jCheckBoxIa32
.getText() + " ";
1466 if (this.jCheckBoxX64
.isSelected()) {
1467 s
= s
+ jCheckBoxX64
.getText() + " ";
1469 if (this.jCheckBoxIpf
.isSelected()) {
1470 s
= s
+ jCheckBoxIpf
.getText() + " ";
1472 if (this.jCheckBoxEbc
.isSelected()) {
1473 s
= s
+ jCheckBoxEbc
.getText() + " ";
1475 if (this.jCheckBoxArm
.isSelected()) {
1476 s
= s
+ jCheckBoxArm
.getText() + " ";
1478 if (this.jCheckBoxPpc
.isSelected()) {
1479 s
= s
+ jCheckBoxPpc
.getText() + " ";
1484 private void setAllItemsSelected(boolean isSelected
) {
1485 this.jCheckBoxIa32
.setSelected(true);
1486 this.jCheckBoxX64
.setSelected(isSelected
);
1487 this.jCheckBoxIpf
.setSelected(isSelected
);
1488 this.jCheckBoxEbc
.setSelected(isSelected
);
1489 this.jCheckBoxArm
.setSelected(isSelected
);
1490 this.jCheckBoxPpc
.setSelected(isSelected
);
1493 private void setSelectedItems(Vector
<String
> v
) {
1494 setAllItemsSelected(false);
1495 boolean isIA32Selected
= false;
1497 for (int index
= 0; index
< v
.size(); index
++) {
1498 if (v
.get(index
).equals(this.jCheckBoxIa32
.getText())) {
1499 this.jCheckBoxIa32
.setSelected(true);
1500 isIA32Selected
= true;
1503 if (v
.get(index
).equals(this.jCheckBoxIpf
.getText())) {
1504 this.jCheckBoxIpf
.setSelected(true);
1507 if (v
.get(index
).equals(this.jCheckBoxX64
.getText())) {
1508 this.jCheckBoxX64
.setSelected(true);
1511 if (v
.get(index
).equals(this.jCheckBoxEbc
.getText())) {
1512 this.jCheckBoxEbc
.setSelected(true);
1515 if (v
.get(index
).equals(this.jCheckBoxArm
.getText())) {
1516 this.jCheckBoxArm
.setSelected(true);
1519 if (v
.get(index
).equals(this.jCheckBoxPpc
.getText())) {
1520 this.jCheckBoxPpc
.setSelected(true);
1524 if (!isIA32Selected
) {
1525 this.jCheckBoxIa32
.setSelected(false);
1531 * This method initializes jCheckBoxPcd
1533 * @return javax.swing.JCheckBox
1535 private JCheckBox
getJCheckBoxPcd() {
1536 if (jCheckBoxPcd
== null) {
1537 jCheckBoxPcd
= new JCheckBox();
1538 jCheckBoxPcd
.setBounds(new java
.awt
.Rectangle(labelCol
, 530, labelWidth
, 20));
1539 jCheckBoxPcd
.setText("Is this a PCD Driver?");
1540 jCheckBoxPcd
.addFocusListener(this);
1541 jCheckBoxPcd
.addActionListener(this);
1542 jCheckBoxPcd
.setEnabled(false);
1544 return jCheckBoxPcd
;
1548 * This method initializes jCheckBoxFlashMap
1550 * @return javax.swing.JCheckBox
1552 private JCheckBox
getJCheckBoxFlashMap() {
1553 if (jCheckBoxFlashMap
== null) {
1554 jCheckBoxFlashMap
= new JCheckBox();
1555 jCheckBoxFlashMap
.setBounds(new java
.awt
.Rectangle(labelCol
, 555, 480, 20));
1556 jCheckBoxFlashMap
.setText("Does this module require a legacy FlashMap header file?");
1557 jCheckBoxFlashMap
.addFocusListener(this);
1559 return jCheckBoxFlashMap
;
1563 * This method initializes jRadioButtonBinaryModuleTrue
1565 * @return javax.swing.JRadioButton
1567 private JRadioButton
getJRadioButtonBinaryModuleTrue() {
1568 if (jRadioButtonBinaryModuleTrue
== null) {
1569 jRadioButtonBinaryModuleTrue
= new JRadioButton();
1570 jRadioButtonBinaryModuleTrue
.setBounds(new java
.awt
.Rectangle(valueCol
, 480, 140, 20));
1571 jRadioButtonBinaryModuleTrue
.setText("True");
1572 jRadioButtonBinaryModuleTrue
.setSelected(true);
1573 jRadioButtonBinaryModuleTrue
.addFocusListener(this);
1574 jRadioButtonBinaryModuleTrue
.setToolTipText("<html>Modules are either source modules <br>"
1575 + "which can be compiled or binary <br>"
1576 + "modules which are linked. <br>"
1577 + "A module cannot contain both. <br>"
1578 + "The GUID numbers should be identical <br>"
1579 + "for a binary and source MSA, <br>"
1580 + "however the BINARY MSA should have <br>"
1581 + "a higher version number.</html>");
1583 return jRadioButtonBinaryModuleTrue
;
1587 * This method initializes jRadioButtonBinaryModuleFalse
1589 * @return javax.swing.JRadioButton
1591 private JRadioButton
getJRadioButtonBinaryModuleFalse() {
1592 if (jRadioButtonBinaryModuleFalse
== null) {
1593 jRadioButtonBinaryModuleFalse
= new JRadioButton();
1594 jRadioButtonBinaryModuleFalse
.setBounds(new java
.awt
.Rectangle(valueCol
+ 140, 480, 140, 20));
1595 jRadioButtonBinaryModuleFalse
.setText("False");
1596 jRadioButtonBinaryModuleFalse
.addFocusListener(this);
1597 jRadioButtonBinaryModuleFalse
.setToolTipText("<html>Modules are either source modules <br>"
1598 + "which can be compiled or binary <br>"
1599 + "modules which are linked. <br>"
1600 + "A module cannot contain both. <br>"
1601 + "The GUID numbers should be identical <br>"
1602 + "for a binary and source MSA, <br>"
1603 + "however the BINARY MSA should have <br>"
1604 + "a higher version number.</html>");
1606 return jRadioButtonBinaryModuleFalse
;
1609 public void itemStateChanged(ItemEvent arg0
) {
1610 if (arg0
.getSource() == this.jCheckBoxIa32
|| arg0
.getSource() == this.jCheckBoxIpf
1611 || arg0
.getSource() == this.jCheckBoxX64
|| arg0
.getSource() == this.jCheckBoxEbc
1612 || arg0
.getSource() == this.jCheckBoxArm
|| arg0
.getSource() == this.jCheckBoxPpc
) {
1613 if (!this.jCheckBoxIa32
.isSelected() && !this.jCheckBoxX64
.isSelected() && !this.jCheckBoxIpf
.isSelected()
1614 && !this.jCheckBoxEbc
.isSelected() && !this.jCheckBoxPpc
.isSelected()
1615 && !this.jCheckBoxArm
.isSelected()) {
1617 .wrn("At lease one Supportted Architecture should be selected! IA32 is selected as default value!");
1618 this.jCheckBoxIa32
.setSelected(true);
1622 if (arg0
.getSource() == this.jComboBoxModuleType
) {
1623 if (this.jComboBoxModuleType
.getSelectedItem().equals("PEIM")
1624 || this.jComboBoxModuleType
.getSelectedItem().equals("DXE_DRIVER")) {
1625 this.jCheckBoxPcd
.setEnabled(true);
1626 if (this.jCheckBoxPcd
.isSelected()) {
1627 this.jCheckBoxPcd
.setSelected(false);
1628 this.jCheckBoxPcd
.setSelected(true);
1631 this.jCheckBoxPcd
.setEnabled(false);
1632 this.jCheckBoxPcd
.setSelected(false);
1637 // Check Pcd is Driver
1639 if (arg0
.getSource() == this.jCheckBoxPcd
) {
1640 if (this.jCheckBoxPcd
.isSelected()) {
1641 if (this.jComboBoxModuleType
.getSelectedItem().toString().equals("DXE_DRIVER")) {
1642 this.jComboBoxPcdIsDriver
.setText("DXE_PCD_DRIVER");
1643 this.jComboBoxPcdIsDriver
.setEnabled(true);
1644 } else if (this.jComboBoxModuleType
.getSelectedItem().toString().equals("PEIM")) {
1645 this.jComboBoxPcdIsDriver
.setText("PEI_PCD_DRIVER");
1646 this.jComboBoxPcdIsDriver
.setEnabled(true);
1650 if ((this.ex
== null) && this.jCheckBoxPcd
.isSelected()) {
1651 this.ex
= ExternsDocument
.Externs
.Factory
.newInstance();
1652 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1653 this.msa
.setExterns(this.ex
);
1654 } else if ((this.ex
!= null) && (this.ex
.getPcdIsDriver() == null) && this.jCheckBoxPcd
.isSelected()) {
1655 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1656 this.msa
.setExterns(this.ex
);
1657 } else if ((this.ex
!= null) && (this.ex
.getPcdIsDriver() != null)) {
1658 if (this.jCheckBoxPcd
.isSelected()
1659 && !this.jComboBoxPcdIsDriver
.getText().toString().equals(this.ex
.getPcdIsDriver().toString())) {
1660 this.ex
.setPcdIsDriver(PcdDriverTypes
.Enum
.forString(this.jComboBoxPcdIsDriver
.getText()));
1661 this.msa
.setExterns(this.ex
);
1663 if (!this.jCheckBoxPcd
.isSelected()) {
1664 ExternsDocument
.Externs newEx
= ExternsDocument
.Externs
.Factory
.newInstance();
1665 if (this.ex
.getExternList() != null) {
1666 for (int index
= 0; index
< this.ex
.getExternList().size(); index
++) {
1667 newEx
.addNewExtern();
1668 newEx
.setExternArray(index
, this.ex
.getExternArray(index
));
1671 if (this.ex
.getSpecificationList() != null) {
1672 for (int index
= 0; index
< this.ex
.getSpecificationList().size(); index
++) {
1673 newEx
.addNewSpecification();
1674 newEx
.setSpecificationArray(index
, this.ex
.getSpecificationArray(index
));
1677 if (this.ex
.getTianoR8FlashMapH()) {
1678 newEx
.setTianoR8FlashMapH(this.ex
.getTianoR8FlashMapH());
1681 this.msa
.setExterns(this.ex
);
1687 this.omt
.setSaved(false);
1690 private void addListeners() {
1691 this.jTextFieldBaseName
.getDocument().addDocumentListener(this);
1692 this.jTextFieldGuid
.getDocument().addDocumentListener(this);
1693 this.jTextFieldAbstract
.getDocument().addDocumentListener(this);
1694 this.jTextAreaCopyright
.getDocument().addDocumentListener(this);
1695 this.jTextAreaDescription
.getDocument().addDocumentListener(this);
1696 this.jTextAreaLicense
.getDocument().addDocumentListener(this);
1697 this.jTextFieldOutputFileBasename
.getDocument().addDocumentListener(this);
1698 this.jTextFieldSpecification
.getDocument().addDocumentListener(this);
1699 this.jTextFieldURL
.getDocument().addDocumentListener(this);
1700 this.jTextFieldVersion
.getDocument().addDocumentListener(this);
1702 this.jComboBoxModuleType
.addItemListener(this);
1704 this.jCheckBoxIa32
.addItemListener(this);
1705 this.jCheckBoxX64
.addItemListener(this);
1706 this.jCheckBoxIpf
.addItemListener(this);
1707 this.jCheckBoxEbc
.addItemListener(this);
1708 this.jCheckBoxArm
.addItemListener(this);
1709 this.jCheckBoxPpc
.addItemListener(this);
1711 this.jCheckBoxPcd
.addItemListener(this);
1713 this.jCheckBoxFlashMap
.addItemListener(this);
1716 public void insertUpdate(DocumentEvent e
) {
1717 this.omt
.setSaved(false);
1720 public void removeUpdate(DocumentEvent e
) {
1721 this.omt
.setSaved(false);
1724 public void changedUpdate(DocumentEvent e
) {