]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java
Add support for PCD token larger than 0x80000000 when declaring a PCD in package...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPcdDefs.java
index 06a5d94417a330b9b40dfce9e9d1d308c4ba737c..1ada3027531f8b2756d207dbf0d85f6d1c231a1e 100644 (file)
@@ -524,13 +524,18 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
                                 jCheckBoxFeatureFlag.isSelected(), jCheckBoxFixedAtBuild.isSelected(),\r
                                 jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
                                 archList, modTypeList};\r
-                if (!dataValidation(row)) {\r
-                    return;\r
-                }\r
-                \r
-                if (tokenCNameExisted(jTextFieldToken.getText(), jTextFieldC_Name.getText())) {\r
-                    return;\r
-                }\r
+                try {\r
+                                   if (!dataValidation(row)) {\r
+                                           return;\r
+                                   }\r
+\r
+                                   if (tokenCNameExisted(jTextFieldToken.getText(),jTextFieldC_Name.getText())) {\r
+                                           return;\r
+                                   }\r
+                           } catch (Exception e) {\r
+                                   JOptionPane.showMessageDialog(frame, "Illegal Token:"+ e.getCause());\r
+                                   return;\r
+                           }\r
                 \r
                 model.addRow(row);\r
                 jTable.changeSelection(model.getRowCount()-1, 0, false, false);\r
@@ -900,8 +905,14 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             }\r
             \r
             Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
-            if (!dataValidation(o)){\r
-                return;\r
+            try {\r
+               if (!dataValidation(o)){\r
+                    return;\r
+                }\r
+            }\r
+            catch (Exception e) {\r
+               JOptionPane.showMessageDialog(frame, "Illegal Token:" + e.getCause());\r
+               return;\r
             }\r
             docConsole.setSaved(false);\r
             sfc.updateSpdPcdDefinition(row, cName, token, dataType, usage, ts, defaultVal, help, archList, modTypeList);\r
@@ -1049,19 +1060,19 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
         return usage.trim();\r
     }\r
     \r
-    private boolean tokenCNameExisted(String token, String cName) {\r
-        Integer inputToken = Integer.decode(token);\r
+    private boolean tokenCNameExisted(String token, String cName) throws Exception{\r
+        Long inputToken = Long.decode(token);\r
         \r
-        for (int i = 0; i < jTable.getRowCount(); ++i) {\r
-            if (jTable.getValueAt(i, 0).equals(cName)) {\r
+        for (int i = 0; i < model.getRowCount(); ++i) {\r
+            if (model.getValueAt(i, 0).equals(cName)) {\r
                 JOptionPane.showMessageDialog(frame, "C_Name already existed in table.");\r
                 return true;\r
             }\r
-            if (jTable.getValueAt(i, 1).equals(token)) {\r
+            if (model.getValueAt(i, 1).equals(token)) {\r
                 JOptionPane.showMessageDialog(frame, "Token already existed in table.");\r
                 return true;\r
             }\r
-            Integer tokenValue = Integer.decode(jTable.getValueAt(i, 1)+"");\r
+            Long tokenValue = Long.decode(model.getValueAt(i, 1)+"");\r
             if (tokenValue.equals(inputToken)) {\r
                 JOptionPane.showMessageDialog(frame, "Same token value already existed in table.");\r
                 return true;\r
@@ -1078,14 +1089,14 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
         }\r
         return true;\r
     }\r
-    private boolean dataValidation(Object[] row) {\r
+    private boolean dataValidation(Object[] row) throws Exception{\r
         \r
         if (!DataValidation.isC_NameType(row[0].toString())) {\r
             JOptionPane.showMessageDialog(frame, "C_Name is NOT C_NameType.");\r
             return false;\r
         }\r
         if (!DataValidation.isHexDoubleWordDataType(row[1].toString()) && \r
-                        !DataValidation.isInt(row[1].toString(), Integer.MIN_VALUE, Integer.MAX_VALUE)) {\r
+                        !DataValidation.isLongInt(row[1].toString(), 1, Long.MAX_VALUE)) {\r
             JOptionPane.showMessageDialog(frame, "Token is NOT correct.");\r
             return false;\r
         }\r