]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
FV from FDF file options editor.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
index 74999ef5ec944fa5bf75838b8d18b6d2294347c5..ee419d5d0beec83e52e6d8ac12de8be6b036b698 100644 (file)
@@ -162,7 +162,8 @@ public class FpdFlash extends IInternalFrame {
     private String determinedFvBlockSize = null;\r
     private String erasePolarity = "";\r
     boolean memModified = false;\r
-    \r
+    private FvOptsTableModel fvInFdfOptTableModel = null;\r
+    private FvOptsTableModel fvAdditionalOptTableModel = null;\r
     \r
     public FpdFlash() {\r
         super();\r
@@ -1171,7 +1172,7 @@ public class FpdFlash extends IInternalFrame {
                 if (blockSizeWellFormat && numOfBlockWellFormat) {\r
                     int size = Integer.decode(bSize);\r
                     int num = Integer.decode(numBlks);\r
-                    fvSize = size*num + "";\r
+                    fvSize = "0x" + Integer.toHexString(size*num);\r
                 }\r
             }\r
             fvAdditionalTableModel.addRow(new String[]{fvName, fvSize, fvFile});\r
@@ -1659,7 +1660,7 @@ public class FpdFlash extends IInternalFrame {
         if (jButtonFvInFdfOptions == null) {\r
             jButtonFvInFdfOptions = new JButton();\r
             jButtonFvInFdfOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
-            jButtonFvInFdfOptions.setEnabled(false);\r
+            jButtonFvInFdfOptions.setEnabled(true);\r
             jButtonFvInFdfOptions.setText("Options");\r
             jButtonFvInFdfOptions.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
@@ -1667,11 +1668,29 @@ public class FpdFlash extends IInternalFrame {
                     if (selectedRow < 0) {\r
                         return;\r
                     }\r
+                    String fvName = jTableFvInFdf.getValueAt(selectedRow, 0)+"";\r
+                    DefaultTableModel dtm = getFvInFdfOptTableModel();\r
+                    new FpdFvOptions(fvName, dtm, ffc, docConsole);\r
                 }\r
             });\r
         }\r
         return jButtonFvInFdfOptions;\r
     }\r
+    \r
+    private DefaultTableModel getFvInFdfOptTableModel() {\r
+        if (fvInFdfOptTableModel == null) {\r
+            fvInFdfOptTableModel = new FvOptsTableModel();\r
+            fvInFdfOptTableModel.addColumn("Name");\r
+            fvInFdfOptTableModel.addColumn("Value");\r
+            Vector<Object> v = new Vector<Object>();\r
+            v.add("EFI_BLOCK_SIZE");\r
+            v.add("EFI_NUM_BLOCKS");\r
+            v.add("EFI_FILE_NAME");\r
+            fvInFdfOptTableModel.setVKeyWords(v);\r
+            fvInFdfOptTableModel.setVNonEditableName(v);\r
+        }\r
+        return fvInFdfOptTableModel;\r
+    }\r
 \r
     /**\r
      * This method initializes jScrollPaneFvAdditional \r
@@ -1910,7 +1929,7 @@ public class FpdFlash extends IInternalFrame {
         if (jButtonAddFvOptions == null) {\r
             jButtonAddFvOptions = new JButton();\r
             jButtonAddFvOptions.setPreferredSize(new java.awt.Dimension(80,20));\r
-            jButtonAddFvOptions.setEnabled(false);\r
+            jButtonAddFvOptions.setEnabled(true);\r
             jButtonAddFvOptions.setText("Options");\r
             jButtonAddFvOptions.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
@@ -2594,6 +2613,57 @@ public class FpdFlash extends IInternalFrame {
 \r
 }  //  @jve:decl-index=0:visual-constraint="10,10"\r
 \r
+class FvOptsTableModel extends DefaultTableModel {\r
+\r
+    private static final long serialVersionUID = 1L;\r
+    \r
+    private Vector<Object> vNonEditableName = new Vector<Object>();\r
+    private Vector<Object> vKeyWords = new Vector<Object>();\r
+    \r
+    public boolean isCellEditable(int row, int col) {\r
+        if (vNonEditableName.size() > 0 || vKeyWords.size() > 0) {\r
+            if (vKeyWords.contains(getValueAt(row, 0))) {\r
+                return false;\r
+            }\r
+            if (vNonEditableName.contains(getValueAt(row, 0)) && col == 0) {\r
+                return false;\r
+            }\r
+        }  \r
+       \r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * @return Returns the vKeyWords.\r
+     */\r
+    protected Vector<Object> getVKeyWords() {\r
+        return vKeyWords;\r
+    }\r
+\r
+    /**\r
+     * @param keyWords The vKeyWords to set.\r
+     */\r
+    protected void setVKeyWords(Vector<Object> keyWords) {\r
+        vKeyWords.removeAllElements();\r
+        vKeyWords.addAll(keyWords);\r
+    }\r
+\r
+    /**\r
+     * @return Returns the vNonEditableName.\r
+     */\r
+    protected Vector<Object> getVNonEditableName() {\r
+        return vNonEditableName;\r
+    }\r
+\r
+    /**\r
+     * @param nonEditableName The vNonEditableName to set.\r
+     */\r
+    protected void setVNonEditableName(Vector<Object> nonEditableName) {\r
+        vNonEditableName.removeAllElements();\r
+        vNonEditableName.addAll(nonEditableName);\r
+    }\r
+    \r
+}\r
 class ImageParaTableModel extends DefaultTableModel {\r
 \r
     private static final long serialVersionUID = 1L;\r