]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdBuildOptions.java
some bug fixing for FpdFrameworkModules
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdBuildOptions.java
index 9b4fa0943db5dd85a7e4a5c7d6710c084175ec24..af0c95cadd394ad61e7ccc864925a2f6d07fa130 100644 (file)
 package org.tianocore.frameworkwizard.platform.ui;\r
 \r
 import java.awt.BorderLayout;\r
-import java.awt.Dimension;\r
 \r
 import javax.swing.JPanel;\r
-import javax.swing.JDialog;\r
 import javax.swing.JTabbedPane;\r
 import javax.swing.JCheckBox;\r
 import javax.swing.JLabel;\r
@@ -26,18 +24,13 @@ import java.awt.FlowLayout;
 import javax.swing.AbstractAction;\r
 import java.awt.event.ActionEvent;\r
 import java.awt.event.ActionListener;\r
-import java.awt.event.ItemEvent;\r
-import java.awt.event.ItemListener;\r
 \r
-import javax.swing.ButtonGroup;\r
 import javax.swing.DefaultCellEditor;\r
-import javax.swing.DefaultListModel;\r
 import javax.swing.JTextField;\r
 import javax.swing.JButton;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JTable;\r
 import javax.swing.JComboBox;\r
-import javax.swing.JRadioButton;\r
 import javax.swing.ListSelectionModel;\r
 import javax.swing.event.InternalFrameAdapter;\r
 import javax.swing.event.InternalFrameEvent;\r
@@ -51,11 +44,11 @@ import javax.swing.table.TableModel;
 \r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
-import java.awt.CardLayout;\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
 \r
 public class FpdBuildOptions extends IInternalFrame {\r
 \r
@@ -109,7 +102,6 @@ public class FpdBuildOptions extends IInternalFrame {
     private JTable jTable5 = null;\r
     private JButton jButton10 = null;\r
     private JButton jButton11 = null;\r
-    private DefaultListModel listModel = new DefaultListModel();\r
     private JButton jButton17 = null;\r
     private JButton jButton18 = null;\r
     private FpdFileContents ffc = null;\r
@@ -398,6 +390,7 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jTable2 == null) {\r
             antTaskTableModel = new DefaultTableModel();\r
             jTable2 = new JTable(antTaskTableModel);\r
+            jTable2.setRowHeight(20);\r
             antTaskTableModel.addColumn("ID");\r
             antTaskTableModel.addColumn("Filename");\r
             antTaskTableModel.addColumn("ANT Command Options");\r
@@ -551,6 +544,15 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jTextField6 == null) {\r
             jTextField6 = new JTextField();\r
             jTextField6.setPreferredSize(new java.awt.Dimension(100,20));\r
+            jTextField6.setEditable(false);\r
+            jTextField6.addFocusListener(new java.awt.event.FocusAdapter() {\r
+                public void focusLost(java.awt.event.FocusEvent e) {\r
+                    if (jTable.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+//                    ffc.updateBuildOptionsFfsKey(jTable.getSelectedRow(), jTextField6.getText());\r
+                }\r
+            });\r
         }\r
         return jTextField6;\r
     }\r
@@ -634,6 +636,7 @@ public class FpdBuildOptions extends IInternalFrame {
             ffsAttributesTableModel = new DefaultTableModel();\r
             jTable4 = new JTable(ffsAttributesTableModel);\r
             jTable4.setPreferredSize(new java.awt.Dimension(400,80));\r
+            jTable4.setRowHeight(20);\r
             ffsAttributesTableModel.addColumn("Name");\r
             ffsAttributesTableModel.addColumn("Value");\r
             \r
@@ -808,6 +811,7 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jTable5 == null) {\r
             optionsTableModel = new DefaultTableModel();\r
             jTable5 = new JTable(optionsTableModel);\r
+            jTable5.setRowHeight(20);\r
             optionsTableModel.addColumn("BuildTargets");\r
             optionsTableModel.addColumn("ToolChainFamily");\r
             optionsTableModel.addColumn("SupportedArch");\r
@@ -847,9 +851,22 @@ public class FpdBuildOptions extends IInternalFrame {
                     TableModel m = (TableModel)arg0.getSource();\r
                     if (arg0.getType() == TableModelEvent.UPDATE){\r
                         //ToDo Data Validition check.\r
-                        String targetName = m.getValueAt(row, 0) + "";\r
+                        String targets = m.getValueAt(row, 0) + "";\r
+                        Vector<Object> targetName = new Vector<Object>();\r
+                        String[] sArray = targets.split("( )+");\r
+                        for (int i = 0; i < sArray.length; ++i) {\r
+                            targetName.add(sArray[i]);\r
+                        }\r
                         String toolChain = m.getValueAt(row, 1) + "";\r
-                        String supArch = m.getValueAt(row, 2) + "";\r
+                        String archs = m.getValueAt(row, 2) + "";\r
+                        Vector<Object> supArch = new Vector<Object>();\r
+                        String[] sArray1 = archs.split("( )+");\r
+                        for (int i = 0; i < sArray1.length; ++i) {\r
+                            supArch.add(sArray1[i]);\r
+                        }\r
+                        if (supArch.size() == 0) {\r
+                            supArch.add("IA32");\r
+                        }\r
                         String toolCmd = m.getValueAt(row, 3) + "";\r
                         String tagName = m.getValueAt(row, 4) + "";\r
                         String contents = m.getValueAt(row, 5) + "";\r
@@ -884,13 +901,23 @@ public class FpdBuildOptions extends IInternalFrame {
                     Object[] o = {jTextField12.getText(), jComboBox2.getSelectedItem(), s,\r
                                   jTextField8.getText(), jTextField13.getText(), jTextField7.getText()};\r
                     optionsTableModel.addRow(o);\r
-                    ffc.genBuildOptionsOpt(jTextField12.getText(), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(), s, jTextField7.getText());\r
+                  \r
+                    ffc.genBuildOptionsOpt(stringToVector(jTextField12.getText()), jComboBox2.getSelectedItem()+"", jTextField13.getText(), jTextField8.getText(),  stringToVector(s), jTextField7.getText());\r
                 }\r
             });\r
         }\r
         return jButton10;\r
     }\r
     \r
