]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java
Change radio button in package header editor to a label.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPackageHeaders.java
index 9deba4c4dda8b0b8880dc387fbf564a0654fbc0d..018c377d5d8ed666186ec190c2b34ec12ef1bc7e 100644 (file)
@@ -12,26 +12,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 **/\r
 package org.tianocore.frameworkwizard.packaging.ui;\r
 \r
-import java.awt.BorderLayout;\r
 import java.awt.Dimension;\r
-import java.awt.Toolkit;\r
 import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
 import java.awt.event.ComponentEvent;\r
 import java.io.File;\r
-import java.util.Vector;\r
 \r
 import javax.swing.DefaultCellEditor;\r
-import javax.swing.DefaultListModel;\r
 import javax.swing.JFileChooser;\r
 import javax.swing.JOptionPane;\r
 import javax.swing.JPanel;\r
-import javax.swing.JRadioButton;\r
 import javax.swing.JTable;\r
 import javax.swing.JTextField;\r
 import javax.swing.JComboBox;\r
 import javax.swing.JLabel;\r
-import javax.swing.JList;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JButton;\r
 import javax.swing.JFrame;\r
@@ -47,8 +40,9 @@ import javax.swing.table.TableColumn;
 import javax.swing.table.TableModel;\r
 \r
 import org.tianocore.PackageSurfaceAreaDocument;\r
-import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.DataValidation;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
+import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 \r
@@ -58,19 +52,22 @@ import org.tianocore.frameworkwizard.common.ui.StarLabel;
  @since PackageEditor 1.0\r
 **/\r
 public class SpdPackageHeaders extends IInternalFrame implements TableModelListener{\r
+    /**\r
+     * \r
+     */\r
+    private static final long serialVersionUID = 1L;\r
+\r
     static JFrame frame;\r
     \r
     private SpdFileContents sfc = null;\r
+    \r
+    private OpeningPackageType docConsole = null;\r
 \r
     private DefaultTableModel model = null;\r
 \r
     private JPanel jContentPane = null;\r
 \r
-    private JRadioButton jRadioButtonAdd = null;\r
-\r
-    private JRadioButton jRadioButtonSelect = null;\r
-\r
-    private JTextField jTextFieldAdd = null;\r
+    private JLabel jLabelSelect = null;\r
 \r
     private JComboBox jComboBoxSelect = null;\r
 \r
@@ -96,7 +93,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
 \r
     private JScrollPane jScrollPane = null;\r
 \r
-    private JScrollPane jScrollPane1 = null;\r
+    private JScrollPane jScrollPanePkgHdr = null;\r
 \r
     private int selectedRow = -1;\r
 \r
@@ -114,52 +111,19 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
 \r
     }\r
 \r
-    /**\r
-      This method initializes jRadioButtonAdd  \r
-       \r
-      @return javax.swing.JRadioButton \r
-     **/\r
-    private JRadioButton getJRadioButtonAdd() {\r
-        if (jRadioButtonAdd == null) {\r
-            jRadioButtonAdd = new JRadioButton();\r
-            jRadioButtonAdd.setBounds(new java.awt.Rectangle(9,35,197,20));\r
-            jRadioButtonAdd.setText("Add a new ModuleType");\r
-            jRadioButtonAdd.setEnabled(false);\r
-            jRadioButtonAdd.addActionListener(this);\r
-            jRadioButtonAdd.setSelected(false);\r
-        }\r
-        return jRadioButtonAdd;\r
-    }\r
-\r
     /**\r
       This method initializes jRadioButtonSelect       \r
        \r
       @return javax.swing.JRadioButton \r
      **/\r
