]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
Fixed grammar in messages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / MsaHeader.java
index c161b5de4cdb55fd72e336fdb82b62b01831d952..faa8b9988e4fc223b9b0ab18e312aa8c46c12bd3 100644 (file)
@@ -18,8 +18,10 @@ package org.tianocore.frameworkwizard.module.ui;
 import java.awt.event.ActionEvent;\r
 import java.awt.event.ComponentEvent;\r
 import java.awt.event.FocusEvent;\r
+import java.util.Vector;\r
 \r
 import javax.swing.JButton;\r
+import javax.swing.JCheckBox;\r
 import javax.swing.JComboBox;\r
 import javax.swing.JLabel;\r
 import javax.swing.JPanel;\r
@@ -104,6 +106,26 @@ public class MsaHeader extends IInternalFrame {
 \r
     private JComboBox jComboBoxModuleType = null;\r
 \r
+    private JLabel jLabelArch = null;\r
+\r
+    private JLabel jLabelBinaryModule = null;\r
+\r
+    private JComboBox jComboBoxBinaryModule = null;\r
+\r
+    private JLabel jLabelOutputFileBasename = null;\r
+\r
+    private JTextField jTextFieldOutputFileBasename = null;\r
+\r
+    private JScrollPane jScrollPaneCopyright = null;\r
+\r
+    private JTextArea jTextAreaCopyright = null;\r
+\r
+    private JLabel jLabelURL = null;\r
+\r
+    private JTextField jTextFieldURL = null;\r
+\r
+    private JScrollPane jScrollPane = null;\r
+\r
     private StarLabel jStarLabel1 = null;\r
 \r
     private StarLabel jStarLabel2 = null;\r
@@ -122,22 +144,133 @@ public class MsaHeader extends IInternalFrame {
 \r
     private StarLabel jStarLabel12 = null;\r
 \r
-    private MsaHeaderDocument.MsaHeader msaHeader = null;\r
+    private StarLabel jStarLabel13 = null;\r
 \r
-    private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
+    private StarLabel jStarLabel14 = null;\r
 \r
-    private JTextField jTextFieldCopyright = null;\r
+    private StarLabel jStarLabel15 = null;\r
 \r
-    private JLabel jLabelURL = null;\r
+    private JCheckBox jCheckBoxIa32 = null;\r
 \r
-    private JTextField jTextFieldURL = null;\r
+    private JCheckBox jCheckBoxX64 = null;\r
 \r
-    private JScrollPane jScrollPane = null;\r
+    private JCheckBox jCheckBoxIpf = null;\r
+\r
+    private JCheckBox jCheckBoxEbc = null;\r
+\r
+    private JCheckBox jCheckBoxArm = null;\r
+\r
+    private JCheckBox jCheckBoxPpc = null;\r
+\r
+    //\r
+    // Not used for UI\r
+    //\r
+    private MsaHeaderDocument.MsaHeader msaHeader = null;\r
+\r
+    private ModuleDefinitionsDocument.ModuleDefinitions md = null;\r
+\r
+    private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
 \r
     private OpeningModuleType omt = null;\r
 \r
     private EnumerationData ed = new EnumerationData();\r
 \r
+    /**\r
+     * This method initializes jCheckBoxIa32    \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxIa32() {\r
+        if (jCheckBoxIa32 == null) {\r
+            jCheckBoxIa32 = new JCheckBox();\r
+            jCheckBoxIa32.setBounds(new java.awt.Rectangle(160, 505, 55, 20));\r
+            jCheckBoxIa32.setText("IA32");\r
+            jCheckBoxIa32.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxIa32.addFocusListener(this);\r
+        }\r
+        return jCheckBoxIa32;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jCheckBoxX64 \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxX64() {\r
+        if (jCheckBoxX64 == null) {\r
+            jCheckBoxX64 = new JCheckBox();\r
+            jCheckBoxX64.setBounds(new java.awt.Rectangle(215, 505, 53, 20));\r
+            jCheckBoxX64.setText("X64");\r
+            jCheckBoxX64.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxX64.addFocusListener(this);\r
+        }\r
+        return jCheckBoxX64;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jCheckBoxIpf \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxIpf() {\r
+        if (jCheckBoxIpf == null) {\r
+            jCheckBoxIpf = new JCheckBox();\r
+            jCheckBoxIpf.setBounds(new java.awt.Rectangle(270, 505, 52, 20));\r
+            jCheckBoxIpf.setText("IPF");\r
+            jCheckBoxIpf.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxIpf.addFocusListener(this);\r
+        }\r
+        return jCheckBoxIpf;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jCheckBoxEbc \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxEbc() {\r
+        if (jCheckBoxEbc == null) {\r
+            jCheckBoxEbc = new JCheckBox();\r
+            jCheckBoxEbc.setBounds(new java.awt.Rectangle(325, 505, 53, 20));\r
+            jCheckBoxEbc.setText("EBC");\r
+            jCheckBoxEbc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxEbc.addFocusListener(this);\r
+        }\r
+        return jCheckBoxEbc;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jCheckBoxArm \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxArm() {\r
+        if (jCheckBoxArm == null) {\r
+            jCheckBoxArm = new JCheckBox();\r
+            jCheckBoxArm.setBounds(new java.awt.Rectangle(380, 505, 54, 20));\r
+            jCheckBoxArm.setText("ARM");\r
+            jCheckBoxArm.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxArm.addFocusListener(this);\r
+        }\r
+        return jCheckBoxArm;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jCheckBoxPpc \r
+     *  \r
+     * @return javax.swing.JCheckBox    \r
+     */\r
+    private JCheckBox getJCheckBoxPpc() {\r
+        if (jCheckBoxPpc == null) {\r
+            jCheckBoxPpc = new JCheckBox();\r
+            jCheckBoxPpc.setBounds(new java.awt.Rectangle(435, 505, 53, 20));\r
+            jCheckBoxPpc.setText("PPC");\r
+            jCheckBoxPpc.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            jCheckBoxPpc.addFocusListener(this);\r
+        }\r
+        return jCheckBoxPpc;\r
+    }\r
+\r
     /**\r
      This method initializes jTextFieldBaseName \r
      \r
@@ -240,7 +373,7 @@ public class MsaHeader extends IInternalFrame {
             jTextAreaDescription = new JTextArea();\r
             jTextAreaDescription.setLineWrap(true);\r
             jTextAreaDescription.addFocusListener(this);\r
-            jTextAreaDescription.setToolTipText("A verbose description of the module");\r
+            jTextAreaDescription.setToolTipText("A verbose description of the module.");\r
             jTextAreaDescription.setWrapStyleWord(true);\r
             jTextAreaDescription.setSelectionStart(0);\r
             jTextAreaDescription.setSelectionEnd(0);\r
@@ -260,7 +393,7 @@ public class MsaHeader extends IInternalFrame {
             jTextFieldSpecification.setPreferredSize(new java.awt.Dimension(320, 20));\r
             jTextFieldSpecification.setText("FRAMEWORK_BUILD_PACKAGING_SPECIFICATION   0x00000052");\r
             jTextFieldSpecification.setSize(new java.awt.Dimension(320, 20));\r
-            jTextFieldSpecification.setLocation(new java.awt.Point(160, 435));\r
+            jTextFieldSpecification.setLocation(new java.awt.Point(160, 530));\r
             jTextFieldSpecification.setEditable(false);\r
             jTextFieldSpecification.addFocusListener(this);\r
         }\r
@@ -314,7 +447,7 @@ public class MsaHeader extends IInternalFrame {
             jScrollPaneLicense = new JScrollPane();\r
             jScrollPaneLicense.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);\r
             jScrollPaneLicense.setSize(new java.awt.Dimension(320, 120));\r
-            jScrollPaneLicense.setLocation(new java.awt.Point(160, 285));\r
+            jScrollPaneLicense.setLocation(new java.awt.Point(160, 305));\r
             jScrollPaneLicense.setViewportView(getJTextAreaLicense());\r
             jScrollPaneLicense.setPreferredSize(new java.awt.Dimension(320, 120));\r
         }\r
@@ -352,7 +485,7 @@ public class MsaHeader extends IInternalFrame {
             jTextFieldAbstract.setLocation(new java.awt.Point(160, 110));\r
             jTextFieldAbstract.setSize(new java.awt.Dimension(320, 20));\r
             jTextFieldAbstract.addFocusListener(this);\r
-            jTextFieldAbstract.setToolTipText("A one sentence description of this module");\r
+            jTextFieldAbstract.setToolTipText("A one sentence description of this module.");\r
         }\r
         return jTextFieldAbstract;\r
     }\r
@@ -374,45 +507,29 @@ public class MsaHeader extends IInternalFrame {
     }\r
 \r
     /**\r
-     This method initializes jTextFieldCopyright       \r
+     This method initializes jTextFieldURL     \r
      \r
-     @return javax.swing.JTextField jTextFieldCopyright\r
+     @return javax.swing.JTextField    \r
      \r
      **/\r
-    private JTextField getJTextFieldCopyright() {\r
-        if (jTextFieldCopyright == null) {\r
-            jTextFieldCopyright = new JTextField();\r
-            jTextFieldCopyright.setPreferredSize(new java.awt.Dimension(320, 20));\r
-            jTextFieldCopyright.setLocation(new java.awt.Point(160, 260));\r
-            jTextFieldCopyright.setSize(new java.awt.Dimension(320, 20));\r
-            jTextFieldCopyright.addFocusListener(this);\r
-            jTextFieldCopyright.setToolTipText("One or more copyright lines");\r
-        }\r
-        return jTextFieldCopyright;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jTextFieldURL   \r
-     *         \r
-     * @return javax.swing.JTextField  \r
-     */\r
     private JTextField getJTextFieldURL() {\r
         if (jTextFieldURL == null) {\r
             jTextFieldURL = new JTextField();\r
             jTextFieldURL.setPreferredSize(new java.awt.Dimension(320, 20));\r
-            jTextFieldURL.setLocation(new java.awt.Point(160, 410));\r
+            jTextFieldURL.setLocation(new java.awt.Point(160, 430));\r
             jTextFieldURL.setSize(new java.awt.Dimension(320, 20));\r
             jTextFieldURL.addFocusListener(this);\r
-            jTextFieldURL.setToolTipText("A URL for the latest version of the license");\r
+            jTextFieldURL.setToolTipText("A URL for the latest version of the license.");\r
         }\r
         return jTextFieldURL;\r
     }\r
 \r
     /**\r
-     * This method initializes jScrollPane     \r
-     *         \r
-     * @return javax.swing.JScrollPane \r
-     */\r
+     This method initializes jScrollPane       \r
+     \r
+     @return javax.swing.JScrollPane   \r
+     \r
+     **/\r
     private JScrollPane getJScrollPane() {\r
         if (jScrollPane == null) {\r
             jScrollPane = new JScrollPane();\r
@@ -421,8 +538,80 @@ public class MsaHeader extends IInternalFrame {
         return jScrollPane;\r
     }\r
 \r
-    public static void main(String[] args) {\r
+    /**\r
+     This method initializes jScrollPaneCopyright      \r
+     \r
+     @return javax.swing.JScrollPane   \r
+     \r
+     **/\r
+    private JScrollPane getJScrollPaneCopyright() {\r
+        if (jScrollPaneCopyright == null) {\r
+            jScrollPaneCopyright = new JScrollPane();\r
+            jScrollPaneCopyright.setBounds(new java.awt.Rectangle(160, 260, 320, 40));\r
+            jScrollPaneCopyright.setPreferredSize(new java.awt.Dimension(320, 40));\r
+            jScrollPaneCopyright.setViewportView(getJTextAreaCopyright());\r
+            jScrollPaneCopyright.setSize(new java.awt.Dimension(320, 40));\r
+        }\r
+        return jScrollPaneCopyright;\r
+    }\r
+\r
+    /**\r
+     This method initializes jTextAreaCopyright        \r
+     \r
+     @return javax.swing.JTextArea     \r
+     \r
+     **/\r
+    private JTextArea getJTextAreaCopyright() {\r
+        if (jTextAreaCopyright == null) {\r
+            jTextAreaCopyright = new JTextArea();\r
+            jTextAreaCopyright.setLineWrap(true);\r
+            jTextAreaCopyright.addFocusListener(this);\r
+            jTextAreaCopyright.setWrapStyleWord(true);\r
+            jTextAreaCopyright.setSelectionStart(0);\r
+            jTextAreaCopyright.setSelectionEnd(0);\r
+            jTextAreaCopyright.setBounds(new java.awt.Rectangle(0, 0, 320, 40));\r
+            jTextAreaCopyright.setToolTipText("One or more copyright lines.");\r
+        }\r
+        return jTextAreaCopyright;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jComboBoxBinaryModule    \r
+     *  \r
+     * @return javax.swing.JComboBox    \r
+     */\r
+    private JComboBox getJComboBoxBinaryModule() {\r
+        if (jComboBoxBinaryModule == null) {\r
+            jComboBoxBinaryModule = new JComboBox();\r
+            jComboBoxBinaryModule.setBounds(new java.awt.Rectangle(160, 480, 320, 20));\r
+            jComboBoxBinaryModule.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            jComboBoxBinaryModule.addFocusListener(this);\r
+            jComboBoxBinaryModule.setToolTipText("<html>Modules are either source modules <br>"\r
+                                                 + "which can be compiled or binary <br>"\r
+                                                 + "modules which are linked.  <br>"\r
+                                                 + "A module cannot contain both. <br>"\r
+                                                 + "The GUID numbers should be identical <br>"\r
+                                                 + "for a binary and source MSA, <br>"\r
+                                                 + "however the BINARY MSA should have <br>"\r
+                                                 + "a higher version number.</html>");\r
+        }\r
+        return jComboBoxBinaryModule;\r
+    }\r
 \r
+    /**\r
+     * This method initializes jTextFieldOutputFileBasename \r
+     *  \r
+     * @return javax.swing.JTextField   \r
+     */\r
+    private JTextField getJTextFieldOutputFileBasename() {\r
+        if (jTextFieldOutputFileBasename == null) {\r
+            jTextFieldOutputFileBasename = new JTextField();\r
+            jTextFieldOutputFileBasename.setBounds(new java.awt.Rectangle(160, 455, 320, 20));\r
+            jTextFieldOutputFileBasename.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            jTextFieldOutputFileBasename.addFocusListener(this);\r
+            jTextFieldOutputFileBasename.setToolTipText("Enter a single word for generated output file names.");\r
+        }\r
+        return jTextFieldOutputFileBasename;\r
     }\r
 \r
     /**\r
@@ -458,6 +647,7 @@ public class MsaHeader extends IInternalFrame {
             msa.setModuleDefinitions(md);\r
         }\r
         init(msa.getMsaHeader());\r
+        init(msa.getModuleDefinitions());\r
         this.setVisible(true);\r
         this.setViewMode(false);\r
     }\r
@@ -469,14 +659,12 @@ public class MsaHeader extends IInternalFrame {
      \r
      **/\r
     public void setViewMode(boolean isView) {\r
-        //this.jButtonOk.setVisible(false);\r
-        //this.jButtonCancel.setVisible(false);\r
         if (isView) {\r
             this.jTextFieldBaseName.setEnabled(!isView);\r
             this.jTextFieldGuid.setEnabled(!isView);\r
             this.jTextFieldVersion.setEnabled(!isView);\r
             this.jTextAreaLicense.setEnabled(!isView);\r
-            this.jTextFieldCopyright.setEnabled(!isView);\r
+            this.jTextAreaCopyright.setEnabled(!isView);\r
             this.jTextAreaDescription.setEnabled(!isView);\r
             this.jTextFieldSpecification.setEnabled(!isView);\r
             this.jTextFieldAbstract.setEnabled(!isView);\r
@@ -493,7 +681,7 @@ public class MsaHeader extends IInternalFrame {
      **/\r
     private void init() {\r
         this.setSize(500, 515);\r
-        this.setPreferredSize(new java.awt.Dimension(490, 520));\r
+        this.setPreferredSize(new java.awt.Dimension(490, 615));\r
         this.setContentPane(getJScrollPane());\r
         this.setTitle("Module Surface Area Header");\r
         initFrame();\r
@@ -531,7 +719,7 @@ public class MsaHeader extends IInternalFrame {
                 jTextAreaDescription.setSelectionEnd(0);\r
             }\r
             if (this.msaHeader.getCopyright() != null) {\r
-                this.jTextFieldCopyright.setText(this.msaHeader.getCopyright());\r
+                this.jTextAreaCopyright.setText(this.msaHeader.getCopyright());\r
             }\r
             if (this.msaHeader.getLicense() != null) {\r
                 this.jTextAreaLicense.setText(this.msaHeader.getLicense().getStringValue());\r
@@ -547,6 +735,30 @@ public class MsaHeader extends IInternalFrame {
         }\r
     }\r
 \r
+    /**\r
+     This method initializes this\r
+     Fill values to all fields if these values are not empty\r
+     \r
+     @param inMsaHeader  The input data of MsaHeaderDocument.MsaHeader\r
+     \r
+     **/\r
+    private void init(ModuleDefinitionsDocument.ModuleDefinitions inMd) {\r
+        if (inMd != null) {\r
+            this.md = inMd;\r
+            if (md.getSupportedArchitectures() != null) {\r
+                this.setSelectedItems(Tools.convertListToVector(md.getSupportedArchitectures()));\r
+            }\r
+            if (md.getBinaryModule()) {\r
+                this.jComboBoxBinaryModule.setSelectedIndex(1);\r
+            } else {\r
+                this.jComboBoxBinaryModule.setSelectedIndex(0);\r
+            }\r
+            if (md.getOutputFileBasename() != null) {\r
+                this.jTextFieldOutputFileBasename.setText(md.getOutputFileBasename());\r
+            }\r
+        }\r
+    }\r
+\r
     /**\r
      This method initializes jContentPane\r
      \r
@@ -558,7 +770,7 @@ public class MsaHeader extends IInternalFrame {
 \r
             jLabelURL = new JLabel();\r
             jLabelURL.setText("License URL");\r
-            jLabelURL.setLocation(new java.awt.Point(15, 410));\r
+            jLabelURL.setLocation(new java.awt.Point(15, 430));\r
             jLabelURL.setSize(new java.awt.Dimension(140, 20));\r
             jLabelBaseName = new JLabel();\r
             jLabelBaseName.setText("Module Name");\r
@@ -588,16 +800,26 @@ public class MsaHeader extends IInternalFrame {
             jLabelCopyright.setSize(new java.awt.Dimension(140, 20));\r
             jLabelLicense = new JLabel();\r
             jLabelLicense.setText("License");\r
-            jLabelLicense.setLocation(new java.awt.Point(15, 285));\r
+            jLabelLicense.setLocation(new java.awt.Point(15, 305));\r
             jLabelLicense.setSize(new java.awt.Dimension(140, 20));\r
+            jLabelOutputFileBasename = new JLabel();\r
+            jLabelOutputFileBasename.setBounds(new java.awt.Rectangle(15, 455, 140, 20));\r
+            jLabelOutputFileBasename.setText("Output File Basename");\r
+            jLabelBinaryModule = new JLabel();\r
+            jLabelBinaryModule.setBounds(new java.awt.Rectangle(15, 480, 140, 20));\r
+            jLabelBinaryModule.setText("Binary Module");\r
+            jLabelArch = new JLabel();\r
+            jLabelArch.setBounds(new java.awt.Rectangle(15, 505, 140, 20));\r
+            jLabelArch.setText("Supported Architectures");\r
             jLabelSpecification = new JLabel();\r
             jLabelSpecification.setText("Specification");\r
-            jLabelSpecification.setLocation(new java.awt.Point(14, 435));\r
+            jLabelSpecification.setLocation(new java.awt.Point(14, 530));\r
             jLabelSpecification.setSize(new java.awt.Dimension(140, 20));\r
 \r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 470));\r
+            jContentPane.setPreferredSize(new java.awt.Dimension(490, 565));\r
+            jContentPane.addFocusListener(this);\r
 \r
             jContentPane.add(jLabelBaseName, null);\r
             jContentPane.add(getJTextFieldBaseName(), null);\r
@@ -621,7 +843,12 @@ public class MsaHeader extends IInternalFrame {
             jContentPane.add(getJComboBoxModuleType(), null);\r
             jContentPane.add(jLabelURL, null);\r
             jContentPane.add(getJTextFieldURL(), null);\r
-            jContentPane.add(getJTextFieldCopyright(), null);\r
+            jContentPane.add(jLabelOutputFileBasename, null);\r
+            jContentPane.add(getJTextFieldOutputFileBasename(), null);\r
+            jContentPane.add(jLabelBinaryModule, null);\r
+            jContentPane.add(getJComboBoxBinaryModule(), null);\r
+            jContentPane.add(jLabelArch, null);\r
+\r
             jStarLabel1 = new StarLabel();\r
             jStarLabel1.setLocation(new java.awt.Point(0, 10));\r
             jStarLabel2 = new StarLabel();\r
@@ -635,11 +862,17 @@ public class MsaHeader extends IInternalFrame {
             jStarLabel7 = new StarLabel();\r
             jStarLabel7.setLocation(new java.awt.Point(0, 260));\r
             jStarLabel8 = new StarLabel();\r
-            jStarLabel8.setLocation(new java.awt.Point(0, 285));\r
+            jStarLabel8.setLocation(new java.awt.Point(0, 305));\r
             jStarLabel10 = new StarLabel();\r
             jStarLabel10.setLocation(new java.awt.Point(0, 110));\r
             jStarLabel12 = new StarLabel();\r
-            jStarLabel12.setLocation(new java.awt.Point(0, 435));\r
+            jStarLabel12.setLocation(new java.awt.Point(0, 455));\r
+            jStarLabel13 = new StarLabel();\r
+            jStarLabel13.setLocation(new java.awt.Point(0, 480));\r
+            jStarLabel14 = new StarLabel();\r
+            jStarLabel14.setLocation(new java.awt.Point(0, 505));\r
+            jStarLabel15 = new StarLabel();\r
+            jStarLabel15.setLocation(new java.awt.Point(0, 530));\r
 \r
             jContentPane.add(jStarLabel1, null);\r
             jContentPane.add(jStarLabel2, null);\r
@@ -650,6 +883,17 @@ public class MsaHeader extends IInternalFrame {
             jContentPane.add(jStarLabel8, null);\r
             jContentPane.add(jStarLabel10, null);\r
             jContentPane.add(jStarLabel12, null);\r
+            jContentPane.add(jStarLabel13, null);\r
+            jContentPane.add(jStarLabel14, null);\r
+            jContentPane.add(jStarLabel15, null);\r
+            jContentPane.add(getJScrollPaneCopyright(), null);\r
+\r
+            jContentPane.add(getJCheckBoxIa32(), null);\r
+            jContentPane.add(getJCheckBoxX64(), null);\r
+            jContentPane.add(getJCheckBoxIpf(), null);\r
+            jContentPane.add(getJCheckBoxEbc(), null);\r
+            jContentPane.add(getJCheckBoxArm(), null);\r
+            jContentPane.add(getJCheckBoxPpc(), null);\r
         }\r
         return jContentPane;\r
     }\r
@@ -695,12 +939,12 @@ public class MsaHeader extends IInternalFrame {
         // Check Base Name\r
         //\r
         if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Msa Header", "Base Name couldn't be empty");\r
+            Log.wrn("Update Msa Header", "Name must be entered!");\r
             //this.jTextFieldBaseName.requestFocus();\r
             return false;\r
         }\r
         if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Msa Header", "Incorrect data type for Base Name");\r
+            Log.wrn("Update Msa Header", "Incorrect data type for Name, it must start with an alpha character!");\r
             //this.jTextFieldBaseName.requestFocus();\r
             return false;\r
         }\r
@@ -709,12 +953,12 @@ public class MsaHeader extends IInternalFrame {
         // Check Guid\r
         //\r
         if (isEmpty(this.jTextFieldGuid.getText())) {\r
-            Log.wrn("Update Msa Header", "Guid Value couldn't be empty");\r
+            Log.wrn("Update Msa Header", "The Guid Value must be entered!");\r
             //this.jTextFieldGuid.requestFocus();\r
             return false;\r
         }\r
         if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
-            Log.wrn("Update Msa Header", "Incorrect data type for Guid");\r
+            Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format, 8-4-4-4-12");\r
             //this.jTextFieldGuid.requestFocus();\r
             return false;\r
         }\r
@@ -723,12 +967,12 @@ public class MsaHeader extends IInternalFrame {
         // Check Version\r
         //\r
         if (isEmpty(this.jTextFieldVersion.getText())) {\r
-            Log.wrn("Update Msa Header", "Version couldn't be empty");\r
+            Log.wrn("Update Msa Header", "Version must be entered!");\r
             //this.jTextFieldVersion.requestFocus();\r
             return false;\r
         }\r
         if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
-            Log.wrn("Update Msa Header", "Incorrect data type for Version");\r
+            Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
             //this.jTextFieldVersion.requestFocus();\r
             return false;\r
         }\r
@@ -737,12 +981,12 @@ public class MsaHeader extends IInternalFrame {
         // Check Abstact\r
         //\r
         if (isEmpty(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Msa Header", "Abstract couldn't be empty");\r
+            Log.wrn("Update Msa Header", "Abstract must be entered!");\r
             //this.jTextFieldAbstract.requestFocus();\r
             return false;\r
         }\r
         if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Msa Header", "Incorrect data type for Abstract");\r
+            Log.wrn("Update Msa Header", "Incorrect data type for Abstract, is should be a sentence describing the module.");\r
             //this.jTextFieldAbstract.requestFocus();\r
             return false;\r
         }\r
@@ -751,7 +995,7 @@ public class MsaHeader extends IInternalFrame {
         // Check Description\r
         //\r
         if (isEmpty(this.jTextAreaDescription.getText())) {\r
-            Log.wrn("Update Msa Header", "Description couldn't be empty");\r
+            Log.wrn("Update Msa Header", "Description must be entered!");\r
             //this.jTextAreaDescription.requestFocus();\r
             return false;\r
         }\r
@@ -759,8 +1003,8 @@ public class MsaHeader extends IInternalFrame {
         //\r
         // Check Copyright\r
         //\r
-        if (isEmpty(this.jTextFieldCopyright.getText())) {\r
-            Log.wrn("Update Msa Header", "Copyright couldn't be empty");\r
+        if (isEmpty(this.jTextAreaCopyright.getText())) {\r
+            Log.wrn("Update Msa Header", "Copyright must be entered!");\r
             //this.jTextFieldCopyright.requestFocus();\r
             return false;\r
         }\r
@@ -769,7 +1013,7 @@ public class MsaHeader extends IInternalFrame {
         // Check License\r
         //\r
         if (isEmpty(this.jTextAreaLicense.getText())) {\r
-            Log.wrn("Update Msa Header", "License couldn't be empty");\r
+            Log.wrn("Update Msa Header", "License must be entered!");\r
             //this.jTextAreaLicense.requestFocus();\r
             return false;\r
         }\r
@@ -778,7 +1022,7 @@ public class MsaHeader extends IInternalFrame {
         // Check Specification\r
         //\r
         if (isEmpty(this.jTextFieldSpecification.getText())) {\r
-            Log.wrn("Update Msa Header", "Specification couldn't be empty");\r
+            Log.wrn("Update Msa Header", "Specification must exist.");\r
             //this.jTextFieldSpecification.requestFocus();\r
             return false;\r
         }\r
@@ -799,28 +1043,9 @@ public class MsaHeader extends IInternalFrame {
      **/\r
     public void save() {\r
         try {\r
-            //            this.msaHeader.setModuleName(this.jTextFieldBaseName.getText());\r
-            //            this.msaHeader.setModuleType(ModuleTypeDef.Enum.forString(this.jComboBoxModuleType.getSelectedItem()\r
-            //                                                                                                  .toString()));\r
-            //            this.msaHeader.setGuidValue(this.jTextFieldGuid.getText());\r
-            //            this.msaHeader.setVersion(this.jTextFieldVersion.getText());\r
-            //            this.msaHeader.setAbstract(this.jTextFieldAbstract.getText());\r
-            //            this.msaHeader.setDescription(this.jTextAreaDescription.getText());\r
-            //            this.msaHeader.setCopyright(this.jTextFieldCopyright.getText());\r
-            //            if (this.msaHeader.getLicense() != null) {\r
-            //                this.msaHeader.getLicense().setStringValue(this.jTextAreaLicense.getText());\r
-            //            } else {\r
-            //                License mLicense = License.Factory.newInstance();\r
-            //                mLicense.setStringValue(this.jTextAreaLicense.getText());\r
-            //                this.msaHeader.setLicense(mLicense);\r
-            //            }\r
-            //            if (!isEmpty(this.jTextFieldURL.getText())) {\r
-            //                this.msaHeader.getLicense().setURL(this.jTextFieldURL.getText());\r
-            //            }\r
-            //            this.msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
-\r
             msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
             msa.setMsaHeader(msaHeader);\r
+            msa.setModuleDefinitions(md);\r
             this.omt.setSaved(false);\r
         } catch (Exception e) {\r
             Log.wrn("Save Module", e.getMessage());\r
@@ -835,6 +1060,8 @@ public class MsaHeader extends IInternalFrame {
     private void initFrame() {\r
         EnumerationData ed = new EnumerationData();\r
         Tools.generateComboBoxByVector(jComboBoxModuleType, ed.getVModuleType());\r
+        Tools.generateComboBoxByVector(jComboBoxBinaryModule, ed.getVBoolean());\r
+        this.setSelectedItems(ed.getVSupportedArchitectures());\r
     }\r
 \r
     /**\r
@@ -866,17 +1093,20 @@ public class MsaHeader extends IInternalFrame {
         int intCurrentWidth = this.getJContentPane().getWidth();\r
         int intPreferredWidth = this.getJContentPane().getPreferredSize().width;\r
 \r
-        resizeComponentWidth(this.jTextFieldBaseName, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldGuid, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldVersion, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jScrollPaneLicense, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldURL, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldCopyright, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jScrollPaneDescription, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldSpecification, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldAbstract, intCurrentWidth, intPreferredWidth);\r
-        resizeComponentWidth(this.jComboBoxModuleType, intCurrentWidth, intPreferredWidth);\r
-        relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
+        Tools.resizeComponentWidth(this.jTextFieldBaseName, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldGuid, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldVersion, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jScrollPaneLicense, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldURL, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jScrollPaneCopyright, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jScrollPaneDescription, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldSpecification, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldAbstract, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jComboBoxModuleType, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jComboBoxBinaryModule, intCurrentWidth, intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextFieldOutputFileBasename, intCurrentWidth, intPreferredWidth);\r
+\r
+        Tools.relocateComponentX(this.jButtonGenerateGuid, intCurrentWidth, intPreferredWidth,\r
                            DataType.SPACE_TO_RIGHT_FOR_GENERATE_BUTTON);\r
     }\r
 \r
@@ -890,12 +1120,12 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextFieldBaseName) {\r
             if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-                Log.wrn("Update Msa Header", "Base Name couldn't be empty");\r
+                Log.wrn("Update Msa Header", "The Name must be entered!");\r
                 //this.jTextFieldBaseName.requestFocus();\r
                 return;\r
             }\r
             if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-                Log.wrn("Update Msa Header", "Incorrect data type for Base Name");\r
+                Log.wrn("Update Msa Header", "Incorrect data type for Name, it must begin with an alpha character.");\r
                 //this.jTextFieldBaseName.requestFocus();\r
                 return;\r
             }\r
@@ -922,12 +1152,12 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextFieldGuid) {\r
             if (isEmpty(this.jTextFieldGuid.getText())) {\r
-                Log.wrn("Update Msa Header", "Guid Value couldn't be empty");\r
+                Log.wrn("Update Msa Header", "Guid must be entered!");\r
                 //this.jTextFieldGuid.requestFocus();\r
                 return;\r
             }\r
             if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
-                Log.wrn("Update Msa Header", "Incorrect data type for Guid");\r
+                Log.wrn("Update Msa Header", "Incorrect data type for Guid, it must be registry format. (8-4-4-4-12)");\r
                 //this.jTextFieldGuid.requestFocus();\r
                 return;\r
             }\r
@@ -943,12 +1173,12 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextFieldVersion) {\r
             if (isEmpty(this.jTextFieldVersion.getText())) {\r
-                Log.wrn("Update Msa Header", "Version couldn't be empty");\r
+                Log.wrn("Update Msa Header", "Version must be entered!");\r
                 //this.jTextFieldVersion.requestFocus();\r
                 return;\r
             }\r
             if (!DataValidation.isVersion(this.jTextFieldVersion.getText())) {\r
-                Log.wrn("Update Msa Header", "Incorrect data type for Version");\r
+                Log.wrn("Update Msa Header", "Incorrect data type for Version, it must start with a digit.");\r
                 //this.jTextFieldVersion.requestFocus();\r
                 return;\r
             }\r
@@ -964,12 +1194,12 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextFieldAbstract) {\r
             if (isEmpty(this.jTextFieldAbstract.getText())) {\r
-                Log.wrn("Update Msa Header", "Abstract couldn't be empty");\r
+                Log.wrn("Update Msa Header", "Abstract must be entered!");\r
                 //this.jTextFieldAbstract.requestFocus();\r
                 return;\r
             }\r
             if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
-                Log.wrn("Update Msa Header", "Incorrect data type for Abstract");\r
+                Log.wrn("Update Msa Header", "Incorrect data type for Abstract, it must be sentence.");\r
                 //this.jTextFieldAbstract.requestFocus();\r
                 return;\r
             }\r
@@ -985,7 +1215,7 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextAreaDescription) {\r
             if (isEmpty(this.jTextAreaDescription.getText())) {\r
-                Log.wrn("Update Msa Header", "Description couldn't be empty");\r
+                Log.wrn("Update Msa Header", "Description must be entered!");\r
                 //this.jTextAreaDescription.requestFocus();\r
                 return;\r
             }\r
@@ -999,14 +1229,14 @@ public class MsaHeader extends IInternalFrame {
         //\r
         // Check Copyright\r
         //\r
-        if (arg0.getSource() == this.jTextFieldCopyright) {\r
-            if (isEmpty(this.jTextFieldCopyright.getText())) {\r
-                Log.wrn("Update Msa Header", "Copyright couldn't be empty");\r
+        if (arg0.getSource() == this.jTextAreaCopyright) {\r
+            if (isEmpty(this.jTextAreaCopyright.getText())) {\r
+                Log.wrn("Update Msa Header", "Copyright must be entered!");\r
                 //this.jTextFieldCopyright.requestFocus();\r
                 return;\r
             }\r
-            if (!this.jTextFieldCopyright.getText().equals(msaHeader.getCopyright())) {\r
-                this.msaHeader.setCopyright(this.jTextFieldCopyright.getText());\r
+            if (!this.jTextAreaCopyright.getText().equals(msaHeader.getCopyright())) {\r
+                this.msaHeader.setCopyright(this.jTextAreaCopyright.getText());\r
             } else {\r
                 return;\r
             }\r
@@ -1017,7 +1247,7 @@ public class MsaHeader extends IInternalFrame {
         //\r
         if (arg0.getSource() == this.jTextAreaLicense) {\r
             if (isEmpty(this.jTextAreaLicense.getText())) {\r
-                Log.wrn("Update Msa Header", "License couldn't be empty");\r
+                Log.wrn("Update Msa Header", "License must be entered!");\r
                 //this.jTextAreaLicense.requestFocus();\r
                 return;\r
             }\r
@@ -1052,7 +1282,144 @@ public class MsaHeader extends IInternalFrame {
                 }\r
             }\r
         }\r
-        \r
+\r
+        //\r
+        // Check Output File Basename\r
+        //\r
+        if (arg0.getSource() == this.jTextFieldOutputFileBasename) {\r
+            if (isEmpty(this.jTextFieldOutputFileBasename.getText())) {\r
+                Log.wrn("Update Msa Header", "Output File Basename must be entered!");\r
+                //                jTextFieldOutputFileBasename.removeFocusListener(this);\r
+                //                jTextFieldOutputFileBasename.requestFocus();\r
+                //                jTextFieldOutputFileBasename.addFocusListener(this);\r
+                return;\r
+            }\r
+            if (!this.jTextFieldOutputFileBasename.getText().equals(md.getOutputFileBasename())) {\r
+                this.md.setOutputFileBasename(this.jTextFieldOutputFileBasename.getText());\r
+            } else {\r
+                return;\r
+            }\r
+        }\r
+\r
+        //\r
+        // Check Binary Module Type\r
+        //\r
+        if (arg0.getSource() == this.jComboBoxBinaryModule) {\r
+            if (jComboBoxBinaryModule.getSelectedItem().toString().equals(DataType.TRUE)) {\r
+                if (md.getBinaryModule()) {\r
+                    return;\r
+                } else {\r
+                    md.setBinaryModule(true);\r
+                }\r
+            } else if (jComboBoxBinaryModule.getSelectedItem().toString().equals(DataType.FALSE)) {\r
+                if (md.getBinaryModule()) {\r
+                    md.setBinaryModule(false);\r
+                } else {\r
+                    return;\r
+                }\r
+            }\r
+        }\r
+\r
+        //\r
+        // Check Supported Arch\r
+        //\r
+        if (arg0.getSource() == this.jCheckBoxArm || arg0.getSource() == this.jCheckBoxEbc\r
+            || arg0.getSource() == this.jCheckBoxIa32 || arg0.getSource() == this.jCheckBoxIpf\r
+            || arg0.getSource() == this.jCheckBoxPpc || arg0.getSource() == this.jCheckBoxX64) {\r
+            if (!this.getSelectedItemsString().equals(md.getSupportedArchitectures().toString())) {\r
+                md.setSupportedArchitectures(this.getSelectedItemsVector());\r
+            } else {\r
+                return;\r
+            }\r
+        }\r
+\r
         this.save();\r
     }\r
+\r
+    private Vector<String> getSelectedItemsVector() {\r
+        Vector<String> v = new Vector<String>();\r
+        if (this.jCheckBoxIa32.isSelected()) {\r
+            v.addElement(jCheckBoxIa32.getText());\r
+        }\r
+        if (this.jCheckBoxX64.isSelected()) {\r
+            v.addElement(jCheckBoxX64.getText());\r
+        }\r
+        if (this.jCheckBoxIpf.isSelected()) {\r
+            v.addElement(jCheckBoxIpf.getText());\r
+        }\r
+        if (this.jCheckBoxEbc.isSelected()) {\r
+            v.addElement(jCheckBoxEbc.getText());\r
+        }\r
+        if (this.jCheckBoxArm.isSelected()) {\r
+            v.addElement(jCheckBoxArm.getText());\r
+        }\r
+        if (this.jCheckBoxPpc.isSelected()) {\r
+            v.addElement(jCheckBoxPpc.getText());\r
+        }\r
+        return v;\r
+    }\r
+\r
+    private String getSelectedItemsString() {\r
+        String s = "";\r
+        if (this.jCheckBoxIa32.isSelected()) {\r
+            s = s + jCheckBoxIa32.getText() + " ";\r
+        }\r
+        if (this.jCheckBoxX64.isSelected()) {\r
+            s = s + jCheckBoxX64.getText() + " ";\r
+        }\r
+        if (this.jCheckBoxIpf.isSelected()) {\r
+            s = s + jCheckBoxIpf.getText() + " ";\r
+        }\r
+        if (this.jCheckBoxEbc.isSelected()) {\r
+            s = s + jCheckBoxEbc.getText() + " ";\r
+        }\r
+        if (this.jCheckBoxArm.isSelected()) {\r
+            s = s + jCheckBoxArm.getText() + " ";\r
+        }\r
+        if (this.jCheckBoxPpc.isSelected()) {\r
+            s = s + jCheckBoxPpc.getText() + " ";\r
+        }\r
+        return s.trim();\r
+    }\r
+\r
+    private void setAllItemsSelected(boolean isSelected) {\r
+        this.jCheckBoxIa32.setSelected(isSelected);\r
+        this.jCheckBoxX64.setSelected(isSelected);\r
+        this.jCheckBoxIpf.setSelected(isSelected);\r
+        this.jCheckBoxEbc.setSelected(isSelected);\r
+        this.jCheckBoxArm.setSelected(isSelected);\r
+        this.jCheckBoxPpc.setSelected(isSelected);\r
+    }\r
+\r
+    private void setSelectedItems(Vector<String> v) {\r
+        setAllItemsSelected(false);\r
+        if (v != null) {\r
+            for (int index = 0; index < v.size(); index++) {\r
+                if (v.get(index).equals(this.jCheckBoxIa32.getText())) {\r
+                    this.jCheckBoxIa32.setSelected(true);\r
+                    continue;\r
+                }\r
+                if (v.get(index).equals(this.jCheckBoxIpf.getText())) {\r
+                    this.jCheckBoxIpf.setSelected(true);\r
+                    continue;\r
+                }\r
+                if (v.get(index).equals(this.jCheckBoxX64.getText())) {\r
+                    this.jCheckBoxX64.setSelected(true);\r
+                    continue;\r
+                }\r
+                if (v.get(index).equals(this.jCheckBoxEbc.getText())) {\r
+                    this.jCheckBoxEbc.setSelected(true);\r
+                    continue;\r
+                }\r
+                if (v.get(index).equals(this.jCheckBoxArm.getText())) {\r
+                    this.jCheckBoxArm.setSelected(true);\r
+                    continue;\r
+                }\r
+                if (v.get(index).equals(this.jCheckBoxPpc.getText())) {\r
+                    this.jCheckBoxPpc.setSelected(true);\r
+                    continue;\r
+                }\r
+            }\r
+        }\r
+    }\r
 }\r