]> git.proxmox.com Git - mirror_edk2.git/commitdiff
For one library class, list all library instances from all packages in workspace.
authorjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 13 Sep 2006 14:51:47 +0000 (14:51 +0000)
committerjlin16 <jlin16@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 13 Sep 2006 14:51:47 +0000 (14:51 +0000)
Fix the PCD memory database inconsistency problem when changing PCD item type in platform.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1531 6f19259b-4bc3-4df7-8a09-765794883524

Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFileContents.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdModuleSA.java

index 9c60f15dacecc2b809c720011681b099bd764306..b54715b877b59818e794350476983db9db1bc764 100644 (file)
@@ -91,6 +91,11 @@ public class FpdFileContents {
     \r
     private HashMap<String, String> defaultPcdValue = new HashMap<String, String>();\r
     \r
+    private String itemType (String pcdInfo) {\r
+        \r
+        return pcdInfo.substring(pcdInfo.lastIndexOf(" ") + 1);\r
+    }\r
+    \r
     /**\r
      * look through all pcd data in all ModuleSA, create pcd -> ModuleSA mappings.\r
      */\r
@@ -557,6 +562,9 @@ public class FpdFileContents {
             do {\r
                 PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData pcdData = (PcdBuildDefinitionDocument.PcdBuildDefinition.PcdData)cursor.getObject();\r
                 if (pcdData.getCName().equals(cName) && pcdData.getTokenSpaceGuidCName().equals(tsGuid)) {\r
+                    //\r
+                    // change item type while not updating dynPcdData????\r
+                    //\r
                     pcdData.setItemType(PcdItemTypes.Enum.forString(itemType));\r
                     if(pcdData.getDatumType().equals("VOID*")) {\r
                         pcdData.setMaxDatumSize(new Integer(maxSize));\r
@@ -1193,8 +1201,8 @@ public class FpdFileContents {
         // Using existing Pcd type, if this pcd already exists in other ModuleSA\r
         //\r
         if (pcdConsumer.size() > 0) {\r
-            String[] valPart = pcdConsumer.get(0).split(" ");\r
-            itemType = valPart[5];\r
+            \r
+            itemType = itemType (pcdConsumer.get(0));\r
         }\r
         String listValue = moduleSa.getModuleGuid() + " " + moduleSa.getModuleVersion() \r
         + " " + moduleSa.getPackageGuid() + " " + moduleSa.getPackageVersion() + " " + listToString(moduleSa.getSupArchList())\r
index 658138a2d889e0cd68bee16413715862104be846..8cf23681c1e72421eefe98130e31dba40ceb501e 100644 (file)
@@ -297,13 +297,13 @@ public class FpdModuleSA extends JDialog implements ActionListener {
     private ArrayList<String> getInstancesForClass(String cls, PackageIdentification[] depPkgList) throws Exception{\r
         ArrayList<String> al = new ArrayList<String>();\r
         \r
-        for (int i = 0; i < depPkgList.length; ++i) {\r
+//        for (int i = 0; i < depPkgList.length; ++i) {\r
             Iterator ismi = GlobalData.vModuleList.iterator();\r
             while(ismi.hasNext()) {\r
                 ModuleIdentification mi = (ModuleIdentification)ismi.next();\r
-                if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {\r
-                    continue;\r
-                }\r
+//                if (!mi.getPackageId().getGuid().equalsIgnoreCase(depPkgList[i].getGuid())) {\r
+//                    continue;\r
+//                }\r
                 String[] clsProduced = getClassProduced(mi);\r
                 \r
                 boolean isPotential = false;\r
@@ -321,10 +321,10 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                 }\r
                 if (isPotential) {\r
                     al.add(mi.getGuid() + " " + mi.getVersion() + " " + \r
-                           depPkgList[i].getGuid() + " " + depPkgList[i].getVersion());\r
+                           mi.getPackageId().getGuid() + " " + mi.getPackageId().getVersion());\r
                 }\r
             }\r
-        }\r
+//        }\r
         \r
         return al;\r
     }\r
@@ -570,13 +570,14 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                     }\r
                     else{\r
                         int selectedRow = lsm.getMinSelectionIndex();\r
-                        String cName = jTablePcd.getValueAt(selectedRow, 0)+"";\r
-                        String tsGuid = jTablePcd.getValueAt(selectedRow, 1)+"";\r
+                        String cName = model.getValueAt(selectedRow, 0)+"";\r
+                        String tsGuid = model.getValueAt(selectedRow, 1)+"";\r
+                        String itemType = model.getValueAt(selectedRow, 2)+"";\r
                         String[] pcdInfo = {"", ""};\r
                         getPcdInfo(cName, tsGuid, pcdInfo);\r
                         jTextAreaPcdHelp.setText(pcdInfo[0]);\r
                         initComboBox(pcdInfo[1]);\r
-                        jComboBoxItemType.setSelectedItem(pcdInfo[1]);\r
+                        jComboBoxItemType.setSelectedItem(itemType);\r
                         jTextFieldMaxDatumSize.setEnabled(true);\r
                         jTextFieldMaxDatumSize.setVisible(true);\r
                         jTextFieldMaxDatumSize.setText(jTablePcd.getValueAt(selectedRow, 4)+"");\r
@@ -603,9 +604,9 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                             jTextFieldMaxDatumSize.setEnabled(false);\r
                         }\r
                         \r
-                        if (!jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC") && !jTablePcd.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {\r
-                            jTextFieldPcdDefault.setText(jTablePcd.getValueAt(selectedRow, 6)+"");\r
-                            if (jTablePcd.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){\r
+                        if (!model.getValueAt(selectedRow, 2).equals("DYNAMIC") && !model.getValueAt(selectedRow, 2).equals("DYNAMIC_EX")) {\r
+                            jTextFieldPcdDefault.setText(model.getValueAt(selectedRow, 6)+"");\r
+                            if (model.getValueAt(selectedRow, 2).equals("FEATURE_FLAG")){\r
                                 jTextFieldPcdDefault.setVisible(false);\r
                                 jComboBoxFeatureFlagValue.setVisible(true);\r
                                 jComboBoxFeatureFlagValue.setSelectedItem(jTablePcd.getValueAt(selectedRow, 6)+"");\r
@@ -625,18 +626,6 @@ public class FpdModuleSA extends JDialog implements ActionListener {
                 }\r
             });\r
             \r
-            jTablePcd.getModel().addTableModelListener(new TableModelListener() {\r
-                public void tableChanged(TableModelEvent arg0) {\r
-                    // TODO Auto-generated method stub\r
-//                    int row = arg0.getFirstRow();\r
-//                    TableModel m = (TableModel)arg0.getSource();\r
-                    \r
-                    if (arg0.getType() == TableModelEvent.UPDATE){\r
-                        //update xml doc here.\r
-                        \r
-                    }\r
-                }\r
-            });\r
         }\r
         return jTablePcd;\r
     }\r
@@ -1424,6 +1413,7 @@ private JPanel getJPanelPcdFieldsThirdRow() {
         jPanelPcdFieldsThirdRow.add(jLabelPcdDefaultValue, null);\r
         jPanelPcdFieldsThirdRow.add(getJTextFieldPcdDefault(), null);\r
         jPanelPcdFieldsThirdRow.add(getJComboBoxFeatureFlagValue(), null);\r
+        jPanelPcdFieldsThirdRow.add(getJButtonUpdatePcd(), null);\r
     }\r
     return jPanelPcdFieldsThirdRow;\r
 }\r
@@ -1443,7 +1433,6 @@ private JPanel getJPanelPcdFieldsFirstRow() {
         jPanelPcdFieldsFirstRow.setLayout(flowLayout1);\r
         jPanelPcdFieldsFirstRow.add(jLabelItemType, null);\r
         jPanelPcdFieldsFirstRow.add(getJComboBoxItemType(), null);\r
-        jPanelPcdFieldsFirstRow.add(getJButtonUpdatePcd(), null);\r
     }\r
     return jPanelPcdFieldsFirstRow;\r
 }\r
@@ -1459,19 +1448,19 @@ private JComboBox getJComboBoxItemType() {
         jComboBoxItemType.addItemListener(new java.awt.event.ItemListener() {\r
             public void itemStateChanged(java.awt.event.ItemEvent e) {\r
                 int row = jTablePcd.getSelectedRow();\r
-                if (row < 0 || jTablePcd.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
+                if (row < 0 || model.getValueAt(row, 2).equals(jComboBoxItemType.getSelectedItem())) {\r
                     return;\r
                 }\r
                 if (jComboBoxItemType.getItemCount() == 3) {\r
                     if (!jComboBoxItemType.getSelectedItem().equals("DYNAMIC")) {\r
-                        pcdDynamicToNonDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");\r
+                        pcdDynamicToNonDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
                         if (jComboBoxItemType.getSelectedItem().equals("FIXED_AT_BUILD")) {\r
                             jTextFieldPcdDefault.setText("");\r
                             jTextFieldPcdDefault.setEnabled(true);\r
                         }\r
                     }\r
                     else{\r
-                        pcdNonDynamicToDynamic(jTablePcd.getValueAt(row, 0)+"", jTablePcd.getValueAt(row, 1)+"");\r
+                        pcdNonDynamicToDynamic(model.getValueAt(row, 0)+"", model.getValueAt(row, 1)+"");\r
                     }\r
                 }\r
             }\r
@@ -1495,11 +1484,10 @@ private void pcdDynamicToNonDynamic(String cName, String tsGuid) {
     \r
     ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
     for (int i = 0; i < al.size(); ++i) {\r
-        String[] s = al.get(i).split(" ");\r
-        String mKey = s[0] + s[1] + s[2] + s[3];\r
+        String mKey = moduleInfo (al.get(i));\r
         ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", maxSize, value);\r
-        s[4] = jComboBoxItemType.getSelectedItem()+"";\r
-        al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);\r
+        String itemType = jComboBoxItemType.getSelectedItem()+"";\r
+        al.set(i, mKey + " " + itemType);\r
     }\r
     \r
     ffc.removeDynamicPcdBuildData(cName, tsGuid);\r
@@ -1508,11 +1496,10 @@ private void pcdDynamicToNonDynamic(String cName, String tsGuid) {
 private void pcdNonDynamicToDynamic(String cName, String tsGuid) {\r
     ArrayList<String> al = ffc.getDynPcdMapValue(cName + " " + tsGuid);\r
     for (int i = 0; i < al.size(); ++i) {\r
-        String[] s = al.get(i).split(" ");\r
-        String mKey = s[0] + " " + s[1]+ " " + s[2] + " " + s[3];\r
+        String mKey = moduleInfo (al.get(i));\r
         ffc.updatePcdData(mKey, cName, tsGuid, jComboBoxItemType.getSelectedItem()+"", jTextFieldMaxDatumSize.getText(), jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
-        s[4] = jComboBoxItemType.getSelectedItem()+"";\r
-        al.set(i, s[0]+" "+s[1]+" "+s[2]+" "+s[3]+" "+s[4]);\r
+        String itemType = jComboBoxItemType.getSelectedItem()+"";\r
+        al.set(i, mKey + " " + itemType);\r
     }\r
     try{\r
         ffc.addDynamicPcdBuildData(cName, jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 3), tsGuid, "DYNAMIC", jTablePcd.getValueAt(jTablePcd.getSelectedRow(), 5)+"", jTextFieldPcdDefault.isVisible() ? jTextFieldPcdDefault.getText() : jComboBoxFeatureFlagValue.getSelectedItem()+"");\r
@@ -1521,6 +1508,12 @@ private void pcdNonDynamicToDynamic(String cName, String tsGuid) {
         JOptionPane.showMessageDialog(frame, "PCD value format: " + e.getMessage());\r
     }\r
 }\r
+\r
+private String moduleInfo (String pcdInfo) {\r
+    \r
+    return pcdInfo.substring(0, pcdInfo.lastIndexOf(" "));\r
+}\r
+\r
 /**\r
  * This method initializes jTextFieldMaxDatumSize\r
  *     \r