]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@710 6f19259b...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
index 992f65a2f3900f794c3678ed65a664bf797123e3..4e143108d5959c5c89a08849603610dafe83a2c4 100644 (file)
@@ -16,34 +16,24 @@ import java.awt.BorderLayout;
 import javax.swing.JPanel;\r
 \r
 import javax.swing.AbstractAction;\r
-import javax.swing.ButtonGroup;\r
 import javax.swing.DefaultCellEditor;\r
-import javax.swing.DefaultListModel;\r
-import javax.swing.JDialog;\r
 import javax.swing.JFileChooser;\r
 import javax.swing.JFrame;\r
-import javax.swing.JInternalFrame;\r
-import javax.swing.JOptionPane;\r
 import javax.swing.JTabbedPane;\r
 import javax.swing.JButton;\r
 import javax.swing.ListSelectionModel;\r
 \r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 \r
 \r
 import java.awt.FlowLayout;\r
 import java.awt.event.ActionEvent;\r
-import java.awt.event.ActionListener;\r
 import java.awt.event.ComponentAdapter;\r
 import java.awt.event.ComponentEvent;\r
-import java.awt.event.FocusAdapter;\r
-import java.awt.event.FocusEvent;\r
 import java.awt.event.ItemEvent;\r
 import java.awt.event.ItemListener;\r
-import java.awt.event.ActionEvent;\r
 import java.io.File;\r
 import java.util.ArrayList;\r
 import java.util.Iterator;\r
@@ -57,7 +47,8 @@ import java.awt.GridLayout;
 import javax.swing.JLabel;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JTable;\r
-import javax.swing.JList;\r
+import javax.swing.event.InternalFrameAdapter;\r
+import javax.swing.event.InternalFrameEvent;\r
 import javax.swing.event.ListSelectionEvent;\r
 import javax.swing.event.ListSelectionListener;\r
 import javax.swing.event.TableModelEvent;\r
@@ -67,12 +58,13 @@ import javax.swing.table.TableColumn;
 import javax.swing.table.TableModel;\r
 import javax.swing.JComboBox;\r
 import java.awt.Dimension;\r
