]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java
fix the problem that if no data updated in wizard editors, the Save indicator will...
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdLibClassDecls.java
index 51c8ee9a757398352a42e1f803c719f316a282dd..33c78899d7b6965d7ba1c27cd13e34cf40e349de 100644 (file)
@@ -201,7 +201,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
         if (jScrollPane == null) {\r
             jScrollPane = new JScrollPane();\r
             jScrollPane.setBounds(new java.awt.Rectangle(12,351,608,253));\r
-            jScrollPane.setPreferredSize(new java.awt.Dimension(390,150));\r
+            jScrollPane.setPreferredSize(new java.awt.Dimension(500,419));\r
             jScrollPane.setViewportView(getJTable());\r
         }\r
         return jScrollPane;\r
@@ -278,13 +278,21 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
     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
+            \r
             String lib = m.getValueAt(row, cnClassName) + "";\r
             String hdr = m.getValueAt(row, cnHdrFile) + "";\r
             String hlp = m.getValueAt(row, cnHelpText) + "";\r
-            String name = m.getValueAt(row, cnRecInstName) + "";\r
-            String ver = m.getValueAt(row, cnRecInstVer) + "";\r
+            String name = null;\r
+            if (m.getValueAt(row, cnRecInstName) != null) {\r
+                name = m.getValueAt(row, cnRecInstName).toString();\r
+            } \r
+            String ver = null;\r
+            if (m.getValueAt(row, cnRecInstVer) != null){\r
+                ver = m.getValueAt(row, cnRecInstVer).toString();\r
+            }\r
             String arch = null;\r
             if (m.getValueAt(row, cnSupArch) != null) {\r
                arch = m.getValueAt(row, cnSupArch).toString();\r
@@ -297,11 +305,40 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             if (!dataValidation(rowData)) {\r
                 return;\r
             }\r
-            docConsole.setSaved(false);\r
             \r
-            getLibInstances(lib);\r
-            String guid = nameToGuid(name);\r
+            String guid = null;\r
+            if (name != null && name.length() > 0) {\r
+                getLibInstances(lib);\r
+                guid = nameToGuid(name);\r
+            }\r
             \r
+            String[] sa = new String[7];\r
+            sfc.getSpdLibClassDeclaration(sa, row);\r
+            Object cellData = m.getValueAt(row, column);\r
+            if (cellData == null) {\r
+                cellData = "";\r
+            }\r
+            if (column == cnRecInstName) {\r
+                if (guid == null) {\r
+                    if (sa[cnRecInstName] == null) {\r
+                        return;\r
+                    }\r
+                }\r
+                else {\r
+                    if (guid.equals(sa[cnRecInstName])) {\r
+                        return;\r
+                    }\r
+                }\r
+            }\r
+            else {\r
+                if (cellData.equals(sa[column])) {\r
+                    return;\r
+                }\r
+                if (cellData.toString().length() == 0 && sa[column] == null) {\r
+                    return;\r
+                }\r
+            }\r
+            docConsole.setSaved(false);\r
             sfc.updateSpdLibClass(row, lib, hdr, hlp, guid, ver, arch, module);\r
         }\r
     }\r
@@ -316,7 +353,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             jButtonAdd = new JButton();\r
             jButtonAdd.setText("Add");\r
             jButtonAdd.setSize(new java.awt.Dimension(99,20));\r
-            jButtonAdd.setLocation(new java.awt.Point(321,326));\r
+            jButtonAdd.setBounds(new java.awt.Rectangle(321,326,99,20));\r
             jButtonAdd.addActionListener(this);\r
         }\r
         return jButtonAdd;\r
@@ -332,7 +369,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             jButtonRemove = new JButton();\r
             jButtonRemove.setText("Remove");\r
             jButtonRemove.setSize(new java.awt.Dimension(99,20));\r
-            jButtonRemove.setLocation(new java.awt.Point(424,326));\r
+            jButtonRemove.setBounds(new java.awt.Rectangle(424,326,99,20));\r
             jButtonRemove.addActionListener(this);\r
         }\r
         return jButtonRemove;\r
@@ -348,7 +385,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             jButtonRemoveAll = new JButton();\r
             jButtonRemoveAll.setText("Remove All");\r
             jButtonRemoveAll.setSize(new java.awt.Dimension(99,20));\r
-            jButtonRemoveAll.setLocation(new java.awt.Point(527,326));\r
+            jButtonRemoveAll.setBounds(new java.awt.Rectangle(527,326,99,20));\r
             jButtonRemoveAll.addActionListener(this);\r
         }\r
         return jButtonRemoveAll;\r
@@ -418,7 +455,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
     private JScrollPane getJContentPane(){\r
         if (topScrollPane == null){\r
           topScrollPane = new JScrollPane();\r
-          topScrollPane.setSize(new java.awt.Dimension(634,590));\r
+//          topScrollPane.setSize(new java.awt.Dimension(634,590));\r
           topScrollPane.setViewportView(getJContentPane1());\r
         }\r
         return topScrollPane;\r
@@ -470,7 +507,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             jLabel3RecInstName.setText("Recommended Instance Name");\r
             \r
             jContentPane = new JPanel();\r
-            jContentPane.setPreferredSize(new Dimension(480, 400));\r
+            jContentPane.setPreferredSize(new Dimension(680, 600));\r
             jContentPane.setLayout(null);\r
             jContentPane.add(jLabelHdr, null);\r
             jContentPane.add(jStarLabel1, null);\r
@@ -576,9 +613,6 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             if (!dataValidation(row)) {\r
                 return;\r
             }\r
-            model.addRow(row);\r
-            jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
-            docConsole.setSaved(false);\r
             //\r
             //convert to GUID before storing recommended lib instance.\r
             //\r
@@ -586,7 +620,9 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             String recommendGuid = nameToGuid(row[cnRecInstName]);\r
 \r
             sfc.genSpdLibClassDeclarations(row[cnClassName], recommendGuid, row[cnHdrFile], row[cnHelpText], row[cnSupArch], null, null, row[cnRecInstVer], null, row[cnSupMod]);\r
-            \r
+            model.addRow(row);\r
+            jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
+            docConsole.setSaved(false);\r
         }\r
         //\r
         // remove selected line\r
@@ -626,7 +662,12 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
             JOptionPane.showMessageDialog(frame, "Help Text Must NOT be empty.");\r
             return false;\r
         }\r
-        if (row[cnRecInstVer].length() > 0) {\r
+        if (row[cnRecInstVer] != null && row[cnRecInstVer].length() > 0) {\r
+            if (row[cnRecInstName] == null || row[cnRecInstName].length() == 0) {\r
+                JOptionPane.showMessageDialog(frame, "Recommended Instance Version must associate with Instance Name.");\r
+                return false;\r
+            }\r
+            \r
             if (!DataValidation.isVersionDataType(row[cnRecInstVer])) {\r
                 JOptionPane.showMessageDialog(frame, "Recommended Instance Version is NOT VersionDataType.");\r
                 return false;\r
@@ -898,6 +939,7 @@ public class SpdLibClassDecls extends IInternalFrame implements TableModelListen
     private String nameToGuid(String name) {\r
         String s = null;\r
         if (!libNameGuidMap.containsKey(name)) {\r
+            JOptionPane.showMessageDialog(frame, "Recommended Instance NOT exists.");\r
             return s;\r
         }\r
         \r