]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
1. Make SPD editor tables bigger.and table now focus the entry added.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdBuildOptions.java
index 875ddac7fe7595e4fa11131ad919a2984593c6ad..f273d8db66718e16d2ff1324a609386a446ed145 100644 (file)
@@ -26,6 +26,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;\r
 \r
 import javax.swing.DefaultCellEditor;\r
+import javax.swing.JFileChooser;\r
 import javax.swing.JFrame;\r
 import javax.swing.JOptionPane;\r
 import javax.swing.JTextField;\r
@@ -41,18 +42,20 @@ import javax.swing.event.ListSelectionListener;
 import javax.swing.event.TableModelEvent;\r
 import javax.swing.event.TableModelListener;\r
 import javax.swing.table.DefaultTableModel;\r
-import javax.swing.table.TableColumn;\r
 import javax.swing.table.TableModel;\r
 \r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
+\r
+import java.io.File;\r
 import java.util.ArrayList;\r
 import java.util.Iterator;\r
 import java.util.LinkedHashMap;\r
 import java.util.Set;\r
 import java.util.Vector;\r
+import java.awt.Dimension;\r
 \r
 public class FpdBuildOptions extends IInternalFrame {\r
 \r
@@ -111,7 +114,6 @@ public class FpdBuildOptions extends IInternalFrame {
     private JButton jButton18 = null;\r
     private FpdFileContents ffc = null;\r
     private OpeningPlatformType docConsole = null;\r
-    private JButton jButton19 = null;\r
     private JCheckBox jCheckBox9 = null;\r
     private JCheckBox jCheckBox10 = null;\r
     private JCheckBox jCheckBox11 = null;\r
@@ -146,6 +148,8 @@ public class FpdBuildOptions extends IInternalFrame {
     private JButton jButton7 = null;\r
     private JScrollPane jScrollPane4 = null;\r
     private JTable jTable6 = null;\r
+    private JButton jButton12 = null;\r
+    private JTextField jTextField1 = null;\r
     /**\r
      * This method initializes jPanel  \r
      *         \r
@@ -245,6 +249,7 @@ public class FpdBuildOptions extends IInternalFrame {
             jPanel9.setLayout(flowLayout8);\r
             jPanel9.add(jLabel, null);\r
             jPanel9.add(getJTextField2(), null);\r
+            jPanel9.add(getJButton12(), null);\r
             jPanel9.add(jLabel3, null);\r
             jPanel9.add(getJTextField3(), null);\r
         }\r
@@ -325,14 +330,14 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton4.setText("Add");\r
             jButton4.addActionListener(new ActionListener() {\r
                 public void actionPerformed(ActionEvent e) {\r
-                    if (!DataValidation.isInt(jTextField3.getText())) {\r
-                        JOptionPane.showMessageDialog(frame, "ID must be an integer.");\r
+                    if (!DataValidation.isInt(jTextField3.getText()) || jTextField3.getText().length() != 8) {\r
+                        JOptionPane.showMessageDialog(frame, "ID must be an 8-digit integer.");\r
                         return;\r
                     }\r
                     Object[] o = {jTextField3.getText(), null, null};\r
                         o[1] = jTextField2.getText();\r
                         o[2] = jTextField4.getText();\r
-                        ffc.genBuildOptionsUserDefAntTask(o[0]+"", null, o[2]+"");\r
+                        ffc.genBuildOptionsUserDefAntTask(o[0]+"", o[1]+"", o[2]+"");\r
                     antTaskTableModel.addRow(o);\r
                     docConsole.setSaved(false);\r
                 }\r
@@ -736,6 +741,7 @@ public class FpdBuildOptions extends IInternalFrame {
             jPanel20.add(jLabel14, null);\r
             jPanel20.add(getJTextField12(), null);\r
             jPanel20.add(jLabel10, null);\r
+            jPanel20.add(getJTextField1(), null);\r
             jPanel20.add(getJComboBox2(), null);\r
             jPanel20.add(jLabel12, null);\r
             jPanel20.add(getJTextField8(), null);\r
@@ -752,7 +758,6 @@ public class FpdBuildOptions extends IInternalFrame {
             jPanel20.add(getJTextField7(), null);\r
             jPanel20.add(getJButton10(), null);\r
             jPanel20.add(getJButton11(), null);\r
-            jPanel20.add(getJButton19(), null);\r
             jPanel20.add(getJScrollPane6(), null);\r
         }\r
         return jPanel20;\r
@@ -785,6 +790,7 @@ public class FpdBuildOptions extends IInternalFrame {
             jComboBox2.addItem("CYGWIN");\r
             jComboBox2.addItem("INTEL");\r
             jComboBox2.setSelectedIndex(0);\r
+            jComboBox2.setVisible(false);\r
         }\r
         return jComboBox2;\r
     }\r
@@ -833,13 +839,13 @@ public class FpdBuildOptions extends IInternalFrame {
             optionsTableModel.addColumn("TagName");\r
             optionsTableModel.addColumn("Contents");\r
             \r
-            TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);\r
-            JComboBox cb = new JComboBox();\r
-            cb.addItem("MSFT");\r
-            cb.addItem("GCC");\r
-            cb.addItem("CYGWIN");\r
-            cb.addItem("INTEL");\r
-            toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
+//            TableColumn toolFamilyCol = jTable5.getColumnModel().getColumn(1);\r
+//            JComboBox cb = new JComboBox();\r
+//            cb.addItem("MSFT");\r
+//            cb.addItem("GCC");\r
+//            cb.addItem("CYGWIN");\r
+//            cb.addItem("INTEL");\r
+//            toolFamilyCol.setCellEditor(new DefaultCellEditor(cb));\r
             Vector<String> vArch = new Vector<String>();\r
             vArch.add("IA32");\r
             vArch.add("X64");\r
@@ -910,7 +916,7 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jButton10 == null) {\r
             jButton10 = new JButton();\r
             jButton10.setText("Add");\r
-            jButton10.setPreferredSize(new java.awt.Dimension(70,20));\r
+            jButton10.setPreferredSize(new java.awt.Dimension(90,20));\r
             jButton10.addActionListener(new AbstractAction() {\r
                 /**\r
                  * \r
@@ -921,11 +927,11 @@ public class FpdBuildOptions extends IInternalFrame {
                     boolean[] boolArray = {jCheckBox9.isSelected(),jCheckBox10.isSelected(),jCheckBox11.isSelected(),\r
                                            jCheckBox12.isSelected(),jCheckBox13.isSelected(),jCheckBox14.isSelected()};\r
                     String s = boolToList(boolArray);\r
-                    Object[] o = {jTextField12.getText(), jComboBox2.getSelectedItem(), s,\r
+                    Object[] o = {jTextField12.getText(), jTextField1.getText(), s,\r
                                   jTextField8.getText(), jTextField13.getText(), jTextField7.getText()};\r
                     optionsTableModel.addRow(o);\r
                     docConsole.setSaved(false);\r
-                    ffc.genBuildOptionsOpt(stringToVector(jTextField12.getText()), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(),  stringToVector(s), jTextField7.getText());\r
+                    ffc.genBuildOptionsOpt(stringToVector(jTextField12.getText()), jTextField1.getText(), jTextField13.getText(), jTextField8.getText(),  stringToVector(s), jTextField7.getText());\r
                 }\r
             });\r
         }\r
@@ -979,7 +985,7 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jButton11 == null) {\r
             jButton11 = new JButton();\r
             jButton11.setText("Delete");\r
-            jButton11.setPreferredSize(new java.awt.Dimension(70,20));\r
+            jButton11.setPreferredSize(new java.awt.Dimension(90,20));\r
             jButton11.addActionListener(new AbstractAction() {\r
                 /**\r
                  * \r
@@ -1059,21 +1065,6 @@ public class FpdBuildOptions extends IInternalFrame {
         return jButton18;\r
     }\r
 \r
-    /**\r
-     * This method initializes jButton19       \r
-     *         \r
-     * @return javax.swing.JButton     \r
-     */\r
-    private JButton getJButton19() {\r
-        if (jButton19 == null) {\r
-            jButton19 = new JButton();\r
-            jButton19.setPreferredSize(new java.awt.Dimension(75,20));\r
-            jButton19.setEnabled(false);\r
-            jButton19.setText("Update");\r
-        }\r
-        return jButton19;\r
-    }\r
-\r
     /**\r
      * This method initializes jCheckBox9      \r
      *         \r
@@ -1657,6 +1648,67 @@ public class FpdBuildOptions extends IInternalFrame {
         return jTable6;\r
     }\r
 \r
+    /**\r
+     * This method initializes jButton12       \r
+     *         \r
+     * @return javax.swing.JButton     \r
+     */\r
+    private JButton getJButton12() {\r
+        if (jButton12 == null) {\r
+            jButton12 = new JButton();\r
+            jButton12.setPreferredSize(new Dimension(90, 20));\r
+            jButton12.setText("Browse");\r
+            jButton12.addActionListener(new AbstractAction() {\r
+                private static final long serialVersionUID = 1L;\r
+\r
+                public void actionPerformed(ActionEvent arg0) {\r
+                    //\r
+                    // Select files from current workspace\r
+                    //\r
+                    String dirPrefix = System.getenv("WORKSPACE");\r
+                    JFileChooser chooser = new JFileChooser(dirPrefix);\r
+                    File theFile = null;\r
+                    String headerDest = null;\r
+                    \r
+                    chooser.setMultiSelectionEnabled(false);\r
+                    chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);\r
+                    int retval = chooser.showOpenDialog(frame);\r
+                    if (retval == JFileChooser.APPROVE_OPTION) {\r
+\r
+                        theFile = chooser.getSelectedFile();\r
+                        String file = theFile.getPath();\r
+                        if (!file.startsWith(dirPrefix)) {\r
+                            JOptionPane.showMessageDialog(frame, "You can only select files in current package!");\r
+                            return;\r
+                        }\r
+                    }\r
+                    else {\r
+                        return;\r
+                    }\r
+                    \r
+                    headerDest = theFile.getPath();\r
+                    jTextField2.setText(headerDest.substring(dirPrefix.length()).replace('\\', '/'));\r
+               \r
+                }\r
+\r
+            });\r
+        }\r
+        return jButton12;\r
+    }\r
+\r
+    /**\r
+     * This method initializes jTextField1     \r
+     *         \r
+     * @return javax.swing.JTextField  \r
+     */\r
+    private JTextField getJTextField1() {\r
+        if (jTextField1 == null) {\r
+            jTextField1 = new JTextField();\r
+            jTextField1.setPreferredSize(new java.awt.Dimension(85,20));\r
+        }\r
+        return jTextField1;\r
+    }\r
+\r
     /**\r
      * @param args\r
      */\r