]> 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 087a7f68a0ac32e8e17362cefbafb96b93561822..19849d0277f2f6b74e722c5d3f1f374f19d6f7f8 100644 (file)
@@ -19,12 +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.FvImagesDocument;\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
@@ -36,7 +37,6 @@ import java.awt.event.ComponentEvent;
 import java.awt.event.ItemEvent;\r
 import java.awt.event.ItemListener;\r
 import java.io.File;\r
-import java.util.ArrayList;\r
 import java.util.Iterator;\r
 import java.util.LinkedHashMap;\r
 import java.util.Map;\r
@@ -110,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
@@ -141,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
@@ -393,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
@@ -456,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
@@ -503,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
@@ -719,11 +726,11 @@ public class FpdFlash extends IInternalFrame {
  if (jPanel5 == null) {\r
      //ToDo add ButtonGroup for RadioButtons\r
             jLabel6 = new JLabel();\r
-            jLabel6.setEnabled(false);\r
+            jLabel6.setEnabled(true);\r
             jLabel6.setText("Value");\r
             jLabel6.setPreferredSize(new Dimension(38, 20));\r
             jLabel5 = new JLabel();\r
-            jLabel5.setEnabled(false);\r
+            jLabel5.setEnabled(true);\r
             jLabel5.setText("Name");\r
             jLabel5.setPreferredSize(new Dimension(38, 20));\r
             jPanel5 = new JPanel();\r
@@ -797,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
@@ -900,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
@@ -924,7 +932,7 @@ public class FpdFlash extends IInternalFrame {
 \r
                 public void itemStateChanged(ItemEvent arg0) {\r
                     // TODO Auto-generated method stub\r
-                    boolean selected = jCheckBox3.isSelected();\r
+//                    boolean selected = jCheckBox3.isSelected();\r
                     \r
                         if (!jCheckBox2.isSelected() || jComboBox.getSelectedIndex() == 0) {\r
                             return;\r
@@ -1039,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
@@ -1062,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
@@ -1086,7 +1105,7 @@ public class FpdFlash extends IInternalFrame {
     private JTextField getJTextField4() {\r
         if (jTextField4 == null) {\r
             jTextField4 = new JTextField();\r
-            jTextField4.setEnabled(false);\r
+            jTextField4.setEnabled(true);\r
             jTextField4.setPreferredSize(new Dimension(100, 20));\r
         }\r
         return jTextField4;\r
@@ -1100,7 +1119,7 @@ public class FpdFlash extends IInternalFrame {
     private JTextField getJTextField5() {\r
         if (jTextField5 == null) {\r
             jTextField5 = new JTextField();\r
-            jTextField5.setEnabled(false);\r
+            jTextField5.setEnabled(true);\r
             jTextField5.setPreferredSize(new Dimension(100, 20));\r
         }\r
         return jTextField5;\r
@@ -1237,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
@@ -1298,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