+    private Vector<Object> stringToVector(String s) {\r
+        String[] sArray = s.split(" ");\r
+        Vector<Object> v = new Vector<Object>();\r
+        for (int i = 0; i < sArray.length; ++i) {\r
+            v.add(sArray[i]);\r
+        }\r
+        return v;\r
+    }\r
+    \r
     private String boolToList (boolean[] bool) {\r
         String s = " ";\r
         if (bool[0]) {\r
@@ -911,7 +938,9 @@ public class FpdBuildOptions extends IInternalFrame {
         if (bool[5]) {\r
             s += "PPC ";\r
         }\r
-        \r
+        if (s == " ") {\r
+            s += "IA32";\r
+        }\r
         return s.trim();\r
     }\r
 \r
@@ -1212,8 +1241,7 @@ public class FpdBuildOptions extends IInternalFrame {
                             return;\r
                         }\r
                        \r
-//                        ffc.updateBuildOptionsUserDefAntTask(row, id, file, execOrder);\r
-                        \r
+                        ffc.updateBuildOptionsFfsKey(row, id);\r
                     }\r
                 }\r
             });\r
@@ -1245,7 +1273,42 @@ public class FpdBuildOptions extends IInternalFrame {
             sectionTableModel = new DefaultTableModel();\r
             sectionTableModel.addColumn("SectionType");\r
             \r
-            jTable1 = new JTable(sectionsTableModel);\r
+            jTable1 = new JTable(sectionTableModel);\r
+            jTable1.setRowHeight(20);\r
+            JComboBox cb = new JComboBox();\r
+            cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
+            cb.addItem("EFI_SECTION_VERSION");\r
+            cb.addItem("EFI_SECTION_USER_INTERFACE");\r
+            cb.addItem("EFI_SECTION_DXE_DEPEX");\r
+            cb.addItem("EFI_SECTION_PEI_DEPEX");\r
+            cb.addItem("EFI_SECTION_PE32");\r
+            cb.addItem("EFI_SECTION_PIC");\r
+            cb.addItem("EFI_SECTION_TE");\r
+            cb.addItem("EFI_SECTION_RAW");\r
+            cb.addItem("EFI_SECTION_COMPRESSION");\r
+            cb.addItem("EFI_SECTION_GUID_DEFINED");\r
+            cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
+            cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
+            jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
+            \r
+            jTable1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+            \r
+            jTable1.getModel().addTableModelListener(new TableModelListener() {\r
+                public void tableChanged(TableModelEvent arg0) {\r
+                    // TODO Auto-generated method stub\r
+                    if (jTable.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    int row = arg0.getFirstRow();\r
+                    TableModel m = (TableModel)arg0.getSource();\r
+                    if (arg0.getType() == TableModelEvent.UPDATE){\r
+                        //ToDo Data Validition check.\r
+                        String type = m.getValueAt(row, 0) + "";\r
+                        \r
+                       ffc.updateBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row, type);\r
+                    }\r
+                }\r
+            });\r
         }\r
         return jTable1;\r
     }\r