-import javax.swing.JRadioButton;\r
-import javax.swing.JTextArea;\r
-import java.awt.CardLayout;\r
 \r
 public class FpdFlash extends IInternalFrame {\r
 \r
+    /**\r
+     * \r
+     */\r
+    private static final long serialVersionUID = 1L;\r
     static JFrame frame;\r
     private JPanel jContentPane = null;\r
     private JPanel jPanel = null;\r
@@ -84,7 +76,6 @@ public class FpdFlash extends IInternalFrame {
     private JButton jButtonOk = null;\r
     private JButton jButtonCancel = null;\r
     private JPanel jPanelFvImageN = null;\r
-    private JPanel jPanelFvImageW = null;\r
     private JPanel jPanelFvImageS = null;\r
     private JCheckBox jCheckBox1 = null;\r
     private JLabel jLabel = null;\r
@@ -92,7 +83,6 @@ public class FpdFlash extends IInternalFrame {
     private JLabel jLabel1 = null;\r
     private JTextField jTextField1 = null;\r
     private JButton jButton = null;\r
-    private JScrollPane jScrollPane = null;\r
     private JScrollPane jScrollPane1 = null;\r
     private JTable jTable = null;\r
     private JPanel jPanel4 = null;\r
@@ -130,19 +120,14 @@ public class FpdFlash extends IInternalFrame {
     private JCheckBox jCheckBox12 = null;\r
     private JCheckBox jCheckBox13 = null;\r
     private JPanel jPanel6 = null;\r
-    private DefaultTableModel fdfImageDefTableModel = null;\r
-    private DefaultTableModel fdfBlocksTableModel = null;\r
-    private DefaultTableModel fdfRegionsTableModel = null;\r
-    private DefaultTableModel fdfSubRegionsTableModel = null;\r
     \r
-    private JLabel jLabel17 = null;\r
-    private DefaultListModel listModel = new DefaultListModel();\r
     private FpdFileContents ffc = null;\r
     private JPanel jPanel7 = null;\r
     private JCheckBox jCheckBox = null;\r
     private JTextField jTextField3 = null;\r
     private JButton jButton5 = null;\r
-    \r
+    private JLabel jLabel6 = null;\r
+    private JComboBox jComboBox2 = null;\r
     public FpdFlash() {\r
         super();\r
         // TODO Auto-generated constructor stub\r
@@ -309,21 +294,6 @@ public class FpdFlash extends IInternalFrame {
         return jPanelFvImageN;\r
     }\r
 \r
-\r
-    /**\r
-     * This method initializes jPanelFvImageW  \r
-     *         \r
-     * @return javax.swing.JPanel      \r
-     */\r
-    private JPanel getJPanelFvImageW() {\r
-        if (jPanelFvImageW == null) {\r
-            jPanelFvImageW = new JPanel();\r
-            jPanelFvImageW.setPreferredSize(new java.awt.Dimension(10,2));\r
-        }\r
-        return jPanelFvImageW;\r
-    }\r
-\r
-\r
     /**\r
      * This method initializes jPanelFvImageS  \r
      *         \r
@@ -334,7 +304,7 @@ public class FpdFlash extends IInternalFrame {
             GridLayout gridLayout2 = new GridLayout();\r
             gridLayout2.setRows(1);\r
             jPanelFvImageS = new JPanel();\r
-            jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,200));\r
+            jPanelFvImageS.setPreferredSize(new java.awt.Dimension(480,190));\r
             jPanelFvImageS.setLayout(gridLayout2);\r
             jPanelFvImageS.add(getJScrollPane3(), null);\r
         }\r
@@ -416,6 +386,11 @@ public class FpdFlash extends IInternalFrame {
             jButton.setEnabled(false);\r
             jButton.setText("Add");\r
             jButton.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(ActionEvent e) {\r
                     if (jTextField.getText().length() > 0 && jTextField1.getText().length() > 0){\r
                         String[] row = {jTextField.getText(), jTextField1.getText()};                        \r
@@ -522,6 +497,11 @@ public class FpdFlash extends IInternalFrame {
             jButton1.setEnabled(false);\r
             jButton1.setText("Delete");\r
             jButton1.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(ActionEvent e) {\r
                     if (jTable.getSelectedRow() >= 0){\r
                         fvPropertyTableModel.removeRow(jTable.getSelectedRow());\r
@@ -656,6 +636,11 @@ public class FpdFlash extends IInternalFrame {
             jButton2.setEnabled(false);\r
             jButton2.setText("Add");\r
             jButton2.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
                     if (jTextField2.getText().length() > 0){\r
                         String[] row = {jTextField2.getText()};                        \r
@@ -711,6 +696,11 @@ public class FpdFlash extends IInternalFrame {
             jButton3.setEnabled(false);\r
             jButton3.setText("Delete");\r
             jButton3.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
                     if (jTable1.getSelectedRow() >= 0){\r
                                    \r
@@ -730,11 +720,14 @@ public class FpdFlash extends IInternalFrame {
 \r
  if (jPanel5 == null) {\r
      //ToDo add ButtonGroup for RadioButtons\r
+            jLabel6 = new JLabel();\r
+            jLabel6.setText("EFI Alignment CAP");\r
+            jLabel6.setEnabled(false);\r
             jPanel5 = new JPanel();\r
-            jPanel5.setPreferredSize(new java.awt.Dimension(480,120));\r
+            jPanel5.setPreferredSize(new java.awt.Dimension(480,150));\r
             \r
             GridLayout gridLayout = new GridLayout();\r
-            gridLayout.setRows(5);\r
+            gridLayout.setRows(6);\r
             gridLayout.setColumns(3);\r
             jPanel5.setLayout(gridLayout);\r
             jPanel5.add(getJCheckBox3(), null);\r
@@ -754,8 +747,10 @@ public class FpdFlash extends IInternalFrame {
                        jPanel5.add(getJCheckBox11(), null);\r
                        jPanel5.add(getJCheckBox12(), null);\r
                        jPanel5.add(getJCheckBox13(), null);\r
-            jPanel5.add(getJButton4(), null);\r
                        jPanel5.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.LOWERED));\r
+                       jPanel5.add(jLabel6, null);\r
+                       jPanel5.add(getJComboBox2(), null);\r
+                       jPanel5.add(getJButton4(), null);\r
                        jPanel5.add(getJButton6(), null);\r
             \r
             \r
@@ -779,6 +774,11 @@ public class FpdFlash extends IInternalFrame {
 //            jButton4.setEnabled(false);\r
             jButton4.setText("Add FV Image");\r
             jButton4.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
                     if (jTable1.getRowCount()== 0){\r
                         return;\r
@@ -795,13 +795,16 @@ public class FpdFlash extends IInternalFrame {
                       \r
                     }\r
                     \r
-                    LinkedHashMap<String, String> m = new LinkedHashMap<String, String>();\r
-                    boolean[] boolArray = {jComboBox1.getSelectedIndex()==0 ? true: false, jCheckBox6.isSelected(), jCheckBox9.isSelected(),\r
+                    LinkedHashMap<String, String> m = null;\r
+                    if (jCheckBox3.isSelected()) {\r
+                        m = new LinkedHashMap<String, String>();\r
+                        boolean[] boolArray = {jComboBox1.getSelectedIndex()==0 ? true: false, jCheckBox6.isSelected(), jCheckBox9.isSelected(),\r
                                                                             jCheckBox11.isSelected(), jCheckBox12.isSelected(),\r
                                                                             jCheckBox13.isSelected(),jCheckBox4.isSelected(),\r
                                                                             jCheckBox5.isSelected(), jCheckBox7.isSelected(),\r
                                                                             jCheckBox8.isSelected(),jCheckBox10.isSelected()};\r
-                    booleanToNameValue(boolArray, m);\r
+                        booleanToNameValue(boolArray, m);\r
+                    }\r
                     ffc.genFvImagesFvImage(imageName.split(" "), jComboBox.getSelectedItem()+"", m);\r
                     \r
                     Object[] o = {imageName, jComboBox.getSelectedItem(), jComboBox1.getSelectedIndex()==0 ? true: false, \r
@@ -856,6 +859,7 @@ public class FpdFlash extends IInternalFrame {
             fvImageParaTableModel.addColumn("WriteDisableCap");\r
             fvImageParaTableModel.addColumn("WriteEnableCap");\r
             fvImageParaTableModel.addColumn("LockCap");\r
+            fvImageParaTableModel.addColumn("Alignment");\r
             \r
             TableColumn typeCol = jTable2.getColumnModel().getColumn(1);\r
             JComboBox cb = new JComboBox();\r
@@ -865,11 +869,26 @@ public class FpdFlash extends IInternalFrame {
             cb.addItem("Components");\r
             typeCol.setCellEditor(new DefaultCellEditor(cb));\r
             \r
-//            TableColumn epCol = jTable2.getColumnModel().getColumn(2);\r
-//            JComboBox cb1 = new JComboBox();\r
-//            cb1.addItem("1");\r
-//            cb1.addItem("0");\r
-//            epCol.setCellEditor(new DefaultCellEditor(cb1));\r
+            TableColumn alignCol = jTable2.getColumnModel().getColumn(13);\r
+            JComboBox cb1 = new JComboBox();\r
+            cb1.addItem("64K");\r
+            cb1.addItem("32K");\r
+            cb1.addItem("16K");\r
+            cb1.addItem("8K");\r
+            cb1.addItem("4K");\r
+            cb1.addItem("2K");\r
+            cb1.addItem("1K");\r
+            cb1.addItem("512");\r
+            cb1.addItem("256");\r
+            cb1.addItem("128");\r
+            cb1.addItem("64");\r
+            cb1.addItem("32");\r
+            cb1.addItem("16");\r
+            cb1.addItem("8");\r
+            cb1.addItem("4");\r
+            cb1.addItem("2");\r
+            alignCol.setCellEditor(new DefaultCellEditor(cb1));\r
+            \r
             jTable2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTable2.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
                 public void valueChanged(ListSelectionEvent e) {\r
@@ -901,6 +920,7 @@ public class FpdFlash extends IInternalFrame {
                         }\r
                         LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
                         booleanToNameValue(boolArray, lhm);\r
+                        lhm.put("EFI_ALIGNMENT_CAP", m.getValueAt(row, 13)+"");\r
 \r
                         ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
                     }\r
@@ -923,6 +943,10 @@ public class FpdFlash extends IInternalFrame {
 //            jButton6.setEnabled(false);\r
             jButton6.setText("Delete Row");\r
             jButton6.addActionListener(new AbstractAction() {\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
 \r
                 public void actionPerformed(ActionEvent arg0) {\r
                     // TODO Auto-generated method stub\r
@@ -970,6 +994,8 @@ public class FpdFlash extends IInternalFrame {
                         jCheckBox11.setEnabled(seleted);\r
                         jCheckBox12.setEnabled(seleted);\r
                         jCheckBox13.setEnabled(seleted);\r
+                        jLabel6.setEnabled(seleted);\r
+                        jComboBox2.setEnabled(seleted);\r
 //                        jButton4.setEnabled(seleted);\r
 //                        jButton6.setEnabled(seleted);\r
                 }\r
@@ -1258,6 +1284,11 @@ public class FpdFlash extends IInternalFrame {
             jButton5.setText("Browse");\r
             jButton5.setPreferredSize(new Dimension(78, 20));\r
             jButton5.addActionListener(new AbstractAction(){\r
+                /**\r
+                 * \r
+                 */\r
+                private static final long serialVersionUID = 1L;\r
+\r
                 public void actionPerformed(ActionEvent e) {\r
                     // TODO Auto-generated method stub\r
                     JFileChooser chooser = new JFileChooser();\r
@@ -1276,6 +1307,36 @@ public class FpdFlash extends IInternalFrame {
         return jButton5;\r
     }\r
 \r
+    /**\r
+     * This method initializes jComboBox2      \r
+     *         \r
+     * @return javax.swing.JComboBox   \r
+     */\r
+    private JComboBox getJComboBox2() {\r
+        if (jComboBox2 == null) {\r
+            jComboBox2 = new JComboBox();\r
+            jComboBox2.setEnabled(false);\r
+            jComboBox2.addItem("64K");\r
+            jComboBox2.addItem("32K");\r
+            jComboBox2.addItem("16K");\r
+            jComboBox2.addItem("8K");\r
+            jComboBox2.addItem("4K");\r
+            jComboBox2.addItem("2K");\r
+            jComboBox2.addItem("1K");\r
+            jComboBox2.addItem("512");\r
+            jComboBox2.addItem("256");\r
+            jComboBox2.addItem("128");\r
+            jComboBox2.addItem("64");\r
+            jComboBox2.addItem("32");\r
+            jComboBox2.addItem("16");\r
+            jComboBox2.addItem("8");\r
+            jComboBox2.addItem("4");\r
+            jComboBox2.addItem("2");\r
+            jComboBox2.setSelectedIndex(0);\r
+        }\r
+        return jComboBox2;\r
+    }\r
+\r
     /**\r
      * @param args\r
      */\r
@@ -1294,6 +1355,19 @@ public class FpdFlash extends IInternalFrame {
         this.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);\r
         this.setContentPane(getJContentPane());\r
         this.setTitle("FPD Flash Definitions");\r
+        this.addInternalFrameListener(new InternalFrameAdapter(){\r
+            public void internalFrameDeactivated(InternalFrameEvent e){\r
+                if (jTable.isEditing()) {\r
+                    jTable.getCellEditor().stopCellEditing();\r
+                }\r
+                if (jTable1.isEditing()) {\r
+                    jTable1.getCellEditor().stopCellEditing();\r
+                }\r
+                if (jTable2.isEditing()) {\r
+                    jTable2.getCellEditor().stopCellEditing();\r
+                }\r
+            }\r
+        });\r
     }\r
 \r
     private void init(FpdFileContents ffc) {\r
@@ -1308,7 +1382,7 @@ public class FpdFlash extends IInternalFrame {
         }\r
         ffc.getFvImagesFvImages(saa, options);\r
         \r
-        Object[] rowData = new Object[13];\r
+        Object[] rowData = new Object[14];\r
         int i = 0;\r
         Boolean f = new Boolean("false");\r
         while (i < saa.length) {\r
@@ -1327,11 +1401,113 @@ public class FpdFlash extends IInternalFrame {
             for (k = 2; k < 13; ++k) {\r
                 rowData[k] = boolArray[k-2];\r
             }\r
+            rowData[13] = getAlign(options.get(i));\r
             fvImageParaTableModel.addRow(rowData);\r
             ++i;\r
         }\r
     }\r
     \r
+    private String getAlign(Map<String, String> m){\r
+        String s = "64K";\r
+        if (m.get("EFI_ALIGNMENT_64K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_64K").equals("TRUE")) {\r
+                s = "64K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_32K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_32K").equals("TRUE")) {\r
+                s = "32K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_16K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_16K").equals("TRUE")) {\r
+                s = "16K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_8K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_8K").equals("TRUE")) {\r
+                s = "8K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_4K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_4K").equals("TRUE")) {\r
+                s = "4K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_2K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_2K").equals("TRUE")) {\r
+                s = "2K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_1K") != null) {\r
+            if (m.get("EFI_ALIGNMENT_1K").equals("TRUE")) {\r
+                s = "1K";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_512") != null) {\r
+            if (m.get("EFI_ALIGNMENT_512").equals("TRUE")) {\r
+                s = "512";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_256") != null) {\r
+            if (m.get("EFI_ALIGNMENT_256").equals("TRUE")) {\r
+                s = "256";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_128") != null) {\r
+            if (m.get("EFI_ALIGNMENT_128").equals("TRUE")) {\r
+                s = "128";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_64") != null) {\r
+            if (m.get("EFI_ALIGNMENT_64").equals("TRUE")) {\r
+                s = "64";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_32") != null) {\r
+            if (m.get("EFI_ALIGNMENT_32").equals("TRUE")) {\r
+                s = "32";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_16") != null) {\r
+            if (m.get("EFI_ALIGNMENT_16").equals("TRUE")) {\r
+                s = "16";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_8") != null) {\r
+            if (m.get("EFI_ALIGNMENT_8").equals("TRUE")) {\r
+                s = "8";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_4") != null) {\r
+            if (m.get("EFI_ALIGNMENT_4").equals("TRUE")) {\r
+                s = "4";\r
+                return s;\r
+            }\r
+        }\r
+        if (m.get("EFI_ALIGNMENT_2") != null) {\r
+            if (m.get("EFI_ALIGNMENT_2").equals("TRUE")) {\r
+                s = "2";\r
+                return s;\r
+            }\r
+        }\r
+        return s;\r
+    }\r
+    \r
     private void namevalueToBoolean(Map<String, String> m, Boolean[] boolArray){\r
         Set<String> key = m.keySet();\r
         Iterator<String> ki= key.iterator();\r
@@ -1464,7 +1640,22 @@ public class FpdFlash extends IInternalFrame {
 \r
 class ImageParaTableModel extends DefaultTableModel {\r
 \r
-    public Class getColumnClass (int c) {\r
-        return getValueAt(0, c).getClass();\r
+    /**\r
+     * \r
+     */\r
+    private static final long serialVersionUID = 1L;\r
+\r
+    public Class<?> getColumnClass (int c) {\r
+        if (getValueAt(0, c) != null) {\r
+            return getValueAt(0, c).getClass();\r
+        }\r
+        return String.class;\r
+    }\r
+    \r
+   public boolean isCellEditable(int row, int col) {\r
+        if (getValueAt(row, 1).equals("ImageName") && col >=1) {\r
+            return false;\r
+        }\r
+        return true;\r
     }\r
 }\r