]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/SourceFilesDlg.java
Adjusted sizes to accommodate Windows, iMac and Linux GUI
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / module / ui / dialog / SourceFilesDlg.java
index 0be868f54ed52753fe3a3075e986d498b7f15588..81759be67c02943f2a2bf97aa1d6b3b2faebb0f9 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
  \r
 /** @file\r
  \r
- The file is used to create, update SourceFile of MSA/MBD file\r
+ The file is used to create, update SourceFiles section of the MSA file\r
  \r
  Copyright (c) 2006, Intel Corporation\r
  All rights reserved. This program and the accompanying materials\r
  \r
  Copyright (c) 2006, Intel Corporation\r
  All rights reserved. This program and the accompanying materials\r
@@ -27,20 +27,21 @@ import javax.swing.JTextField;
 \r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
 \r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
+import org.tianocore.frameworkwizard.common.EnumerationData;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
+import org.tianocore.frameworkwizard.common.ui.IComboBox;\r
 import org.tianocore.frameworkwizard.common.ui.IDialog;\r
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesIdentification;\r
 \r
 /**\r
 import org.tianocore.frameworkwizard.common.ui.IDialog;\r
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 import org.tianocore.frameworkwizard.module.Identifications.SourceFiles.SourceFilesIdentification;\r
 \r
 /**\r
- The class is used to create, update SourceFile of MSA/MBD file\r
- It extends IInternalFrame\r
\r
-\r
-\r
+ * The class is used to create, update SourceFiles section of the MSA file\r
+ *\r
+ * It extends IDialog\r
+ * \r
  **/\r
 public class SourceFilesDlg extends IDialog {\r
 \r
  **/\r
 public class SourceFilesDlg extends IDialog {\r
 \r
@@ -76,6 +77,8 @@ public class SourceFilesDlg extends IDialog {
 \r
     private JTextField jTextFieldToolCode = null;\r
 \r
 \r
     private JTextField jTextFieldToolCode = null;\r
 \r
+    private IComboBox iComboBoxToolCode = null;\r
+\r
     private JTextField jTextFieldToolChainFamily = null;\r
 \r
     private JLabel jLabelFeatureFlag = null;\r
     private JTextField jTextFieldToolChainFamily = null;\r
 \r
     private JLabel jLabelFeatureFlag = null;\r
@@ -83,7 +86,7 @@ public class SourceFilesDlg extends IDialog {
     private JTextField jTextFieldFeatureFlag = null;\r
 \r
     private ArchCheckBox jArchCheckBox = null;\r
     private JTextField jTextFieldFeatureFlag = null;\r
 \r
     private ArchCheckBox jArchCheckBox = null;\r
-    \r
+\r
     private JButton jButtonOk = null;\r
 \r
     private JButton jButtonCancel = null;\r
     private JButton jButtonOk = null;\r
 \r
     private JButton jButtonCancel = null;\r
@@ -95,6 +98,8 @@ public class SourceFilesDlg extends IDialog {
 \r
     private String msaFileName = "";\r
 \r
 \r
     private String msaFileName = "";\r
 \r
+    private EnumerationData ed = new EnumerationData();\r
+\r
     /**\r
      This method initializes jTextFieldFileName \r
      \r
     /**\r
      This method initializes jTextFieldFileName \r
      \r
@@ -104,7 +109,7 @@ public class SourceFilesDlg extends IDialog {
     private JTextField getJTextFieldSourceFilesDirectory() {\r
         if (jTextFieldFileName == null) {\r
             jTextFieldFileName = new JTextField();\r
     private JTextField getJTextFieldSourceFilesDirectory() {\r
         if (jTextFieldFileName == null) {\r
             jTextFieldFileName = new JTextField();\r
-            jTextFieldFileName.setBounds(new java.awt.Rectangle(140, 10, 250, 20));\r
+            jTextFieldFileName.setBounds(new java.awt.Rectangle(168, 12, 250, 20));\r
             jTextFieldFileName.setPreferredSize(new java.awt.Dimension(250, 20));\r
             jTextFieldFileName.setToolTipText("Path is relative to the MSA file and must include the file name");\r
         }\r
             jTextFieldFileName.setPreferredSize(new java.awt.Dimension(250, 20));\r
             jTextFieldFileName.setToolTipText("Path is relative to the MSA file and must include the file name");\r
         }\r
@@ -121,7 +126,7 @@ public class SourceFilesDlg extends IDialog {
         if (jButtonOpenFile == null) {\r
             jButtonOpenFile = new JButton();\r
             jButtonOpenFile.setText("Browse");\r
         if (jButtonOpenFile == null) {\r
             jButtonOpenFile = new JButton();\r
             jButtonOpenFile.setText("Browse");\r
-            jButtonOpenFile.setBounds(new java.awt.Rectangle(395, 10, 85, 20));\r
+            jButtonOpenFile.setBounds(new java.awt.Rectangle(422, 12, 85, 20));\r
             jButtonOpenFile.setPreferredSize(new java.awt.Dimension(85, 20));\r
             jButtonOpenFile.addActionListener(this);\r
         }\r
             jButtonOpenFile.setPreferredSize(new java.awt.Dimension(85, 20));\r
             jButtonOpenFile.addActionListener(this);\r
         }\r
@@ -149,13 +154,26 @@ public class SourceFilesDlg extends IDialog {
     private JTextField getJTextFieldTagName() {\r
         if (jTextFieldTagName == null) {\r
             jTextFieldTagName = new JTextField();\r
     private JTextField getJTextFieldTagName() {\r
         if (jTextFieldTagName == null) {\r
             jTextFieldTagName = new JTextField();\r
-            jTextFieldTagName.setBounds(new java.awt.Rectangle(140, 35, 340, 20));\r
+            jTextFieldTagName.setBounds(new java.awt.Rectangle(168, 37, 340, 20));\r
             jTextFieldTagName.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldTagName.setToolTipText("You may specify a specific tool chain tag name, such as BILL1");\r
         }\r
         return jTextFieldTagName;\r
     }\r
 \r
             jTextFieldTagName.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldTagName.setToolTipText("You may specify a specific tool chain tag name, such as BILL1");\r
         }\r
         return jTextFieldTagName;\r
     }\r
 \r
+    private IComboBox getIComboBoxToolCode() {\r
+        if (iComboBoxToolCode == null) {\r
+            iComboBoxToolCode = new IComboBox();\r
+            iComboBoxToolCode.setBounds(new java.awt.Rectangle(168, 62, 340, 20));\r
+            iComboBoxToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
+            iComboBoxToolCode.setToolTipText("<html>You may select a specific tool command from drop down list, <br>"\r
+                                             + "or you can DOUBLE-CLICK this fild to enter your customizing <br>"\r
+                                             + "tool command.<br>"\r
+                                             + "Press ENTER to save your input or press ESCAPE to quit</html>");\r
+        }\r
+        return iComboBoxToolCode;\r
+    }\r
+\r
     /**\r
      * This method initializes jTextFieldToolCode      \r
      *         \r
     /**\r
      * This method initializes jTextFieldToolCode      \r
      *         \r
@@ -164,9 +182,10 @@ public class SourceFilesDlg extends IDialog {
     private JTextField getJTextFieldToolCode() {\r
         if (jTextFieldToolCode == null) {\r
             jTextFieldToolCode = new JTextField();\r
     private JTextField getJTextFieldToolCode() {\r
         if (jTextFieldToolCode == null) {\r
             jTextFieldToolCode = new JTextField();\r
-            jTextFieldToolCode.setBounds(new java.awt.Rectangle(140, 60, 340, 20));\r
+            jTextFieldToolCode.setBounds(new java.awt.Rectangle(168, 62, 340, 20));\r
             jTextFieldToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldToolCode.setToolTipText("You may specify a specific tool command, such as ASM");\r
             jTextFieldToolCode.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldToolCode.setToolTipText("You may specify a specific tool command, such as ASM");\r
+            jTextFieldToolCode.setVisible(false);\r
         }\r
         return jTextFieldToolCode;\r
     }\r
         }\r
         return jTextFieldToolCode;\r
     }\r
@@ -179,7 +198,7 @@ public class SourceFilesDlg extends IDialog {
     private JTextField getJTextFieldToolChainFamily() {\r
         if (jTextFieldToolChainFamily == null) {\r
             jTextFieldToolChainFamily = new JTextField();\r
     private JTextField getJTextFieldToolChainFamily() {\r
         if (jTextFieldToolChainFamily == null) {\r
             jTextFieldToolChainFamily = new JTextField();\r
-            jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(140, 85, 340, 20));\r
+            jTextFieldToolChainFamily.setBounds(new java.awt.Rectangle(168, 87, 340, 20));\r
             jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldToolChainFamily.setToolTipText("You may specify a specific tool chain family, such as GCC");\r
         }\r
             jTextFieldToolChainFamily.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldToolChainFamily.setToolTipText("You may specify a specific tool chain family, such as GCC");\r
         }\r
@@ -194,7 +213,7 @@ public class SourceFilesDlg extends IDialog {
     private JTextField getJTextFieldFeatureFlag() {\r
         if (jTextFieldFeatureFlag == null) {\r
             jTextFieldFeatureFlag = new JTextField();\r
     private JTextField getJTextFieldFeatureFlag() {\r
         if (jTextFieldFeatureFlag == null) {\r
             jTextFieldFeatureFlag = new JTextField();\r
-            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(140, 110, 340, 20));\r
+            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(168, 112, 340, 20));\r
             jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldFeatureFlag.setToolTipText("RESERVED FOR FUTURE USE");\r
         }\r
             jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jTextFieldFeatureFlag.setToolTipText("RESERVED FOR FUTURE USE");\r
         }\r
@@ -210,7 +229,7 @@ public class SourceFilesDlg extends IDialog {
     private JButton getJButtonOk() {\r
         if (jButtonOk == null) {\r
             jButtonOk = new JButton();\r
     private JButton getJButtonOk() {\r
         if (jButtonOk == null) {\r
             jButtonOk = new JButton();\r
-            jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+            jButtonOk.setBounds(new java.awt.Rectangle(317, 172, 90, 20));\r
             jButtonOk.setText("Ok");\r
             jButtonOk.addActionListener(this);\r
         }\r
             jButtonOk.setText("Ok");\r
             jButtonOk.addActionListener(this);\r
         }\r
@@ -226,7 +245,7 @@ public class SourceFilesDlg extends IDialog {
     private JButton getJButtonCancel() {\r
         if (jButtonCancel == null) {\r
             jButtonCancel = new JButton();\r
     private JButton getJButtonCancel() {\r
         if (jButtonCancel == null) {\r
             jButtonCancel = new JButton();\r
-            jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+            jButtonCancel.setBounds(new java.awt.Rectangle(412, 172, 90, 20));\r
             jButtonCancel.setText("Cancel");\r
             jButtonCancel.addActionListener(this);\r
         }\r
             jButtonCancel.setText("Cancel");\r
             jButtonCancel.addActionListener(this);\r
         }\r
@@ -251,11 +270,12 @@ public class SourceFilesDlg extends IDialog {
      \r
      **/\r
     private void init() {\r
      \r
      **/\r
     private void init() {\r
-        this.setSize(510, 240);\r
+        this.setSize(525, 240);\r
         this.setContentPane(getJScrollPane());\r
         this.setTitle("Source Files");\r
         this.setViewMode(false);\r
         this.centerWindow();\r
         this.setContentPane(getJScrollPane());\r
         this.setTitle("Source Files");\r
         this.setViewMode(false);\r
         this.centerWindow();\r
+        Tools.generateComboBoxByVector(iComboBoxToolCode, ed.getVToolCode());\r
     }\r
 \r
     /**         \r
     }\r
 \r
     /**         \r
@@ -274,7 +294,32 @@ public class SourceFilesDlg extends IDialog {
         if (inSourceFilesIdentifications != null) {\r
             this.jTextFieldFileName.setText(inSourceFilesIdentifications.getFilename());\r
             this.jTextFieldTagName.setText(inSourceFilesIdentifications.getTagName());\r
         if (inSourceFilesIdentifications != null) {\r
             this.jTextFieldFileName.setText(inSourceFilesIdentifications.getFilename());\r
             this.jTextFieldTagName.setText(inSourceFilesIdentifications.getTagName());\r
-            this.jTextFieldToolCode.setText(inSourceFilesIdentifications.getToolCode());\r
+\r
+            //\r
+            // Generate Tool Code selection list\r
+            //\r
+            Vector<String> v = ed.getVToolCode();\r
+            boolean isFind = false;\r
+            String strToolCode = inSourceFilesIdentifications.getToolCode();\r
+\r
+            //\r
+            // If the input value is not in the default list, add it to the list\r
+            //\r
+            if (strToolCode != null) {\r
+                for (int index = 0; index < v.size(); index++) {\r
+                    if (v.elementAt(index).equals(strToolCode)) {\r
+                        isFind = true;\r
+                        break;\r
+                    }\r
+                }\r
+                if (!isFind && !isEmpty(strToolCode)) {\r
+                    v.addElement(strToolCode);\r
+                }\r
+            }\r
+\r
+            Tools.generateComboBoxByVector(iComboBoxToolCode, v);\r
+            this.iComboBoxToolCode.setSelectedItem(strToolCode);\r
+\r
             this.jTextFieldToolChainFamily.setText(inSourceFilesIdentifications.getToolChainFamily());\r
             jTextFieldFeatureFlag.setText(inSourceFilesIdentifications.getFeatureFlag());\r
             this.jArchCheckBox.setSelectedItems(inSourceFilesIdentifications.getSupArchList());\r
             this.jTextFieldToolChainFamily.setText(inSourceFilesIdentifications.getToolChainFamily());\r
             jTextFieldFeatureFlag.setText(inSourceFilesIdentifications.getFeatureFlag());\r
             this.jArchCheckBox.setSelectedItems(inSourceFilesIdentifications.getSupArchList());\r
@@ -303,30 +348,30 @@ public class SourceFilesDlg extends IDialog {
     private JPanel getJContentPane() {\r
         if (jContentPane == null) {\r
             jArchCheckBox = new ArchCheckBox();\r
     private JPanel getJContentPane() {\r
         if (jContentPane == null) {\r
             jArchCheckBox = new ArchCheckBox();\r
-            jArchCheckBox.setBounds(new java.awt.Rectangle(140, 135, 340, 20));\r
+            jArchCheckBox.setBounds(new java.awt.Rectangle(168, 137, 340, 20));\r
             jArchCheckBox.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jLabelFeatureFlag = new JLabel();\r
             jArchCheckBox.setPreferredSize(new java.awt.Dimension(340, 20));\r
             jLabelFeatureFlag = new JLabel();\r
-            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 120, 20));\r
-            jLabelFeatureFlag.setText("Feature Flag");\r
+            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(12, 112, 155, 20));\r
+            jLabelFeatureFlag.setText("Feature Flag Expression");\r
             jLabelToolCode = new JLabel();\r
             jLabelToolCode = new JLabel();\r
-            jLabelToolCode.setBounds(new java.awt.Rectangle(15, 60, 120, 20));\r
+            jLabelToolCode.setBounds(new java.awt.Rectangle(12, 62, 155, 20));\r
             jLabelToolCode.setText("Tool Code");\r
             jLabelTagName = new JLabel();\r
             jLabelToolCode.setText("Tool Code");\r
             jLabelTagName = new JLabel();\r
-            jLabelTagName.setBounds(new java.awt.Rectangle(15, 35, 120, 20));\r
+            jLabelTagName.setBounds(new java.awt.Rectangle(12, 37, 155, 20));\r
             jLabelTagName.setText("Tag Name");\r
             jLabelArch = new JLabel();\r
             jLabelTagName.setText("Tag Name");\r
             jLabelArch = new JLabel();\r
-            jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 120, 20));\r
-            jLabelArch.setText("Sup Arch List");\r
+            jLabelArch.setBounds(new java.awt.Rectangle(12, 137, 155, 20));\r
+            jLabelArch.setText("Supported Architectures");\r
             jLabelToolChainFamily = new JLabel();\r
             jLabelToolChainFamily = new JLabel();\r
-            jLabelToolChainFamily.setBounds(new java.awt.Rectangle(15, 85, 120, 20));\r
+            jLabelToolChainFamily.setBounds(new java.awt.Rectangle(12, 87, 155, 20));\r
             jLabelToolChainFamily.setText("Tool Chain Family");\r
             jLabelFileName = new JLabel();\r
             jLabelFileName.setText("File Name");\r
             jLabelToolChainFamily.setText("Tool Chain Family");\r
             jLabelFileName = new JLabel();\r
             jLabelFileName.setText("File Name");\r
-            jLabelFileName.setBounds(new java.awt.Rectangle(15, 10, 120, 20));\r
+            jLabelFileName.setBounds(new java.awt.Rectangle(12, 12, 155, 20));\r
 \r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
 \r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 185));\r
+            jContentPane.setPreferredSize(new java.awt.Dimension(505, 192));\r
 \r
             jContentPane.add(jLabelFileName, null);\r
             jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
 \r
             jContentPane.add(jLabelFileName, null);\r
             jContentPane.add(getJTextFieldSourceFilesDirectory(), null);\r
@@ -341,6 +386,7 @@ public class SourceFilesDlg extends IDialog {
             jContentPane.add(getJTextFieldTagName(), null);\r
             jContentPane.add(jLabelToolCode, null);\r
             jContentPane.add(getJTextFieldToolCode(), null);\r
             jContentPane.add(getJTextFieldTagName(), null);\r
             jContentPane.add(jLabelToolCode, null);\r
             jContentPane.add(getJTextFieldToolCode(), null);\r
+            jContentPane.add(getIComboBoxToolCode(), null);\r
             jContentPane.add(getJTextFieldToolChainFamily(), null);\r
             jContentPane.add(jLabelFeatureFlag, null);\r
             jContentPane.add(getJTextFieldFeatureFlag(), null);\r
             jContentPane.add(getJTextFieldToolChainFamily(), null);\r
             jContentPane.add(jLabelFeatureFlag, null);\r
             jContentPane.add(getJTextFieldFeatureFlag(), null);\r
@@ -380,13 +426,16 @@ public class SourceFilesDlg extends IDialog {
         String name = this.jTextFieldFileName.getText();\r
         String s[] = name.split(";");\r
         String tagName = this.jTextFieldTagName.getText();\r
         String name = this.jTextFieldFileName.getText();\r
         String s[] = name.split(";");\r
         String tagName = this.jTextFieldTagName.getText();\r
-        String toolCode = this.jTextFieldToolCode.getText();\r
+        String toolCode = this.iComboBoxToolCode.getSelectedItem().toString();\r
+        if (toolCode.equals(DataType.EMPTY_SELECT_ITEM)) {\r
+            toolCode = "";\r
+        }\r
         String tcf = this.jTextFieldToolChainFamily.getText();\r
         String featureFlag = this.jTextFieldFeatureFlag.getText();\r
         Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
         sfid = new SourceFilesIdentification[s.length];\r
         for (int index = 0; index < s.length; index++) {\r
         String tcf = this.jTextFieldToolChainFamily.getText();\r
         String featureFlag = this.jTextFieldFeatureFlag.getText();\r
         Vector<String> arch = this.jArchCheckBox.getSelectedItemsVector();\r
         sfid = new SourceFilesIdentification[s.length];\r
         for (int index = 0; index < s.length; index++) {\r
-            sfid[index] =  new SourceFilesIdentification(s[index], tagName, toolCode, tcf, featureFlag, arch);\r
+            sfid[index] = new SourceFilesIdentification(s[index], tagName, toolCode, tcf, featureFlag, arch);\r
         }\r
         return sfid;\r
     }\r
         }\r
         return sfid;\r
     }\r