@@ -1274,6 +1337,39 @@ public class FpdBuildOptions extends IInternalFrame {
             subsectionsTableModel = new DefaultTableModel();\r
             subsectionsTableModel.addColumn("SectionType");\r
             jTable3 = new JTable(subsectionsTableModel);\r
+            jTable3.setRowHeight(20);\r
+            JComboBox cb = new JComboBox();\r
+            cb.addItem("EFI_SECTION_FREEFORM_SUBTYPE_GUID");\r
+            cb.addItem("EFI_SECTION_VERSION");\r
+            cb.addItem("EFI_SECTION_USER_INTERFACE");\r
+            cb.addItem("EFI_SECTION_DXE_DEPEX");\r
+            cb.addItem("EFI_SECTION_PEI_DEPEX");\r
+            cb.addItem("EFI_SECTION_PE32");\r
+            cb.addItem("EFI_SECTION_PIC");\r
+            cb.addItem("EFI_SECTION_TE");\r
+            cb.addItem("EFI_SECTION_RAW");\r
+            cb.addItem("EFI_SECTION_COMPRESSION");\r
+            cb.addItem("EFI_SECTION_GUID_DEFINED");\r
+            cb.addItem("EFI_SECTION_COMPATIBILITY16");\r
+            cb.addItem("EFI_SECTION_FIRMWARE_VOLUME_IMAGE");\r
+            jTable3.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(cb));\r
+            jTable3.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
+            \r
+            jTable3.getModel().addTableModelListener(new TableModelListener() {\r
+                public void tableChanged(TableModelEvent arg0) {\r
+                    // TODO Auto-generated method stub\r
+                    if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    int row = arg0.getFirstRow();\r
+                    TableModel m = (TableModel)arg0.getSource();\r
+                    if (arg0.getType() == TableModelEvent.UPDATE){\r
+                        //ToDo Data Validition check.\r
+                        String type = m.getValueAt(row, 0) + "";\r
+                        ffc.updateBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row, type);\r
+                    }\r
+                }\r
+            });\r
         }\r
         return jTable3;\r
     }\r
@@ -1287,6 +1383,14 @@ public class FpdBuildOptions extends IInternalFrame {
         if (jTextField == null) {\r
             jTextField = new JTextField();\r
             jTextField.setPreferredSize(new java.awt.Dimension(100,20));\r
+            jTextField.addFocusListener(new java.awt.event.FocusAdapter() {\r
+                public void focusLost(java.awt.event.FocusEvent e) {\r
+                    if (jTable.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    ffc.updateBuildOptionsFfsSectionsType(jTable.getSelectedRow(), jTextField.getText());\r
+                }\r
+            });\r
         }\r
         return jTextField;\r
     }\r
@@ -1316,6 +1420,16 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton = new JButton();\r
             jButton.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton.setText("New");\r
+            jButton.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    String[] row = {"EFI_SECTION_RAW"};\r
+                    sectionTableModel.addRow(row);\r
+                    ffc.genBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), row[0]);\r
+                }\r
+            });\r
         }\r
         return jButton;\r
     }\r
