]> git.proxmox.com Git - mirror_edk2.git/commitdiff
fix the problem that if no data updated in wizard editors, the Save indicator will...
authorjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Jul 2006 09:42:04 +0000 (09:42 +0000)
committerjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Jul 2006 09:42:04 +0000 (09:42 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1100 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdFileContents.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdGuidDecls.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdLibClassDecls.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdMsaFiles.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageDefinitions.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPackageHeaders.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPpiDecls.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdProtocolDecls.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdHeader.java

index a66861c30ca9b3170cf185a7f206f89d06c2d43c..00e7f81bdf1e7461fbd6889037afa0d0e0b4e8e5 100644 (file)
@@ -641,14 +641,14 @@ public class SpdFileContents {
                 libClass[i][1] = lc.getIncludeHeader();\r
                 libClass[i][2] = lc.getHelpText();\r
 // LAH added logic so you cannot set the version unless the GUID is defined.\r
-/* LAH do not set now\r
-                if (lc.getRecommendedInstanceGuid() != null) {\r
+\r
+//                if (lc.getRecommendedInstanceGuid() != null) {\r
                   libClass[i][3] = lc.getRecommendedInstanceGuid();\r
-                  if (lc.getRecommendedInstanceVersion() != null) {\r
+//                  if (lc.getRecommendedInstanceVersion() != null) {\r
                     libClass[i][4] = lc.getRecommendedInstanceVersion();\r
-                  }\r
-                }\r
-*/\r
+//                  }\r
+//                }\r
+\r
                 if (lc.getSupArchList() != null) {\r
                     libClass[i][5] = listToString(lc.getSupArchList());\r
                 }\r
@@ -993,6 +993,27 @@ public class SpdFileContents {
                                   incHdrAttribPath, incHdrAttribClass, incHdrAttribVer, incHdrAttribOverrideID,\r
                                   incHdrAttribModuleType, spdLibClassDeclarations);\r
     }\r
+    \r
+    public void getSpdLibClassDeclaration(String[] sa, int i) {\r
+        if (getSpdLibClassDeclarations() == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = getSpdLibClassDeclarations().newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass lc = (LibraryClassDeclarationsDocument.LibraryClassDeclarations.LibraryClass)cursor.getObject();\r
+            sa[0] = lc.getName();\r
+            sa[1] = lc.getIncludeHeader();\r
+            sa[2] = lc.getHelpText();\r
+            sa[3] = lc.getRecommendedInstanceGuid();\r
+            sa[4] = lc.getRecommendedInstanceVersion();\r
+            sa[5] = listToString(lc.getSupArchList());\r
+            sa[6] = listToString(lc.getSupModuleList());\r
+        }\r
+        cursor.dispose();\r
+    }\r
 \r
     /**\r
      Set library class declaration contents under parent tag\r
@@ -1118,6 +1139,20 @@ public class SpdFileContents {
         setSpdMsaFile(msaFileName, moduleName, ver, guid, spdMsaFiles);\r
         \r
     }\r
+    \r
+    public void getSpdMsaFile (String[] sa, int i) {\r
+        if (getSpdMsaFiles() == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = getSpdMsaFiles().newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            sa[0] = cursor.getTextValue();\r
+        }\r
+        cursor.dispose();\r
+    }\r
 \r
     /**\r
      Set MsaFile contents under parent element.\r
@@ -1159,6 +1194,22 @@ public class SpdFileContents {
         setSpdIncludeHeader(ModHdrModType, hdrFile, hdrAttribGuid, hdrAttribArch, hdrAttribPath, hdrAttribClass,\r
                             hdrAttribVer, hdrAttribOverID, spdModHdrs);\r
     }\r
+    \r
+    public void getSpdModuleHeader(String[] sa, int i) {\r
+        if (getSpdModHdrs() == null) {\r
+            return;\r
+        }\r
+        XmlCursor cursor = getSpdModHdrs().newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            PackageHeadersDocument.PackageHeaders.IncludePkgHeader ih = (PackageHeadersDocument.PackageHeaders.IncludePkgHeader)cursor.getObject();\r
+            sa[0] = ih.getModuleType()+"";\r
+            sa[1] = ih.getStringValue();\r
+        }\r
+        cursor.dispose();\r
+    }\r
 \r
     /**\r
      Generate GUID declaration element using parameters passed in.\r
@@ -1213,7 +1264,70 @@ public class SpdFileContents {
 \r
         setSpdEntry(ppiDeclEntryName, ppiDeclCName, ppiDeclGuid, ppiDeclFeatureFlag, archList, modTypeList, guidTypeList, spdPpiDeclarations);\r
     }\r
+    \r
+    public void getSpdGuidDeclaration(String[] sa, int i) {\r
+        if (getSpdGuidDeclarations() == null) {\r
+            return;\r
+        }\r
+        getSpdEntry(sa, i, getSpdGuidDeclarations());\r
+    }\r
+    \r
+    public void getSpdProtocolDeclaration(String[] sa, int i) {\r
+        if (getSpdProtocolDeclarations() == null) {\r
+            return;\r
+        }\r
+        getSpdEntry(sa, i, getSpdProtocolDeclarations());\r
+    }\r
+    \r
+    public void getSpdPpiDeclaration(String[] sa, int i) {\r
+        if (getSpdPpiDeclarations() == null) {\r
+            return;\r
+        }\r
+        getSpdEntry(sa, i, getSpdPpiDeclarations());\r
+    }\r
 \r
+    public void getSpdEntry(String[] sa, int i, XmlObject parent) {\r
+        XmlCursor cursor = parent.newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            if (parent instanceof GuidDeclarationsDocument.GuidDeclarations) {\r
+                GuidDeclarationsDocument.GuidDeclarations.Entry e = (GuidDeclarationsDocument.GuidDeclarations.Entry)cursor.getObject();\r
+                sa[0] = e.getName();\r
+                sa[1] = e.getCName();\r
+                sa[2] = e.getGuidValue();\r
+                sa[3] = e.getHelpText();\r
+                sa[4] = listToString(e.getSupArchList());\r
+                sa[5] = listToString(e.getSupModuleList());\r
+                sa[6] = listToString(e.getGuidTypeList());\r
+            }\r
+            \r
+            if (parent instanceof ProtocolDeclarationsDocument.ProtocolDeclarations) {\r
+                ProtocolDeclarationsDocument.ProtocolDeclarations.Entry e = (ProtocolDeclarationsDocument.ProtocolDeclarations.Entry)cursor.getObject();\r
+                sa[0] = e.getName();\r
+                sa[1] = e.getCName();\r
+                sa[2] = e.getGuidValue();\r
+                sa[3] = e.getHelpText();\r
+                sa[4] = listToString(e.getSupArchList());\r
+                sa[5] = listToString(e.getSupModuleList());\r
+                sa[6] = listToString(e.getGuidTypeList());\r
+            }\r
+            \r
+            if (parent instanceof PpiDeclarationsDocument.PpiDeclarations) {\r
+                PpiDeclarationsDocument.PpiDeclarations.Entry e = (PpiDeclarationsDocument.PpiDeclarations.Entry)cursor.getObject();\r
+                sa[0] = e.getName();\r
+                sa[1] = e.getCName();\r
+                sa[2] = e.getGuidValue();\r
+                sa[3] = e.getHelpText();\r
+                sa[4] = listToString(e.getSupArchList());\r
+                sa[5] = listToString(e.getSupModuleList());\r
+                sa[6] = listToString(e.getGuidTypeList());\r
+            }\r
+            \r
+        }\r
+        cursor.dispose();\r
+    }\r
     /**\r
      Set Entry contents using parameters passed in\r
      \r
@@ -1358,6 +1472,30 @@ public class SpdFileContents {
         setSpdPcdEntry(pcdItemTypes, cName, token, dataType, spaceGuid, help,\r
                        defaultString, archList, modTypeList, spdPcdDefinitions);\r
     }\r
+    \r
+    public void getSpdPcdDeclaration(String[] sa, int i) {\r
+        if (getSpdPcdDefinitions() == null) {\r
+            return;\r
+        }\r
+        \r
+        XmlCursor cursor = getSpdPcdDefinitions().newCursor();\r
+        if (cursor.toFirstChild()) {\r
+            for (int j = 0; j < i; ++j) {\r
+                cursor.toNextSibling();\r
+            }\r
+            PcdDeclarationsDocument.PcdDeclarations.PcdEntry pe = (PcdDeclarationsDocument.PcdDeclarations.PcdEntry)cursor.getObject();\r
+            sa[0] = pe.getCName();\r
+            sa[1] = pe.getToken()+"";\r
+            sa[2] = pe.getTokenSpaceGuidCName();\r
+            sa[3] = pe.getDatumType()+"";\r
+            sa[4] = pe.getDefaultValue();\r
+            sa[5] = pe.getHelpText();\r
+            sa[6] = listToString(pe.getValidUsage());\r
+            sa[7] = listToString(pe.getSupArchList());\r
+            sa[8] = listToString(pe.getSupModuleList());\r
+        }\r
+        cursor.dispose();\r
+    }\r
 \r
     /**\r
      Set Pcd entry contents under parent tag\r
index 6459c2c56ed432d7c0fe731392779d163b81f9b6..120c52845b7a677a615ca9a000671a8422204ff7 100644 (file)
@@ -129,7 +129,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
 \r
     private JLabel jLabel3 = null;\r
 \r
-\r
+    protected String[][] saa = null;\r
 \r
     /**\r
       This method initializes this\r
@@ -237,6 +237,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
                    }\r
                    else{\r
                        selectedRow = lsm.getMinSelectionIndex();\r
+                       \r
                    }\r
                }\r
            });\r
@@ -250,14 +251,28 @@ public class SpdGuidDecls 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
            \r
-           updateRow(row, m);\r
+           updateRow(row, column, m);\r
        }\r
    }\r
    \r
-   protected void updateRow(int row, TableModel m){\r
+   protected void updateRow(int row, int column, TableModel m){\r
+       String[] sa = new String[7];\r
+       sfc.getSpdGuidDeclaration(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
+       \r
        String name = m.getValueAt(row, 0) + "";\r
        String cName = m.getValueAt(row, 1) + "";\r
        String guid = m.getValueAt(row, 2) + "";\r
@@ -409,7 +424,7 @@ public class SpdGuidDecls extends IInternalFrame implements TableModelListener{
         //\r
         // initialize table using SpdFileContents object\r
         //\r
-        String[][] saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
+        saa = new String[sfc.getSpdGuidDeclarationCount()][7];\r
         sfc.getSpdGuidDeclarations(saa);\r
         int i = 0;\r
         while (i < saa.length) {\r
index 911469dcc994225a804d0c09127f0351dd19d22d..5399dceab31a5933ba2fce52f8872bd8544411be 100644 (file)
@@ -32,7 +32,6 @@ import javax.swing.JTextField;
 \r
 import org.tianocore.PackageSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
@@ -144,6 +143,9 @@ public class SpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");\r
                         return;\r
                     }\r
+                    if (jTextFieldBaseName.getText().equals(sfc.getSpdHdrPkgName())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     sfc.setSpdHdrPkgName(jTextFieldBaseName.getText());\r
                 }\r
@@ -169,6 +171,9 @@ public class SpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");\r
                         return;\r
                     }\r
+                    if (jTextFieldGuid.getText().equals(sfc.getSpdHdrGuidValue())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());\r
                 }\r
@@ -194,6 +199,9 @@ public class SpdHeader extends IInternalFrame {
                        JOptionPane.showMessageDialog(frame, "Version is NOT version type.");\r
                        return;\r
                    }\r
+                   if (jTextFieldVersion.getText().equals(sfc.getSpdHdrVer())){\r
+                       return;\r
+                   }\r
                    docConsole.setSaved(false);\r
                    sfc.setSpdHdrVer(jTextFieldVersion.getText());\r
                } \r
@@ -228,7 +236,6 @@ public class SpdHeader extends IInternalFrame {
         if (jTextAreaLicense == null) {\r
             jTextAreaLicense = new JTextArea();\r
             jTextAreaLicense.setText("");\r
-//            jTextAreaLicense.setPreferredSize(new java.awt.Dimension(317,77));\r
             jTextAreaLicense.setLineWrap(true);\r
             jTextAreaLicense.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e){\r
@@ -236,6 +243,9 @@ public class SpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextAreaLicense.getText().equals(sfc.getSpdHdrLicense())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     sfc.setSpdHdrLicense(jTextAreaLicense.getText());\r
                 }\r
@@ -254,13 +264,15 @@ public class SpdHeader extends IInternalFrame {
         if (jTextAreaDescription == null) {\r
             jTextAreaDescription = new JTextArea();\r
             jTextAreaDescription.setLineWrap(true);\r
-//            jTextAreaDescription.setPreferredSize(new java.awt.Dimension(317,77));\r
             jTextAreaDescription.addFocusListener(new FocusAdapter(){\r
                 public void focusLost(FocusEvent e){\r
                     if (jTextAreaDescription.getText().length() == 0) {\r
                         JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextAreaDescription.getText().equals(sfc.getSpdHdrDescription())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     sfc.setSpdHdrDescription(jTextAreaDescription.getText());\r
                 }\r
@@ -374,6 +386,9 @@ public class SpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextFieldAbstract.getText().equals(sfc.getSpdHdrAbs())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     sfc.setSpdHdrAbs(jTextFieldAbstract.getText());\r
                 }\r
@@ -399,6 +414,9 @@ public class SpdHeader extends IInternalFrame {
                        JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");\r
                        return;\r
                    }\r
+                   if (jTextFieldCopyright.getText().equals(sfc.getSpdHdrCopyright())) {\r
+                       return;\r
+                   }\r
                    docConsole.setSaved(false);\r
                    sfc.setSpdHdrCopyright(jTextFieldCopyright.getText());\r
                } \r
@@ -419,6 +437,12 @@ public class SpdHeader extends IInternalFrame {
             jTextField.setPreferredSize(new java.awt.Dimension(320, 20));\r
             jTextField.addFocusListener(new FocusAdapter(){\r
                public void focusLost(FocusEvent e){\r
+                   if (jTextField.getText().length() == 0 && sfc.getSpdHdrUrl() == null) {\r
+                       return;\r
+                   }\r
+                   if (jTextField.getText().equals(sfc.getSpdHdrUrl())) {\r
+                       return;\r
+                   }\r
                    sfc.setSpdHdrLicense(jTextAreaLicense.getText());\r
                    sfc.setSpdHdrUrl(jTextField.getText());\r
                    docConsole.setSaved(false);\r
@@ -612,98 +636,15 @@ public class SpdHeader extends IInternalFrame {
      *\r
      */\r
     public void actionPerformed(ActionEvent arg0) {\r
-        docConsole.setSaved(false);\r
-        if (arg0.getSource() == jButtonOk) {\r
-            this.save();\r
-            this.setEdited(true);\r
-        }\r
-        if (arg0.getSource() == jButtonCancel) {\r
-            this.setEdited(false);\r
-        }\r
+        \r
         if (arg0.getSource() == jButtonGenerateGuid) {\r
             //ToDo: invoke GuidValueEditor\r
             jTextFieldGuid.setText(Tools.generateUuidString());\r
+            docConsole.setSaved(false);\r
             sfc.setSpdHdrGuidValue(jTextFieldGuid.getText());\r
         }\r
     }\r
-\r
-    /**\r
-     Data validation for all fields\r
-     \r
-     @retval true - All datas are valid\r
-     @retval false - At least one data is invalid\r
-     \r
-     **/\r
-    public boolean check() {\r
-        //\r
-        // Check if all required fields are not empty\r
-        //\r
-        if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Spd Header", "Base Name couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldGuid.getText())) {\r
-            Log.wrn("Update Spd Header", "Guid couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldVersion.getText())) {\r
-            Log.wrn("Update Spd Header", "Version couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaLicense.getText())) {\r
-            Log.wrn("Update Spd Header", "License couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldCopyright.getText())) {\r
-            Log.wrn("Update Spd Header", "Copyright couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaDescription.getText())) {\r
-            Log.wrn("Update Spd Header", "Description couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Spd Header", "Abstract couldn't be empty");\r
-            return false;\r
-        }\r
-\r
-        //\r
-        // Check if all fields have correct data types \r
-        //\r
-        if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Spd Header", "Incorrect data type for Base Name");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
-            Log.wrn("Update Spd Header", "Incorrect data type for Guid");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Spd Header", "Incorrect data type for Abstract");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
-            Log.wrn("Update Spd Header", "Incorrect data type for Copyright");\r
-            return false;\r
-        }\r
-        return true;\r
-    }\r
-\r
-    /**\r
-     Save all components of Spd Header\r
-     if exists spdHeader, set the value directly\r
-     if not exists spdHeader, new an instance first\r
-     \r
-     **/\r
-    public void save() {\r
-        try {\r
-            \r
-        } catch (Exception e) {\r
-            Log.wrn("Save Package", e.getMessage());\r
-            Log.err("Save Package", e.getMessage());\r
-        }\r
-    }\r
-\r
+    \r
     /**\r
      This method initializes Package type and Compontent type\r
      \r
index 04a62ce166072fa0164884665969bf3e5a9e572a..33c78899d7b6965d7ba1c27cd13e34cf40e349de 100644 (file)
@@ -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
@@ -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
index 4c7a69d1ae3ab3666870f4e51c60fc4357fcee7c..a7465835a4c157bd5173e77955a7c5dc106dac24 100644 (file)
@@ -381,8 +381,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
index 24d4be621e9608c2c63b9a315dfbba95e9e304ea..56d00ae0412c890b77aa3faa6facce74a49ef57f 100644 (file)
@@ -128,8 +128,11 @@ public class SpdPackageDefinitions extends IInternalFrame {
             jComboBoxReadOnly.setSelectedIndex(1);\r
             jComboBoxReadOnly.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+                    if (jComboBoxReadOnly.getSelectedItem().equals(sfc.getSpdPkgDefsRdOnly())) {\r
+                        return;\r
+                    }\r
                     if (docConsole != null) {\r
-                    docConsole.setSaved(false);\r
+                        docConsole.setSaved(false);\r
                     }\r
                     sfc.setSpdPkgDefsRdOnly(jComboBoxReadOnly.getSelectedItem()+"");\r
                 }\r
@@ -153,6 +156,9 @@ public class SpdPackageDefinitions extends IInternalFrame {
             jComboBoxRePackage.setSelectedIndex(0);\r
             jComboBoxRePackage.addItemListener(new java.awt.event.ItemListener() {\r
                 public void itemStateChanged(java.awt.event.ItemEvent e) {\r
+                    if (jComboBoxRePackage.getSelectedItem().equals(sfc.getSpdPkgDefsRePkg())) {\r
+                        return;\r
+                    }\r
                     if (docConsole != null) {\r
                         docConsole.setSaved(false);\r
                     }\r
index 5b256fce706ba91fe21c29a173c718061e899a83..e490e28e2d52e3162323e2e7aad03ba21531c419 100644 (file)
@@ -564,8 +564,21 @@ public class SpdPackageHeaders extends IInternalFrame implements TableModelListe
     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[2];\r
+            sfc.getSpdModuleHeader(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 pkg = m.getValueAt(row, 0) + "";\r
             String hdr = m.getValueAt(row, 1) + "";\r
             String[] rowData = {pkg, hdr};\r
index ba2d55bd7a0948532cd79d0b3587085a3950a9dd..4b9924c32a38aa133b4e40945998ee3135513c47 100644 (file)
@@ -721,16 +721,66 @@ public class SpdPcdDefs 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[9];\r
+            sfc.getSpdPcdDeclaration(sa, row);\r
+            Object cellData = m.getValueAt(row, column);\r
+            if (column < 6) {\r
+                \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
+            }\r
+            \r
+            String usage = getValidUsage(new Boolean(m.getValueAt(row, 6)+""), new Boolean(m.getValueAt(row, 7)+""), new Boolean(m.getValueAt(row, 8)+""), new Boolean(m.getValueAt(row, 9)+""), new Boolean(m.getValueAt(row, 10)+""));\r
+            if (usage.length() == 0) {\r
+                JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
+                return;\r
+            }\r
+            if (column <= 10 && column >= 6) {\r
+                if (compareTwoVectors(stringToVector(usage), stringToVector(sa[6]))) {\r
+                    return;\r
+                }\r
+            }\r
+            \r
+            if (column == 11) {\r
+                if (cellData == null) {\r
+                    cellData = "";\r
+                }\r
+                if (cellData.equals(sa[7])) {\r
+                    return;\r
+                }\r
+                if (cellData.toString().length() == 0 && sa[7] == null) {\r
+                    return;\r
+                }\r
+            }\r
             \r
+            if (column == 12) {\r
+                if (cellData == null) {\r
+                    cellData = "";\r
+                }\r
+                if (cellData.equals(sa[8])) {\r
+                    return;\r
+                }\r
+                if (cellData.toString().length() == 0 && sa[8] == null) {\r
+                    return;\r
+                }\r
+            }\r
             String cName = m.getValueAt(row, 0) + "";\r
             String token = m.getValueAt(row, 1) + "";\r
             String ts = m.getValueAt(row, 2) + "";\r
             String dataType = m.getValueAt(row, 3) + "";\r
             String defaultVal = m.getValueAt(row, 4) + "";\r
             String help = m.getValueAt(row, 5) + "";\r
-            String usage = getValidUsage(new Boolean(m.getValueAt(row, 6)+""), new Boolean(m.getValueAt(row, 7)+""), new Boolean(m.getValueAt(row, 8)+""), new Boolean(m.getValueAt(row, 9)+""), new Boolean(m.getValueAt(row, 10)+""));\r
+            \r
             \r
             String archList = null;\r
             if (m.getValueAt(row, 11) != null){\r
@@ -740,10 +790,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             if (m.getValueAt(row, 12) != null) {\r
                 modTypeList = m.getValueAt(row, 12).toString(); \r
             }\r
-            if (usage.length() == 0) {\r
-                JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
-                return;\r
-            }\r
+            \r
             Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
             if (!dataValidation(o)){\r
                 return;\r
@@ -967,6 +1014,30 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
         }\r
         return s.trim();\r
     }\r
+    \r
+    protected Vector<String> stringToVector(String s){\r
+        if (s == null) {\r
+            return null;\r
+        }\r
+        String[] sArray = s.split(" ");\r
+        Vector<String> v = new Vector<String>();\r
+        for (int i = 0; i < sArray.length; ++i) {\r
+            v.add(sArray[i]);\r
+        }\r
+        return v;\r
+    }\r
+    \r
+    private boolean compareTwoVectors(Vector v1, Vector v2) {\r
+        if (v1.size() != v2.size()) {\r
+            return false;\r
+        }\r
+        for (int i = 0; i < v1.size(); ++i) {\r
+            if (!v2.contains(v1.get(i))) {\r
+                return false;\r
+            }\r
+        }\r
+        return true;\r
+    }\r
 } //  @jve:decl-index=0:visual-constraint="22,11"\r
 \r
 class CheckboxTableModel extends DefaultTableModel {\r
index dcf608537b480be35d7db3bc331886b2cb430928..b33f8c7d217eda1cabba65d3ef45fda069d32b32 100644 (file)
@@ -62,7 +62,7 @@ public class SpdPpiDecls extends SpdGuidDecls {
         if (sfc.getSpdPpiDeclarationCount() == 0) {\r
             return ;\r
         }\r
-        String[][] saa = new String[sfc.getSpdPpiDeclarationCount()][7];\r
+        saa = new String[sfc.getSpdPpiDeclarationCount()][7];\r
         sfc.getSpdPpiDeclarations(saa);\r
         int i = 0;\r
         while (i < saa.length) {\r
@@ -71,7 +71,20 @@ public class SpdPpiDecls extends SpdGuidDecls {
         }\r
     }\r
     \r
-    protected void updateRow(int row, TableModel m){\r
+    protected void updateRow(int row, int column, TableModel m){\r
+        String[] sa = new String[7];\r
+        sfc.getSpdPpiDeclaration(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
+        \r
         String name = m.getValueAt(row, 0) + "";\r
         String cName = m.getValueAt(row, 1) + "";\r
         String guid = m.getValueAt(row, 2) + "";\r
index 21cebb5cb9319387304ab69c36a2fe0fb0c6e57e..e5453947e58782949b7d88fb17c8c3d26d11140a 100644 (file)
@@ -62,7 +62,7 @@ public class SpdProtocolDecls extends SpdGuidDecls {
         if (sfc.getSpdProtocolDeclarationCount() == 0) {\r
             return ;\r
         }\r
-        String[][] saa = new String[sfc.getSpdProtocolDeclarationCount()][7];\r
+        saa = new String[sfc.getSpdProtocolDeclarationCount()][7];\r
         sfc.getSpdProtocolDeclarations(saa);\r
         int i = 0;\r
         while (i < saa.length) {\r
@@ -72,7 +72,20 @@ public class SpdProtocolDecls extends SpdGuidDecls {
         \r
     }\r
     \r
-    protected void updateRow(int row, TableModel m){\r
+    protected void updateRow(int row, int column, TableModel m){\r
+        String[] sa = new String[7];\r
+        sfc.getSpdProtocolDeclaration(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
+        \r
         String name = m.getValueAt(row, 0) + "";\r
         String cName = m.getValueAt(row, 1) + "";\r
         String guid = m.getValueAt(row, 2) + "";\r
index 486518656b0027f30ffc2c0a903facb92dfe5069..d101250d1526cdd3e826191e0cd7254127159ac1 100644 (file)
@@ -35,7 +35,6 @@ import javax.swing.JTextField;
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 \r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
 import org.tianocore.frameworkwizard.common.ui.IInternalFrame;\r
@@ -146,6 +145,9 @@ public class FpdHeader extends IInternalFrame {
                        JOptionPane.showMessageDialog(frame, "Package Name is NOT UiNameType.");\r
                        return;\r
                    }\r
+                   if (jTextFieldBaseName.getText().equals(ffc.getFpdHdrPlatformName())) {\r
+                       return;\r
+                   }\r
                    docConsole.setSaved(false);\r
                    ffc.setFpdHdrPlatformName(jTextFieldBaseName.getText());\r
                } \r
@@ -171,6 +173,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Guid is NOT GuidType.");\r
                         return;\r
                     }\r
+                    if (jTextFieldGuid.getText().equals(ffc.getFpdHdrGuidValue())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrGuidValue(jTextFieldGuid.getText());\r
                 } \r
@@ -196,6 +201,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Version is NOT version type.");\r
                         return;\r
                     }\r
+                    if (jTextFieldVersion.getText().equals(ffc.getFpdHdrVer())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrVer(jTextFieldVersion.getText());\r
                 } \r
@@ -237,6 +245,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "License contents could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextAreaLicense.getText().equals(ffc.getFpdHdrLicense())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
                 } \r
@@ -261,6 +272,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Description contents could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextAreaDescription.getText().equals(ffc.getFpdHdrDescription())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrDescription(jTextAreaDescription.getText());\r
                 } \r
@@ -374,6 +388,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Abstract could NOT be empty.");\r
                         return;\r
                     }\r
+                    if (jTextFieldAbstract.getText().equals(ffc.getFpdHdrAbs())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrAbs(jTextFieldAbstract.getText());\r
                 } \r
@@ -399,6 +416,9 @@ public class FpdHeader extends IInternalFrame {
                         JOptionPane.showMessageDialog(frame, "Copyright contents could not be empty.");\r
                         return;\r
                     }\r
+                    if (jTextFieldCopyright.getText().equals(ffc.getFpdHdrCopyright())) {\r
+                        return;\r
+                    }\r
                     docConsole.setSaved(false);\r
                     ffc.setFpdHdrCopyright(jTextFieldCopyright.getText());\r
                 } \r
@@ -419,6 +439,12 @@ public class FpdHeader extends IInternalFrame {
             jTextField.setPreferredSize(new Dimension(320, 20));\r
             jTextField.addFocusListener(new FocusAdapter(){\r
                public void focusLost(FocusEvent e){\r
+                   if (jTextField.getText().length() == 0 && ffc.getFpdHdrUrl() == null) {\r
+                       return;\r
+                   }\r
+                   if (jTextField.getText().equals(ffc.getFpdHdrUrl())) {\r
+                       return;\r
+                   }\r
                    ffc.setFpdHdrLicense(jTextAreaLicense.getText());\r
                    ffc.setFpdHdrUrl(jTextField.getText());\r
                    docConsole.setSaved(false);\r
@@ -613,13 +639,7 @@ public class FpdHeader extends IInternalFrame {
      *\r
      */\r
     public void actionPerformed(ActionEvent arg0) {\r
-        if (arg0.getSource() == jButtonOk) {\r
-            this.save();\r
-            this.setEdited(true);\r
-        }\r
-        if (arg0.getSource() == jButtonCancel) {\r
-            this.setEdited(false);\r
-        }\r
+        \r
         if (arg0.getSource() == jButtonGenerateGuid) {\r
             docConsole.setSaved(false);\r
             jTextFieldGuid.setText(Tools.generateUuidString());\r
@@ -627,78 +647,7 @@ public class FpdHeader extends IInternalFrame {
         }\r
     }\r
 \r
-    /**\r
-     Data validation for all fields\r
-     \r
-     @retval true - All datas are valid\r
-     @retval false - At least one data is invalid\r
-     \r
-     **/\r
-    public boolean check() {\r
-        //\r
-        // Check if all required fields are not empty\r
-        //\r
-        if (isEmpty(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Fpd Header", "Base Name couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldGuid.getText())) {\r
-            Log.wrn("Update Fpd Header", "Guid couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldVersion.getText())) {\r
-            Log.wrn("Update Fpd Header", "Version couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaLicense.getText())) {\r
-            Log.wrn("Update Fpd Header", "License couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldCopyright.getText())) {\r
-            Log.wrn("Update Fpd Header", "Copyright couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextAreaDescription.getText())) {\r
-            Log.wrn("Update Fpd Header", "Description couldn't be empty");\r
-            return false;\r
-        }\r
-        if (isEmpty(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Fpd Header", "Abstract couldn't be empty");\r
-            return false;\r
-        }\r
-\r
-        //\r
-        // Check if all fields have correct data types \r
-        //\r
-        if (!DataValidation.isBaseName(this.jTextFieldBaseName.getText())) {\r
-            Log.wrn("Update Fpd Header", "Incorrect data type for Base Name");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isGuid((this.jTextFieldGuid).getText())) {\r
-            Log.wrn("Update Fpd Header", "Incorrect data type for Guid");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isAbstract(this.jTextFieldAbstract.getText())) {\r
-            Log.wrn("Update Fpd Header", "Incorrect data type for Abstract");\r
-            return false;\r
-        }\r
-        if (!DataValidation.isCopyright(this.jTextFieldCopyright.getText())) {\r
-            Log.wrn("Update Fpd Header", "Incorrect data type for Copyright");\r
-            return false;\r
-        }\r
-        return true;\r
-    }\r
-\r
-    /**\r
-     Save all components of Fpd Header\r
-     if exists FpdHeader, set the value directly\r
-     if not exists FpdHeader, new an instance first\r
-     \r
-     **/\r
-    public void save() {\r
-        \r
-    }\r
-\r
+    \r
     /**\r
      This method initializes Package type and Compontent type\r
      \r