]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java
Add check before adding msa file to spd file.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdMsaFiles.java
index c53e082e1f68b5a77381587fa8ed10ba6440a190..efaf0ef53fcff072776094b3a0519974a29262c4 100644 (file)
@@ -64,7 +64,7 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
 \r
     private JPanel jContentPane = null;\r
 \r
-    private JScrollPane jScrollPane1 = null;\r
+    private JScrollPane jScrollPaneMsa = null;\r
 \r
     private JButton jButtonAdd = null;\r
 \r
@@ -105,13 +105,13 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
        \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,177,461,139));\r
-            jScrollPane1.setViewportView(getJTable());\r
+    private JScrollPane getJScrollPaneMsa() {\r
+        if (jScrollPaneMsa == null) {\r
+            jScrollPaneMsa = new JScrollPane();\r
+            jScrollPaneMsa.setBounds(new java.awt.Rectangle(13,177,461,421));\r
+            jScrollPaneMsa.setViewportView(getJTable());\r
         }\r
-        return jScrollPane1;\r
+        return jScrollPaneMsa;\r
     }\r
 \r
     /**\r
@@ -308,7 +308,7 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
             jContentPane.setLayout(null);\r
             jContentPane.add(jLabel, null);\r
             jContentPane.add(jStarLabel2, null);\r
-            jContentPane.add(getJScrollPane1(), null);\r
+            jContentPane.add(getJScrollPaneMsa(), null);\r
             jContentPane.add(getJButtonAdd(), null);\r
             jContentPane.add(getJButtonRemove(), null);\r
             jContentPane.add(getJButtonClearAll(), null);\r
@@ -333,7 +333,6 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
      */\r
     public void actionPerformed(ActionEvent arg0) {\r
         \r
-        docConsole.setSaved(false);\r
         if (arg0.getSource() == jButtonOk) {\r
             this.save();\r
             this.dispose();\r
@@ -350,8 +349,16 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
                 JOptionPane.showMessageDialog(this, "Msa File is NOT PathAndFilename type.");\r
                 return;\r
             }\r
+            \r
+            String dirPrefix = Tools.dirForNewSpd.substring(0, Tools.dirForNewSpd.lastIndexOf(File.separator));\r
+            if (!new File(dirPrefix + File.separator + jTextField.getText()).exists()) {\r
+                JOptionPane.showMessageDialog(this, "File NOT Exists in Current Package.");\r
+                return;\r
+            }\r
             model.addRow(row);\r
+            jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
             sfc.genSpdMsaFiles(row[0], null, null, null);\r
+            docConsole.setSaved(false);\r
         }\r
         //\r
         // remove selected line\r
@@ -364,6 +371,7 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
             if (rowSelected >= 0) {\r
                 model.removeRow(rowSelected);\r
                 sfc.removeSpdMsaFile(rowSelected);\r
+                docConsole.setSaved(false);\r
             }\r
         }\r
 \r
@@ -373,6 +381,7 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
             }\r
             model.setRowCount(0);\r
             sfc.removeSpdMsaFile();\r
+            docConsole.setSaved(false);\r
         }\r
 \r
     }\r
@@ -380,8 +389,21 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
     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[1];\r
+            sfc.getSpdMsaFile(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 file = m.getValueAt(row, 0) + "";\r
             if (file.length() == 0) {\r
                 JOptionPane.showMessageDialog(this, "Msa File is NOT PathAndFilename type.");\r
@@ -471,9 +493,9 @@ public class SpdMsaFiles extends IInternalFrame implements TableModelListener{
     public void componentResized(ComponentEvent arg0) {\r
         int intPreferredWidth = 500;\r
         \r
-        resizeComponentWidth(this.jScrollPane1, this.getWidth(), intPreferredWidth);\r
-        resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
-        relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 25);\r
+        Tools.resizeComponentWidth(this.jScrollPaneMsa, this.getWidth(), intPreferredWidth);\r
+        Tools.resizeComponentWidth(this.jTextField, this.getWidth(), intPreferredWidth);\r
+        Tools.relocateComponentX(this.jButtonBrowse, this.getWidth(), this.getPreferredSize().width, 25);\r
     }\r
     \r
     public static void main(String[] args){\r