@@ -1330,6 +1444,16 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton1 = new JButton();\r
             jButton1.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton1.setText("Remove");\r
+          \r
+            jButton1.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0 || jTable1.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    sectionTableModel.removeRow(jTable1.getSelectedRow());\r
+                    ffc.removeBuildOptionsFfsSectionsSection(jTable.getSelectedRow(), jTable1.getSelectedRow());\r
+                }\r
+            });\r
         }\r
         return jButton1;\r
     }\r
@@ -1344,6 +1468,17 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton2 = new JButton();\r
             jButton2.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton2.setText("New");\r
+            jButton2.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    String[] row = {"EFI_SECTION_RAW"};\r
+                    subsectionsTableModel.addRow(row);\r
+                    ffc.genBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), row[0]);\r
+                    \r
+                }\r
+            });\r
         }\r
         return jButton2;\r
     }\r
@@ -1358,6 +1493,15 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton3 = new JButton();\r
             jButton3.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton3.setText("Remove");\r
+            jButton3.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0 || jTable3.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    subsectionsTableModel.removeRow(jTable3.getSelectedRow());\r
+                    ffc.removeBuildOptionsFfsSectionsSectionsSection(jTable.getSelectedRow(), jTable6.getSelectedRow(), jTable3.getSelectedRow());\r
+                }\r
+            });\r
         }\r
         return jButton3;\r
     }\r
@@ -1372,6 +1516,16 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton6 = new JButton();\r
             jButton6.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton6.setText("New");\r
+            jButton6.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    String[] row = {""};\r
+                    sectionsTableModel.addRow(row);\r
+                    ffc.genBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), "");\r
+                }\r
+            });\r
         }\r
         return jButton6;\r
     }\r
@@ -1386,6 +1540,15 @@ public class FpdBuildOptions extends IInternalFrame {
             jButton7 = new JButton();\r
             jButton7.setPreferredSize(new java.awt.Dimension(80,20));\r
             jButton7.setText("Remove");\r
+            jButton7.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(java.awt.event.ActionEvent e) {\r
+                    if (jTable.getSelectedRow() < 0 || jTable6.getSelectedRow() < 0) {\r
+                        return;\r
+                    }\r
+                    sectionsTableModel.removeRow(jTable6.getSelectedRow());\r
+                    ffc.removeBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), jTable6.getSelectedRow());\r
+                }\r
+            });\r
         }\r
         return jButton7;\r
     }\r
@@ -1414,7 +1577,7 @@ public class FpdBuildOptions extends IInternalFrame {
             sectionsTableModel = new DefaultTableModel();\r
             sectionsTableModel.addColumn("EncapsulationType");\r
             jTable6 = new JTable(sectionsTableModel);\r
-            \r
+            jTable6.setRowHeight(20);\r
             jTable6.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTable6.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
                 public void valueChanged(ListSelectionEvent e) {\r
@@ -1448,13 +1611,8 @@ public class FpdBuildOptions extends IInternalFrame {
                     TableModel m = (TableModel)arg0.getSource();\r
                     if (arg0.getType() == TableModelEvent.UPDATE){\r
                         //ToDo Data Validition check.\r
-//                        String targetName = m.getValueAt(row, 0) + "";\r
-//                        String toolChain = m.getValueAt(row, 1) + "";\r
-//                        String supArch = m.getValueAt(row, 2) + "";\r
-//                        String toolCmd = m.getValueAt(row, 3) + "";\r
-//                        String tagName = m.getValueAt(row, 4) + "";\r
-//                        String contents = m.getValueAt(row, 5) + "";\r
-//                        ffc.updateBuildOptionsOpt(row, targetName, toolChain, tagName, toolCmd, supArch, contents);\r
+                        String encapType = m.getValueAt(row, 0) + "";\r
+                        ffc.updateBuildOptionsFfsSectionsSections(jTable.getSelectedRow(), row, encapType);\r
                     }\r
                 }\r
             });\r