]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFlash.java
1. Add feature of ModuleSA PcdBuildDefinition editor.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFlash.java
index 40a3473058a0efacd8a443a5dd49e99712e43bca..19849d0277f2f6b74e722c5d3f1f374f19d6f7f8 100644 (file)
@@ -19,11 +19,13 @@ import javax.swing.AbstractAction;
 import javax.swing.DefaultCellEditor;\r
 import javax.swing.JFileChooser;\r
 import javax.swing.JFrame;\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.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 \r
@@ -108,7 +110,7 @@ public class FpdFlash extends IInternalFrame {
     private JButton jButton6 = null;\r
     private JCheckBox jCheckBox3 = null;\r
     private JPanel jPanel6 = null;\r
-    \r
+    private OpeningPlatformType docConsole = null;\r
     private FpdFileContents ffc = null;\r
     private JPanel jPanel7 = null;\r
     private JCheckBox jCheckBox = null;\r
@@ -139,6 +141,11 @@ public class FpdFlash extends IInternalFrame {
         init(ffc);\r
     }\r
     \r
+    public FpdFlash(OpeningPlatformType opt) {\r
+        this(opt.getXmlFpd());\r
+        docConsole = opt;\r
+    }\r
+    \r
     /**\r
      * This method initializes jPanel  \r
      *         \r
@@ -391,6 +398,7 @@ public class FpdFlash extends IInternalFrame {
                     if (jTextField.getText().length() > 0 && jTextField1.getText().length() > 0){\r
                         String[] row = {jTextField.getText(), jTextField1.getText()};                        \r
                         fvPropertyTableModel.addRow(row);\r
+                        docConsole.setSaved(false);\r
                         ffc.genFvImagesNameValue(row[0], row[1]);\r
                     }\r
                 }\r
@@ -454,7 +462,7 @@ public class FpdFlash extends IInternalFrame {
                         \r
                         String name = m.getValueAt(row, 0) + "";\r
                         String value = m.getValueAt(row, 1) + "";\r
-\r
+                        docConsole.setSaved(false);\r
                         ffc.updateFvImagesNameValue(row, name, value);\r
                     }\r
                 }\r
@@ -501,6 +509,7 @@ public class FpdFlash extends IInternalFrame {
                 public void actionPerformed(ActionEvent e) {\r
                     if (jTable.getSelectedRow() >= 0){\r
                         fvPropertyTableModel.removeRow(jTable.getSelectedRow());\r
+                        docConsole.setSaved(false);\r
                         ffc.removeFvImagesNameValue(jTable.getSelectedRow());\r
                     }\r
                 }\r
@@ -795,7 +804,7 @@ public class FpdFlash extends IInternalFrame {
                         getOptionNameValue(m);\r
                     }\r
                     ffc.genFvImagesFvImage(imageName.split(" "), jComboBox.getSelectedItem()+"", m);\r
-                    \r
+                    docConsole.setSaved(false);\r
                     Object[] row = {imageName, jComboBox.getSelectedItem()};\r
                     fvImageParaTableModel.addRow(row); \r
                 }\r
@@ -898,8 +907,9 @@ public class FpdFlash extends IInternalFrame {
                 public void actionPerformed(ActionEvent arg0) {\r
                     // TODO Auto-generated method stub\r
                     if (jTable2.getSelectedRow() >= 0 ) {\r
-                        fvImageParaTableModel.removeRow(jTable2.getSelectedRow());\r
                         ffc.removeFvImagesFvImage(jTable2.getSelectedRow());\r
+                        fvImageParaTableModel.removeRow(jTable2.getSelectedRow());\r
+                        docConsole.setSaved(false);\r
                     }\r
                 }\r
                 \r
@@ -1037,6 +1047,11 @@ public class FpdFlash extends IInternalFrame {
             jTextField3 = new JTextField();\r
             jTextField3.setEnabled(false);\r
             jTextField3.setPreferredSize(new Dimension(300, 20));\r
+            jTextField3.addFocusListener(new java.awt.event.FocusAdapter() {\r
+                public void focusLost(java.awt.event.FocusEvent e) {\r
+                    ffc.genFlashDefinitionFile(jTextField3.getText());\r
+                }\r
+            });\r
         }\r
         return jTextField3;\r
     }\r
@@ -1060,14 +1075,20 @@ public class FpdFlash extends IInternalFrame {
 \r
                 public void actionPerformed(ActionEvent e) {\r
                     // TODO Auto-generated method stub\r
-                    JFileChooser chooser = new JFileChooser();\r
+                    String wsDir = System.getenv("WORKSPACE");\r
+                    JFileChooser chooser = new JFileChooser(wsDir);\r
                     chooser.setMultiSelectionEnabled(false);\r
                     chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);\r
                     int retval = chooser.showOpenDialog(frame);\r
                     if (retval == JFileChooser.APPROVE_OPTION) {\r
 \r
                         File theFile = chooser.getSelectedFile();\r
-                        jTextField3.setText(theFile.getPath());\r
+                        String filePath = theFile.getPath();\r
+                        if (!filePath.startsWith(wsDir)) {\r
+                            JOptionPane.showMessageDialog(frame, "You can only select files in current WORKSPACE.");\r
+                            return;\r
+                        }\r
+                        jTextField3.setText(filePath.substring(wsDir.length() + 1).replace('\\', '/'));\r
                     }\r
                 }\r
                 \r
@@ -1235,7 +1256,7 @@ public class FpdFlash extends IInternalFrame {
                         LinkedHashMap<String, String> lhm = new LinkedHashMap<String, String>();\r
                         getOptionNameValue(lhm);\r
                         \r
-\r
+                        docConsole.setSaved(false);\r
                         ffc.updateFvImagesFvImage(row, name.split(" "), type, lhm);\r
                     \r
                 }\r
@@ -1296,6 +1317,11 @@ public class FpdFlash extends IInternalFrame {
             fvImageParaTableModel.addRow(saa[i]);\r
             ++i;\r
         }\r
+        \r
+//        String fdfFile = ffc.getFlashDefinitionFile();\r
+//        if (fdfFile != null) {\r
+//            jTextField3.setText(fdfFile);\r
+//        }\r
     }\r
     \r
     private void getOptionNameValue(Map<String, String> m){\r