-    private JRadioButton getJRadioButtonSelect() {\r
-        if (jRadioButtonSelect == null) {\r
-            jRadioButtonSelect = new JRadioButton();\r
-            jRadioButtonSelect.setBounds(new java.awt.Rectangle(9,10,198,20));\r
-            jRadioButtonSelect.setText("Select Existing ModuleType");\r
-            jRadioButtonSelect.addActionListener(this);\r
-            jRadioButtonSelect.setSelected(true);\r
-        }\r
-        return jRadioButtonSelect;\r
-    }\r
+    private JLabel getJLabelSelect() {\r
+        if (jLabelSelect == null) {\r
+            jLabelSelect = new JLabel();\r
+            jLabelSelect.setBounds(new java.awt.Rectangle(14,10,198,20));\r
+            jLabelSelect.setText("Select ModuleType");\r
 \r
-    /**\r
-      This method initializes jTextFieldAdd    \r
-       \r
-      @return javax.swing.JTextField   \r
-     **/\r
-    private JTextField getJTextFieldAdd() {\r
-        if (jTextFieldAdd == null) {\r
-            jTextFieldAdd = new JTextField();\r
-            jTextFieldAdd.setBounds(new java.awt.Rectangle(220, 35, 260, 20));\r
-            jTextFieldAdd.setPreferredSize(new java.awt.Dimension(260,20));\r
-            jTextFieldAdd.setEnabled(false);\r
         }\r
-        return jTextFieldAdd;\r
+        return jLabelSelect;\r
     }\r
 \r
     /**\r
@@ -288,6 +252,11 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
         sfc = new SpdFileContents(inPsa);\r
         init(sfc);\r
     }\r
+    \r
+    public SpdPackageHeaders(OpeningPackageType opt) {\r
+        this(opt.getXmlSpd());\r
+        docConsole = opt;\r
+    }\r
     /**\r
       This method initializes this\r
       \r
@@ -296,7 +265,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
     private void init() {\r
         \r
         this.setContentPane(getJScrollPane());\r
-        this.setTitle("Library Class Declarations");\r
+        this.setTitle("Package Headers");\r
         this.setBounds(new java.awt.Rectangle(0, 0, 500, 370));\r
         this.setVisible(true);\r
         this.addInternalFrameListener(new InternalFrameAdapter(){\r
@@ -350,9 +319,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
             jContentPane.add(jLabel, null);\r
             jContentPane.add(jStarLabel1, null);\r
             jContentPane.add(jStarLabel2, null);\r
-            jContentPane.add(getJRadioButtonAdd(), null);\r
-            jContentPane.add(getJRadioButtonSelect(), null);\r
-            jContentPane.add(getJTextFieldAdd(), null);\r
+            jContentPane.add(getJLabelSelect(), null);\r
             jContentPane.add(getJComboBoxSelect(), null);\r
             jContentPane.add(getJButtonAdd(), null);\r
             jContentPane.add(getJButtonRemove(), null);\r
@@ -362,7 +329,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
             \r
             jContentPane.add(getJTextField(), null);\r
             jContentPane.add(getJButtonBrowse(), null);\r
-            jContentPane.add(getJScrollPane1(), null);\r
+            jContentPane.add(getJScrollPanePkgHdr(), null);\r
         }\r
         return jContentPane;\r
     }\r
@@ -380,7 +347,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
         jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
         jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
         jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
-        jComboBoxSelect.addItem("TOOLS");\r
+        jComboBoxSelect.addItem("TOOL");\r
         jComboBoxSelect.addItem("UEFI_DRIVER");\r
         jComboBoxSelect.addItem("UEFI_APPLICATION");\r
         jComboBoxSelect.addItem("USER_DEFINED");\r
@@ -391,6 +358,8 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
      */\r
     public void actionPerformed(ActionEvent arg0) {\r
+        \r
+        docConsole.setSaved(false);\r
         if (arg0.getSource() == jButtonOk) {\r
             this.save();\r
             this.dispose();\r
@@ -402,17 +371,17 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
 \r
         if (arg0.getSource() == jButtonAdd) {\r
             String strLibClass = "";\r
-            if (jRadioButtonAdd.isSelected()) {\r
-                strLibClass = jTextFieldAdd.getText();\r
-            }\r
-            if (jRadioButtonSelect.isSelected()) {\r
-                strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
-            }\r
+            \r
+            strLibClass = jComboBoxSelect.getSelectedItem().toString();\r
             //ToDo: check before add\r
             String[] row = {"", ""};\r
             row[0] = strLibClass;\r
             row[1] = jTextField.getText().replace('\\', '/');\r
+            if (!dataValidation(row)) {\r
+                return;\r
+            }\r
             model.addRow(row);\r
+            jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
             sfc.genSpdModuleHeaders(row[0], row[1], null, null, null, null, null, null);\r
         }\r
         //\r
@@ -437,31 +406,15 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
             sfc.removeSpdPkgHeader();\r
         }\r
 \r
-        if (arg0.getSource() == jRadioButtonAdd) {\r
-            if (jRadioButtonAdd.isSelected()) {\r
-                jRadioButtonSelect.setSelected(false);\r
-                jTextFieldAdd.setEnabled(true);\r
-                jComboBoxSelect.setEnabled(false);\r
-            }\r
-            if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
-                jRadioButtonAdd.setSelected(true);\r
-                jTextFieldAdd.setEnabled(true);\r
-                jComboBoxSelect.setEnabled(false);\r
-            }\r
-        }\r
-\r
-        if (arg0.getSource() == jRadioButtonSelect) {\r
-            if (jRadioButtonSelect.isSelected()) {\r
-                jRadioButtonAdd.setSelected(false);\r
-                jTextFieldAdd.setEnabled(false);\r
-                jComboBoxSelect.setEnabled(true);\r
-            }\r
-            if (!jRadioButtonSelect.isSelected() && !jRadioButtonAdd.isSelected()) {\r
-                jRadioButtonSelect.setSelected(true);\r
-                jTextFieldAdd.setEnabled(false);\r
-                jComboBoxSelect.setEnabled(true);\r
-            }\r
+    }\r
+    \r
+    private boolean dataValidation(String[] row) {\r
+        if (!DataValidation.isPathAndFilename(row[1])) {\r
+            JOptionPane.showMessageDialog(this, "Include header path is NOT PathAndFilename type.");\r
+            return false;\r
         }\r
+        \r
+        return true;\r
     }\r
 \r
     /**\r
@@ -497,6 +450,11 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
             jButtonBrowse.setText("Browse");\r
             jButtonBrowse.setPreferredSize(new java.awt.Dimension(92,20));\r
             jButtonBrowse.addActionListener(new javax.swing.AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(ActionEvent e) {\r
                     //\r
                     // Select files from current workspace\r
@@ -540,13 +498,13 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
      *         \r
      * @return javax.swing.JScrollPane \r
      */\r
-    private JScrollPane getJScrollPane1() {\r
-        if (jScrollPane1 == null) {\r
-            jScrollPane1 = new JScrollPane();\r
-            jScrollPane1.setBounds(new java.awt.Rectangle(13,149,453,165));\r
-            jScrollPane1.setViewportView(getJTable());\r
+    private JScrollPane getJScrollPanePkgHdr() {\r
+        if (jScrollPanePkgHdr == null) {\r
+            jScrollPanePkgHdr = new JScrollPane();\r
+            jScrollPanePkgHdr.setBounds(new java.awt.Rectangle(13,149,453,258));\r
+            jScrollPanePkgHdr.setViewportView(getJTable());\r
         }\r
-        return jScrollPane1;\r
+        return jScrollPanePkgHdr;\r
     }\r
 \r
     /**\r
@@ -558,6 +516,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
         if (jTable == null) {\r
             model = new DefaultTableModel();\r
             jTable = new JTable(model);\r
+            jTable.setRowHeight(20);\r
             model.addColumn("ModuleType");\r
             model.addColumn("IncludeHeader");\r
             TableColumn typeColumn = jTable.getColumnModel().getColumn(0);\r
@@ -571,7 +530,7 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
             jComboBoxSelect.addItem("DXE_RUNTIME_DRIVER");\r
             jComboBoxSelect.addItem("DXE_SAL_DRIVER");\r
             jComboBoxSelect.addItem("DXE_SMM_DRIVER");\r
-            jComboBoxSelect.addItem("TOOLS");\r
+            jComboBoxSelect.addItem("TOOL");\r
             jComboBoxSelect.addItem("UEFI_DRIVER");\r
             jComboBoxSelect.addItem("UEFI_APPLICATION");\r
             jComboBoxSelect.addItem("USER_DEFINED");\r
@@ -601,10 +560,28 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
     public void tableChanged(TableModelEvent arg0) {\r
         // TODO Auto-generated method stub\r
         int row = arg0.getFirstRow();\r
+        int column = arg0.getColumn();\r
         TableModel m = (TableModel)arg0.getSource();\r
         if (arg0.getType() == TableModelEvent.UPDATE){\r
+            String[] sa = new String[2];\r
+            sfc.getSpdModuleHeader(sa, row);\r
+            Object cellData = m.getValueAt(row, column);\r
+            if (cellData == null) {\r
+                cellData = "";\r
+            }\r
+            if (cellData.equals(sa[column])) {\r
+                return;\r
+            }\r
+            if (cellData.toString().length() == 0 && sa[column] == null) {\r
+                return;\r
+            }\r
             String pkg = m.getValueAt(row, 0) + "";\r
             String hdr = m.getValueAt(row, 1) + "";\r
+            String[] rowData = {pkg, hdr};\r
+            if (!dataValidation(rowData)) {\r
+                return;\r
+            }\r
+            docConsole.setSaved(false);\r
             sfc.updateSpdPkgHdr(row, pkg, hdr);\r
         }\r
     }\r
@@ -612,11 +589,10 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
     public void componentResized(ComponentEvent arg0) {\r
         int intPreferredWidth = 500;\r
         \r
-        resizeComponentWidth(this.jComboBoxSelect, this.getWidth(), intPreferredWidth);\r
-        resizeComponentWidth(this.jTextFieldAdd, this.getWidth(), intPreferredWidth);\r
-        resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
-        resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
-        relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 30);\r
+        Tools.resizeComponentWidth(this.jComboBoxSelect, this.getWidth(), intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jScrollPane, this.getWidth(), intPreferredWidth);\r
+        Tools.relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 30);\r
     }\r
     \r
     public static void main(String[] args){\r