]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1. Fix the bug missing TokenSpaceGuidCName when editing a pcd entry in Msa
authorhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Jul 2006 05:44:56 +0000 (05:44 +0000)
committerhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Jul 2006 05:44:56 +0000 (05:44 +0000)
2. Fix the bug missing EventType selection when editing events in Msa
3. Fix the bug missing adding new node under moduledescription when creating a new package
4. Fix the bug in DataValidation

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

13 files changed:
Tools/Source/FrameworkWizard/FrameworkWizard.msa
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/DataValidation.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/Events/EventsIdentification.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdCodedVector.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleDefinitions.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/ModuleEvents.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/MsaHeader.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/EventsDlg.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/module/ui/dialog/PCDsDlg.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdHeader.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/WorkspaceTools.java

index 233289b30816620aeb0b3345a53cb3addc5295a2..b007e09d39bd6e5bcb8bfbc945e83af63a6cc331 100644 (file)
@@ -127,6 +127,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/PackageDependencies/PackageDependenciesVector.java</Filename>\r
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdCodedIdentification.java</Filename>\r
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdCodedVector.java</Filename>\r
+    <Filename>src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdIdentification.java</Filename>\r
+    <Filename>src/org/tianocore/frameworkwizard/module/Identifications/PcdCoded/PcdVector.java</Filename>\r
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/Ppis/PpisIdentification.java</Filename>\r
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/Ppis/PpisVector.java</Filename>\r
     <Filename>src/org/tianocore/frameworkwizard/module/Identifications/Protocols/ProtocolsIdentification.java</Filename>\r
index 1da3259e9ace3e9879cc39275263426716ebe72f..71e50f38449df866caac5eb8aaf0203116332ad1 100644 (file)
@@ -1795,7 +1795,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             int result = cso.showDialog();\r
             if (result == DataType.RETURN_TYPE_OK) {\r
                 String strReturn = "Create Far Done!";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
+                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                              JOptionPane.INFORMATION_MESSAGE);\r
             }\r
             cso.dispose();\r
         }\r
@@ -1805,7 +1806,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             int result = iso.showDialog();\r
             if (result == DataType.RETURN_TYPE_OK) {\r
                 String strReturn = "<html>Install Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
+                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                              JOptionPane.INFORMATION_MESSAGE);\r
                 this.closeAll();\r
             }\r
             iso.dispose();\r
@@ -1816,7 +1818,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             int result = dso.showDialog();\r
             if (result == DataType.RETURN_TYPE_OK) {\r
                 String strReturn = "<html>Delete Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
+                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                              JOptionPane.INFORMATION_MESSAGE);\r
                 this.closeAll();\r
             }\r
             dso.dispose();\r
@@ -1827,7 +1830,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             int result = uso.showDialog();\r
             if (result == DataType.RETURN_TYPE_OK) {\r
                 String strReturn = "<html>Update Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
+                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                              JOptionPane.INFORMATION_MESSAGE);\r
                 this.closeAll();\r
             }\r
             uso.dispose();\r
@@ -2872,13 +2876,23 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                     e.printStackTrace();\r
                 }\r
                 vPackageList.addElement(smb.getPid());\r
+\r
                 //\r
-                // Add new SpdHeader node to the tree\r
+                // Add to Module Description node\r
                 //\r
                 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),\r
-                                                                           IDefaultMutableTreeNode.SPD_HEADER, true,\r
-                                                                           vPackageList.lastElement());\r
+                                                                           IDefaultMutableTreeNode.MODULE_PACKAGE,\r
+                                                                           false, vPackageList.lastElement());\r
+\r
+                iTree.addNode(dmtnModuleDescription, node);\r
+\r
+                //\r
+                // Add new SpdHeader node to the tree\r
+                //\r
+                node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),\r
+                                                   IDefaultMutableTreeNode.SPD_HEADER, true, vPackageList.lastElement());\r
                 iTree.addNode(dmtnPackageDescription, node);\r
+\r
                 this.openPackage(smb.getPid().getPath());\r
             }\r
         } else if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
index 402f4284d3e499f5dbabca5750677b5d7b36009e..aeff9ac2c627228514e2a39669aad9964a8b5f36 100644 (file)
@@ -309,7 +309,7 @@ public class DataValidation {
      \r
      **/\r
     public static boolean isHexWordArrayType(String arg0) {\r
-        return isMatch("((\\s)*0x([a-fA-F0-9]){4}(,)?(\\s)*)+", arg0);\r
+        return arg0.length() <=6 && isMatch("((\\s)*0x([a-fA-F0-9]){4}(,)?(\\s)*)+", arg0);\r
     }\r
 \r
     /**\r
index 8cb8dc030286f5113ab8cca65ba51be8cf21fd28..0bfca453cdf9eca2f76e17b9b71059b264c3f248 100644 (file)
@@ -28,6 +28,8 @@ import javax.swing.JList;
 import javax.swing.JOptionPane;\r
 \r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\r
 import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
 import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
 \r
@@ -50,25 +52,25 @@ public class Tools {
      **/\r
     public static void main(String[] args) {\r
         System.out.println(getCurrentDateTime());\r
-//        Vector<String> v = new Vector<String>();\r
-//        Vector<String> v1 = new Vector<String>();\r
-//        \r
-//        v.addElement("CAC");\r
-//        v1.addElement("1111");\r
-//        v.addElement("1AC");\r
-//        v1.addElement("2222");\r
-//        v.addElement("ABC");\r
-//        v1.addElement("3333");\r
-//        v.addElement("0C");\r
-//        v1.addElement("4444");\r
-//        v.addElement("AAC");\r
-//        v1.addElement("5555");\r
-//        Vector<Integer> vs = new Vector<Integer>();\r
-//        vs = Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending);\r
-//        Tools.sortVectorString(v1, Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending));\r
-//        \r
-//        Tools.sortVectorString(v, DataType.Sort_Type_Ascending);\r
-//        Tools.sortVectorString(v, DataType.Sort_Type_Descending);\r
+        //        Vector<String> v = new Vector<String>();\r
+        //        Vector<String> v1 = new Vector<String>();\r
+        //        \r
+        //        v.addElement("CAC");\r
+        //        v1.addElement("1111");\r
+        //        v.addElement("1AC");\r
+        //        v1.addElement("2222");\r
+        //        v.addElement("ABC");\r
+        //        v1.addElement("3333");\r
+        //        v.addElement("0C");\r
+        //        v1.addElement("4444");\r
+        //        v.addElement("AAC");\r
+        //        v1.addElement("5555");\r
+        //        Vector<Integer> vs = new Vector<Integer>();\r
+        //        vs = Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending);\r
+        //        Tools.sortVectorString(v1, Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending));\r
+        //        \r
+        //        Tools.sortVectorString(v, DataType.Sort_Type_Ascending);\r
+        //        Tools.sortVectorString(v, DataType.Sort_Type_Descending);\r
     }\r
 \r
     /**\r
@@ -166,27 +168,27 @@ public class Tools {
             }\r
         }\r
     }\r
-    \r
+\r
     /**\r
-    Generate selection items for JList by input vector\r
-    \r
-    **/\r
-   public static void generateListByVector(JList jl, Vector<String> vector) {\r
-       if (jl != null) {\r
-           DefaultListModel listModel = (DefaultListModel) jl.getModel();\r
-           listModel.removeAllElements();\r
-           \r
-           if (vector != null) {\r
-               for (int index = 0; index < vector.size(); index++) {\r
-                   listModel.addElement(vector.get(index));\r
-               }\r
-           }\r
-           \r
-           if (listModel.size() > 0) {\r
-               jl.setSelectedIndex(0);\r
-           }\r
-       }\r
-   }\r
+     Generate selection items for JList by input vector\r
+     \r
+     **/\r
+    public static void generateListByVector(JList jl, Vector<String> vector) {\r
+        if (jl != null) {\r
+            DefaultListModel listModel = (DefaultListModel) jl.getModel();\r
+            listModel.removeAllElements();\r
+\r
+            if (vector != null) {\r
+                for (int index = 0; index < vector.size(); index++) {\r
+                    listModel.addElement(vector.get(index));\r
+                }\r
+            }\r
+\r
+            if (listModel.size() > 0) {\r
+                jl.setSelectedIndex(0);\r
+            }\r
+        }\r
+    }\r
 \r
     /**\r
      Get path only from a path\r
@@ -395,7 +397,7 @@ public class Tools {
                     String tempStr = v.get(indexI);\r
                     v.setElementAt(v.get(indexJ), indexI);\r
                     v.setElementAt(tempStr, indexJ);\r
-                    \r
+\r
                     //\r
                     // Swap sequences\r
                     //\r
@@ -427,14 +429,14 @@ public class Tools {
             }\r
         }\r
     }\r
-    \r
+\r
     /**\r
      Sort all modules\r
      \r
      @param v\r
      @param mode\r
-    \r
-    **/\r
+     \r
+     **/\r
     public static void sortModules(Vector<ModuleIdentification> v, int mode) {\r
         if (v != null) {\r
             //\r
@@ -452,54 +454,79 @@ public class Tools {
             }\r
         }\r
     }\r
+\r
+    /**\r
+     Sort all packages\r
+     \r
+     @param v\r
+     @param mode\r
+     \r
+     **/\r
+    public static void sortPackages(Vector<PackageIdentification> v, int mode) {\r
+        if (v != null) {\r
+            //\r
+            // sort by name\r
+            //\r
+            for (int indexI = 0; indexI < v.size(); indexI++) {\r
+                for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+                    if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+                        || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+                        PackageIdentification temp = v.get(indexI);\r
+                        v.setElementAt(v.get(indexJ), indexI);\r
+                        v.setElementAt(temp, indexJ);\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     Sort all platforms\r
+     \r
+     @param v\r
+     @param mode\r
+     \r
+     **/\r
+    public static void sortPlatforms(Vector<PlatformIdentification> v, int mode) {\r
+        if (v != null) {\r
+            //\r
+            // sort by name\r
+            //\r
+            for (int indexI = 0; indexI < v.size(); indexI++) {\r
+                for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+                    if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+                        || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+                        PlatformIdentification temp = v.get(indexI);\r
+                        v.setElementAt(v.get(indexJ), indexI);\r
+                        v.setElementAt(temp, indexJ);\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
     \r
     /**\r
-    Sort all packages\r
+     Sort all pcd entries\r
+     \r
+     @param v\r
+     @param mode\r
     \r
-    @param v\r
-    @param mode\r
-   \r
-   **/\r
-   public static void sortPackages(Vector<PackageIdentification> v, int mode) {\r
-       if (v != null) {\r
-           //\r
-           // sort by name\r
-           //\r
-           for (int indexI = 0; indexI < v.size(); indexI++) {\r
-               for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
-                   if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
-                       || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
-                       PackageIdentification temp = v.get(indexI);\r
-                       v.setElementAt(v.get(indexJ), indexI);\r
-                       v.setElementAt(temp, indexJ);\r
-                   }\r
-               }\r
-           }\r
-       }\r
-   }\r
-   \r
-   /**\r
-   Sort all platforms\r
-   \r
-   @param v\r
-   @param mode\r
-  \r
-  **/\r
-  public static void sortPlatforms(Vector<PlatformIdentification> v, int mode) {\r
-      if (v != null) {\r
-          //\r
-          // sort by name\r
-          //\r
-          for (int indexI = 0; indexI < v.size(); indexI++) {\r
-              for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
-                  if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
-                      || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
-                      PlatformIdentification temp = v.get(indexI);\r
-                      v.setElementAt(v.get(indexJ), indexI);\r
-                      v.setElementAt(temp, indexJ);\r
-                  }\r
-              }\r
-          }\r
-      }\r
-  }\r
+    **/\r
+    public static void sortPcds(PcdVector v, int mode) {\r
+        if (v != null) {\r
+            //\r
+            // sort by name\r
+            //\r
+            for (int indexI = 0; indexI < v.size(); indexI++) {\r
+                for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+                    if ((v.getPcd(indexJ).getName().compareTo(v.getPcd(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+                        || (v.getPcd(indexI).getName().compareTo(v.getPcd(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+                        PcdIdentification temp = v.getPcd(indexI);\r
+                        v.setPcd(v.getPcd(indexJ), indexI);\r
+                        v.setPcd(temp, indexJ);\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
 }\r
index 569123232d1f45e227cb4518a4cd2e5e734dea3e..24e168335deff0760eb58553fd7a8545210dce87 100644 (file)
@@ -33,14 +33,17 @@ public class EventsIdentification {
     private String featureFlag = null;\r
     \r
     private String help = null;\r
+    \r
+    private String group = null;\r
 \r
-    public EventsIdentification(String arg0, String arg1, String arg2, String arg3, Vector<String> arg4, String arg5) {\r
+    public EventsIdentification(String arg0, String arg1, String arg2, String arg3, Vector<String> arg4, String arg5, String arg6) {\r
         this.name = (arg0 == null ? "" : arg0);\r
         this.type = (arg1 == null ? "" : arg1);\r
         this.usage = (arg2 == null ? "" : arg2);\r
         this.featureFlag = (arg3 == null ? "" : arg3);\r
         this.supArchList = arg4;\r
         this.help = (arg5 == null ? "" : arg5);\r
+        this.group = (arg6 == null ? "" : arg6);\r
     }\r
 \r
     public String getFeatureFlag() {\r
@@ -97,4 +100,12 @@ public class EventsIdentification {
     public void setHelp(String help) {\r
         this.help = help;\r
     }\r
+\r
+    public String getGroup() {\r
+        return group;\r
+    }\r
+\r
+    public void setGroup(String group) {\r
+        this.group = group;\r
+    }\r
 }\r
index 7d8529f4e27861c6426d035f82768d08de02a902..e5d6e9186eb797d23910e621037da513aa73786c 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
  \r
- The file is used to define Package Dependencies Vector\r
+ The file is used to define PcdCoded Vector\r
  \r
  Copyright (c) 2006, Intel Corporation\r
  All rights reserved. This program and the accompanying materials\r
index 8fd573cc1c55b813a0075c3df73e04480df2d66e..5732035c1e9443a90d6e986f5ba9e68a21729fe1 100644 (file)
@@ -26,7 +26,6 @@ import javax.swing.JComboBox;
 import org.tianocore.ModuleDefinitionsDocument;\r
 import org.tianocore.ModuleSurfaceAreaDocument;\r
 import org.tianocore.ModuleDefinitionsDocument.ModuleDefinitions.ClonedFrom;\r
-import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
 import org.tianocore.frameworkwizard.common.EnumerationData;\r
 import org.tianocore.frameworkwizard.common.Log;\r
@@ -137,7 +136,12 @@ public class ModuleDefinitions extends IInternalFrame {
         if (iCheckBoxListArch == null) {\r
             iCheckBoxListArch = new ICheckBoxList();\r
             iCheckBoxListArch.addFocusListener(this);\r
-            iCheckBoxListArch.setToolTipText(DataType.SUP_ARCH_LIST_HELP_TEXT);\r
+            iCheckBoxListArch.setToolTipText("<html>Deselecting a checkbox will restrict this module<br>" +\r
+                    "for use with the selected architectures, <br>" +\r
+                    "based on the list of items that are checked. <br>" +\r
+                    "If all boxes are checked, <br>" +\r
+                    "then the module will support all <br>" +\r
+                    "current AND FUTURE architectures</html>");\r
         }\r
         return iCheckBoxListArch;\r
     }\r
@@ -153,7 +157,14 @@ public class ModuleDefinitions extends IInternalFrame {
             jComboBoxBinaryModule.setBounds(new java.awt.Rectangle(160, 35, 320, 20));\r
             jComboBoxBinaryModule.setPreferredSize(new java.awt.Dimension(320, 20));\r
             jComboBoxBinaryModule.addFocusListener(this);\r
-            jComboBoxBinaryModule.setToolTipText("Modules are either source modules which can be compiled or binary modules which are linked.  A module cannot contain both.  The GUID numbers should be identical for a binary and source MSA, but the BINARY MSA should have a higher version number.");\r
+            jComboBoxBinaryModule.setToolTipText("<html>Modules are either source modules <br>" +\r
+                                                 "which can be compiled or binary <br>" +\r
+                                                 "modules which are linked.  <br>" +\r
+                                                 "A module cannot contain both. <br>" +\r
+                                                 "The GUID numbers should be identical <br>" +\r
+                                                 "for a binary and source MSA, <br>" +\r
+                                                 "but the BINARY MSA should have <br>" +\r
+                                                 "a higher version number.</html>");\r
         }\r
         return jComboBoxBinaryModule;\r
     }\r
index 676b7acc4eb71cd611d1bb0b30a1a4f706f38e18..52d4ff99533838e23015b973490dac698a3ed8cc 100644 (file)
@@ -27,6 +27,7 @@ import javax.swing.JTable;
 import javax.swing.ListSelectionModel;\r
 import javax.swing.event.ListSelectionEvent;\r
 \r
+import org.tianocore.EventTypes;\r
 import org.tianocore.EventsDocument;\r
 import org.tianocore.ProtocolNotifyUsage;\r
 import org.tianocore.ProtocolUsage;\r
@@ -239,7 +240,8 @@ public class ModuleEvents extends IInternalFrame {
                         Vector<String> arg4 = Tools.convertListToVector(events.getCreateEvents().getEventTypesList()\r
                                                                               .get(index).getSupArchList());\r
                         String arg5 = events.getCreateEvents().getEventTypesList().get(index).getHelpText();\r
-                        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+                        String arg6 = events.getCreateEvents().getEventTypesList().get(index).getEventType().toString();\r
+                        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
                         vid.addEvents(id);\r
                     }\r
                 }\r
@@ -258,7 +260,8 @@ public class ModuleEvents extends IInternalFrame {
                         Vector<String> arg4 = Tools.convertListToVector(events.getSignalEvents().getEventTypesList()\r
                                                                               .get(index).getSupArchList());\r
                         String arg5 = events.getSignalEvents().getEventTypesList().get(index).getHelpText();\r
-                        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+                        String arg6 = events.getSignalEvents().getEventTypesList().get(index).getEventType().toString();\r
+                        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
                         vid.addEvents(id);\r
                     }\r
                 }\r
@@ -422,6 +425,9 @@ public class ModuleEvents extends IInternalFrame {
                         if (!isEmpty(vid.getEvents(index).getHelp())) {\r
                             e.setHelpText(vid.getEvents(index).getHelp());\r
                         }\r
+                        if (!isEmpty(vid.getEvents(index).getGroup())) {\r
+                            e.setEventType(EventTypes.Enum.forString(vid.getEvents(index).getGroup()));\r
+                        }\r
                         ce.addNewEventTypes();\r
                         ce.setEventTypesArray(ce.getEventTypesList().size() - 1, e);\r
                     }\r
@@ -443,6 +449,9 @@ public class ModuleEvents extends IInternalFrame {
                         if (!isEmpty(vid.getEvents(index).getHelp())) {\r
                             e.setHelpText(vid.getEvents(index).getHelp());\r
                         }\r
+                        if (!isEmpty(vid.getEvents(index).getGroup())) {\r
+                            e.setEventType(EventTypes.Enum.forString(vid.getEvents(index).getGroup()));\r
+                        }\r
                         se.addNewEventTypes();\r
                         se.setEventTypesArray(ce.getEventTypesList().size() - 1, e);\r
                     }\r
index 250eb9da2d40cded39cc54f671c364f8b35c8f73..c529bc02070b6937f8e992115d02216963582e58 100644 (file)
@@ -27,6 +27,7 @@ import javax.swing.JScrollPane;
 import javax.swing.JTextArea;\r
 import javax.swing.JTextField;\r
 \r
+import org.tianocore.ModuleDefinitionsDocument;\r
 import org.tianocore.ModuleSurfaceAreaDocument;\r
 import org.tianocore.ModuleTypeDef;\r
 import org.tianocore.MsaHeaderDocument;\r
@@ -134,6 +135,8 @@ public class MsaHeader extends IInternalFrame {
     private JScrollPane jScrollPane = null;\r
 \r
     private OpeningModuleType omt = null;\r
+    \r
+    private EnumerationData ed = new EnumerationData();\r
 \r
     /**\r
      This method initializes jTextFieldBaseName \r
@@ -235,6 +238,8 @@ public class MsaHeader extends IInternalFrame {
             jTextAreaDescription.setLineWrap(true);\r
             jTextAreaDescription.addFocusListener(this);\r
             jTextAreaDescription.setToolTipText("A verbose description of the module");\r
+            jTextAreaDescription.setSelectionStart(0);\r
+            jTextAreaDescription.setSelectionEnd(0);\r
         }\r
         return jTextAreaDescription;\r
     }\r
@@ -436,6 +441,17 @@ public class MsaHeader extends IInternalFrame {
         super();\r
         this.omt = inMsa;\r
         this.msa = omt.getXmlMsa();\r
+        \r
+        //      \r
+        // Set module definitions default value\r
+        //\r
+        if (msa.getModuleDefinitions() == null) {\r
+            ModuleDefinitionsDocument.ModuleDefinitions md = ModuleDefinitionsDocument.ModuleDefinitions.Factory.newInstance();\r
+            md.setOutputFileBasename(msa.getMsaHeader().getModuleName());\r
+            md.setBinaryModule(false);\r
+            md.setSupportedArchitectures(ed.getVSupportedArchitectures());\r
+            msa.setModuleDefinitions(md);\r
+        }\r
         init(msa.getMsaHeader());\r
         this.setVisible(true);\r
         this.setViewMode(false);\r
@@ -506,12 +522,16 @@ public class MsaHeader extends IInternalFrame {
             }\r
             if (this.msaHeader.getDescription() != null) {\r
                 this.jTextAreaDescription.setText(this.msaHeader.getDescription());\r
+                jTextAreaDescription.setSelectionStart(0);\r
+                jTextAreaDescription.setSelectionEnd(0);\r
             }\r
             if (this.msaHeader.getCopyright() != null) {\r
                 this.jTextFieldCopyright.setText(this.msaHeader.getCopyright());\r
             }\r
             if (this.msaHeader.getLicense() != null) {\r
                 this.jTextAreaLicense.setText(this.msaHeader.getLicense().getStringValue());\r
+                jTextAreaLicense.setSelectionStart(0);\r
+                jTextAreaLicense.setSelectionEnd(0);\r
             }\r
             if (this.msaHeader.getLicense() != null && this.msaHeader.getLicense().getURL() != null) {\r
                 this.jTextFieldURL.setText(this.msaHeader.getLicense().getURL());\r
@@ -795,6 +815,7 @@ public class MsaHeader extends IInternalFrame {
             //            this.msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
 \r
             msaHeader.setSpecification(this.jTextFieldSpecification.getText());\r
+            msaHeader.setModuleType(ModuleTypeDef.Enum.forString(jComboBoxModuleType.getSelectedItem().toString()));\r
             msa.setMsaHeader(msaHeader);\r
             this.omt.setSaved(false);\r
         } catch (Exception e) {\r
@@ -880,7 +901,7 @@ public class MsaHeader extends IInternalFrame {
         // Check Module Type\r
         //\r
         if (arg0.getSource() == this.jComboBoxModuleType) {\r
-            msaHeader.setModuleType(ModuleTypeDef.Enum.forString(jComboBoxModuleType.getSelectedItem().toString()));\r
+            //msaHeader.setModuleType(ModuleTypeDef.Enum.forString(jComboBoxModuleType.getSelectedItem().toString()));\r
         }\r
 \r
         //\r
@@ -956,7 +977,7 @@ public class MsaHeader extends IInternalFrame {
                 //this.jTextFieldCopyright.requestFocus();\r
                 return;\r
             }\r
-            this.msaHeader.setDescription(this.jTextFieldCopyright.getText());\r
+            this.msaHeader.setCopyright(this.jTextFieldCopyright.getText());\r
         }\r
 \r
         //\r
index 11510fd4b3a0515416deb56840ee004ef85a3c96..663397d9c61644815d1418a33e776ae11fb5532d 100644 (file)
@@ -62,12 +62,18 @@ public class EventsDlg extends IDialog {
     private JComboBox jComboBoxGuidC_Name = null;\r
 \r
     private JLabel jLabelUsage = null;\r
+    \r
+    private JLabel jLabelGroup = null;\r
 \r
     private JComboBox jComboBoxUsage = null;\r
+    \r
+    private JComboBox jComboBoxEventGroup = null;\r
 \r
     private StarLabel jStarLabel1 = null;\r
 \r
     private StarLabel jStarLabel2 = null;\r
+    \r
+    private StarLabel jStarLabel3 = null;\r
 \r
     private JComboBox jComboBoxEventsType = null;\r
 \r
@@ -123,26 +129,42 @@ public class EventsDlg extends IDialog {
     private JComboBox getJComboBoxUsage() {\r
         if (jComboBoxUsage == null) {\r
             jComboBoxUsage = new JComboBox();\r
-            jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+            jComboBoxUsage.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
             jComboBoxUsage.setPreferredSize(new java.awt.Dimension(320, 20));\r
         }\r
         return jComboBoxUsage;\r
     }\r
+    \r
+    /**\r
+    This method initializes jComboBoxType \r
+    \r
+    @return javax.swing.JComboBox jComboBoxType\r
+    \r
+    **/\r
+   private JComboBox getJComboBoxEventsType() {\r
+       if (jComboBoxEventsType == null) {\r
+           jComboBoxEventsType = new JComboBox();\r
+           jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
+           jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20));\r
+           jComboBoxEventsType\r
+           .setToolTipText("<html>Select Create event if the Module has an event that<br> is waiting to be signaled.  Select Signal if the Module will signal all events in an event group.  Signal Event The events are named by GUID.</html>");\r
+       }\r
+       return jComboBoxEventsType;\r
+   }\r
 \r
     /**\r
      * This method initializes jComboBoxEventsType     \r
      *         \r
      * @return javax.swing.JComboBox   \r
      */\r
-    private JComboBox getJComboBoxEventsType() {\r
-        if (jComboBoxEventsType == null) {\r
-            jComboBoxEventsType = new JComboBox();\r
-            jComboBoxEventsType.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
-            jComboBoxEventsType.setPreferredSize(new java.awt.Dimension(320, 20));\r
-            jComboBoxEventsType\r
-                               .setToolTipText("Select Create event if the Module has an event that is waiting to be signaled.  Select Signal if the Module will signal all events in an event group.  Signal Event The events are named by GUID.");\r
+    private JComboBox getJComboBoxEventGroup() {\r
+        if (jComboBoxEventGroup == null) {\r
+            jComboBoxEventGroup = new JComboBox();\r
+            jComboBoxEventGroup.setBounds(new java.awt.Rectangle(160, 60, 320, 20));\r
+            jComboBoxEventGroup.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            \r
         }\r
-        return jComboBoxEventsType;\r
+        return jComboBoxEventGroup;\r
     }\r
 \r
     /**\r
@@ -166,7 +188,7 @@ public class EventsDlg extends IDialog {
     private JTextField getJTextFieldFeatureFlag() {\r
         if (jTextFieldFeatureFlag == null) {\r
             jTextFieldFeatureFlag = new JTextField();\r
-            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
+            jTextFieldFeatureFlag.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
             jTextFieldFeatureFlag.setPreferredSize(new java.awt.Dimension(320, 20));\r
         }\r
         return jTextFieldFeatureFlag;\r
@@ -181,7 +203,7 @@ public class EventsDlg extends IDialog {
     private JTextField getJTextFieldHelpText() {\r
         if (jTextFieldHelpText == null) {\r
             jTextFieldHelpText = new JTextField();\r
-            jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 85, 320, 20));\r
+            jTextFieldHelpText.setBounds(new java.awt.Rectangle(160, 110, 320, 20));\r
             jTextFieldHelpText.setPreferredSize(new java.awt.Dimension(320, 20));\r
         }\r
         return jTextFieldHelpText;\r
@@ -196,7 +218,7 @@ public class EventsDlg extends IDialog {
     private JButton getJButtonOk() {\r
         if (jButtonOk == null) {\r
             jButtonOk = new JButton();\r
-            jButtonOk.setBounds(new java.awt.Rectangle(290, 165, 90, 20));\r
+            jButtonOk.setBounds(new java.awt.Rectangle(290, 190, 90, 20));\r
             jButtonOk.setText("Ok");\r
             jButtonOk.addActionListener(this);\r
         }\r
@@ -212,7 +234,7 @@ public class EventsDlg extends IDialog {
     private JButton getJButtonCancel() {\r
         if (jButtonCancel == null) {\r
             jButtonCancel = new JButton();\r
-            jButtonCancel.setBounds(new java.awt.Rectangle(390, 165, 90, 20));\r
+            jButtonCancel.setBounds(new java.awt.Rectangle(390, 190, 90, 20));\r
             jButtonCancel.setText("Cancel");\r
             jButtonCancel.addActionListener(this);\r
         }\r
@@ -228,7 +250,7 @@ public class EventsDlg extends IDialog {
      \r
      **/\r
     private void init() {\r
-        this.setSize(500, 225);\r
+        this.setSize(500, 255);\r
         this.setContentPane(getJScrollPane());\r
         this.setTitle("Events");\r
         initFrame();\r
@@ -255,6 +277,7 @@ public class EventsDlg extends IDialog {
 \r
             jTextFieldFeatureFlag.setText(id.getFeatureFlag());\r
             this.jArchCheckBox.setSelectedItems(id.getSupArchList());\r
+            this.jComboBoxEventGroup.setSelectedItem(id.getGroup());\r
         }\r
     }\r
 \r
@@ -295,29 +318,33 @@ public class EventsDlg extends IDialog {
             jArchCheckBox.setBounds(new java.awt.Rectangle(160, 135, 320, 20));\r
             jArchCheckBox.setPreferredSize(new java.awt.Dimension(320, 20));\r
             jLabelFeatureFlag = new JLabel();\r
-            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 110, 140, 20));\r
+            jLabelFeatureFlag.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
             jLabelFeatureFlag.setText("Feature Flag");\r
             jLabelArch = new JLabel();\r
-            jLabelArch.setBounds(new java.awt.Rectangle(15, 135, 140, 20));\r
+            jLabelArch.setBounds(new java.awt.Rectangle(15, 160, 140, 20));\r
             jLabelArch.setText("Arch");\r
             jLabelUsage = new JLabel();\r
             jLabelUsage.setText("Usage");\r
-            jLabelUsage.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
+            jLabelUsage.setBounds(new java.awt.Rectangle(15, 85, 140, 20));\r
             jLabelC_Name = new JLabel();\r
             jLabelC_Name.setText("Guid C_Name");\r
             jLabelC_Name.setBounds(new java.awt.Rectangle(15, 35, 140, 20));\r
+            jLabelGroup = new JLabel();\r
+            jLabelGroup.setText("Even Type");\r
+            jLabelGroup.setBounds(new java.awt.Rectangle(15, 60, 140, 20));\r
             jLabelEventType = new JLabel();\r
-            jLabelEventType.setText("Event Type");\r
+            jLabelEventType.setText("Type");\r
             jLabelEventType.setBounds(new java.awt.Rectangle(15, 10, 140, 20));\r
             jLabelHelpText = new JLabel();\r
-            jLabelHelpText.setBounds(new java.awt.Rectangle(14, 85, 140, 20));\r
+            jLabelHelpText.setBounds(new java.awt.Rectangle(14, 110, 140, 20));\r
             jLabelHelpText.setText("Help Text");\r
 \r
             jContentPane = new JPanel();\r
             jContentPane.setLayout(null);\r
-            jContentPane.setPreferredSize(new java.awt.Dimension(490, 190));\r
+            jContentPane.setPreferredSize(new java.awt.Dimension(490, 220));\r
 \r
             jContentPane.add(jLabelEventType, null);\r
+            jContentPane.add(jLabelGroup, null);\r
             jContentPane.add(jLabelC_Name, null);\r
             jContentPane.add(getJComboBoxGuidC_Name(), null);\r
             jContentPane.add(jLabelUsage, null);\r
@@ -326,9 +353,12 @@ public class EventsDlg extends IDialog {
             jStarLabel1.setBounds(new java.awt.Rectangle(0, 10, 10, 20));\r
             jStarLabel2 = new StarLabel();\r
             jStarLabel2.setBounds(new java.awt.Rectangle(0, 35, 10, 20));\r
-\r
+            jStarLabel3 = new StarLabel();\r
+            jStarLabel3.setBounds(new java.awt.Rectangle(0, 60, 10, 20));\r
+            \r
             jContentPane.add(jStarLabel1, null);\r
             jContentPane.add(jStarLabel2, null);\r
+            jContentPane.add(jStarLabel3, null);\r
             jContentPane.add(getJComboBoxEventsType(), null);\r
 \r
             jContentPane.add(jLabelArch, null);\r
@@ -339,6 +369,7 @@ public class EventsDlg extends IDialog {
             jContentPane.add(jArchCheckBox, null);\r
             jContentPane.add(getJButtonOk(), null);\r
             jContentPane.add(getJButtonCancel(), null);\r
+            jContentPane.add(getJComboBoxEventGroup(), null);\r
         }\r
         return jContentPane;\r
     }\r
@@ -349,6 +380,7 @@ public class EventsDlg extends IDialog {
      **/\r
     private void initFrame() {\r
         Tools.generateComboBoxByVector(jComboBoxEventsType, ed.getVEventType());\r
+        Tools.generateComboBoxByVector(jComboBoxEventGroup, ed.getVEventGroup());\r
         Tools.generateComboBoxByVector(jComboBoxUsage, ed.getVEventUsage());\r
         Tools.generateComboBoxByVector(jComboBoxGuidC_Name, wt.getAllGuidDeclarationsFromWorkspace());\r
     }\r
@@ -422,7 +454,8 @@ public class EventsDlg extends IDialog {
         String arg3 = this.jTextFieldFeatureFlag.getText();\r
         Vector<String> arg4 = this.jArchCheckBox.getSelectedItemsVector();\r
         String arg5 = this.jTextFieldHelpText.getText();\r
-        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5);\r
+        String arg6 = this.jComboBoxEventGroup.getSelectedItem().toString();\r
+        id = new EventsIdentification(arg0, arg1, arg2, arg3, arg4, arg5, arg6);\r
         return id;\r
     }\r
 \r
index 7972926d567936eff6fe3d15f4314c3ec02ac578..463cb3cb31d8c9661ae313b2db7055716c264a5c 100644 (file)
@@ -15,6 +15,8 @@
 package org.tianocore.frameworkwizard.module.ui.dialog;\r
 \r
 import java.awt.event.ActionEvent;\r
+import java.awt.event.ItemEvent;\r
+import java.awt.event.ItemListener;\r
 import java.util.Vector;\r
 \r
 import javax.swing.JButton;\r
@@ -26,7 +28,6 @@ import javax.swing.JTextField;
 \r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
-import org.tianocore.frameworkwizard.common.EnumerationData;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.ui.ArchCheckBox;\r
@@ -34,16 +35,15 @@ import org.tianocore.frameworkwizard.common.ui.IDialog;
 import org.tianocore.frameworkwizard.common.ui.IFrame;\r
 import org.tianocore.frameworkwizard.common.ui.StarLabel;\r
 import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdCodedIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\r
 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
 \r
 /**\r
  The class is used to create, update PCD of MSA/MBD file\r
  It extends IInternalFrame\r
  \r
-\r
-\r
  **/\r
-public class PCDsDlg extends IDialog {\r
+public class PCDsDlg extends IDialog implements ItemListener {\r
 \r
     ///\r
     /// Define class Serial Version UID\r
@@ -100,10 +100,10 @@ public class PCDsDlg extends IDialog {
     //\r
     private PcdCodedIdentification id = null;\r
 \r
-    private EnumerationData ed = new EnumerationData();\r
-\r
     private WorkspaceTools wt = new WorkspaceTools();\r
 \r
+    private PcdVector pcd = wt.getAllPcdDeclarationsFromWorkspace();\r
+    \r
     /**\r
      This method initializes jComboBoxItemType \r
      \r
@@ -130,6 +130,8 @@ public class PCDsDlg extends IDialog {
             jComboBoxCName = new JComboBox();\r
             jComboBoxCName.setBounds(new java.awt.Rectangle(160, 10, 320, 20));\r
             jComboBoxCName.setPreferredSize(new java.awt.Dimension(320, 20));\r
+            jComboBoxCName.addItemListener(this);\r
+            //jComboBoxCName.addActionListener(this);\r
         }\r
         return jComboBoxCName;\r
     }\r
@@ -374,8 +376,11 @@ public class PCDsDlg extends IDialog {
      \r
      **/\r
     private void initFrame() {\r
-        Tools.generateComboBoxByVector(jComboBoxCName, wt.getAllPcdDeclarationsFromWorkspace());\r
-        Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
+        for (int index = 0; index < pcd.size(); index++) {\r
+            jComboBoxCName.addItem(pcd.getPcd(index));\r
+        }\r
+        \r
+        //Tools.generateComboBoxByVector(jComboBoxItemType, ed.getVPcdItemTypes());\r
     }\r
 \r
     /* (non-Javadoc)\r
@@ -424,12 +429,12 @@ public class PCDsDlg extends IDialog {
         //\r
         // Check TokenSpaceGuid\r
         //\r
-        //        if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
-        //            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
-        //                Log.err("Incorrect data type for Token Space C_Name");\r
-        //                return false;\r
-        //            }\r
-        //        }\r
+        if (!isEmpty(this.jTextFieldTokenSpaceGuid.getText())) {\r
+            if (!DataValidation.isC_NameType(this.jTextFieldTokenSpaceGuid.getText())) {\r
+                Log.err("Incorrect data type for the selected pcd entry, please check in in spd file");\r
+                return false;\r
+            }\r
+        }\r
 \r
         //\r
         // Check DefaultValue\r
@@ -483,4 +488,26 @@ public class PCDsDlg extends IDialog {
     public void setId(PcdCodedIdentification id) {\r
         this.id = id;\r
     }\r
+\r
+    /* (non-Javadoc)\r
+     * @see java.awt.event.ItemListener#itemStateChanged(java.awt.event.ItemEvent)\r
+     *\r
+     * Reflesh the frame when selected item changed\r
+     * \r
+     */\r
+    public void itemStateChanged(ItemEvent arg0) {\r
+        int index = this.jComboBoxCName.getSelectedIndex();\r
+        if (arg0.getSource() == this.jComboBoxCName && arg0.getStateChange() == ItemEvent.SELECTED ) {\r
+            if (pcd.getPcd(index).getGuidCName() == null || isEmpty(pcd.getPcd(index).getGuidCName())\r
+                || pcd.getPcd(index).getType() == null || pcd.getPcd(index).getHelp() == null || isEmpty(pcd.getPcd(index).getHelp())) {\r
+                Log.err("select pcd entry when editing msa", "The selected is defined incorrectly.\r\nPlease check it in spd file");\r
+            } else {\r
+                this.jTextFieldTokenSpaceGuid.setText(pcd.getPcd(index).getGuidCName());\r
+                Tools.generateComboBoxByVector(this.jComboBoxItemType, pcd.getPcd(index).getType());\r
+                this.jTextFieldHelpText.setText(pcd.getPcd(index).getHelp());\r
+                this.jTextFieldHelpText.setSelectionStart(0);\r
+                this.jTextFieldHelpText.setSelectionEnd(0);\r
+            }\r
+        }\r
+    }\r
 }\r
index 7aff45aba38c396a72b30ddde6fe42002e05a2b6..3f39727e4e0c32093d224c30c91bed0e116ecc1f 100644 (file)
@@ -503,6 +503,14 @@ public class SpdHeader extends IInternalFrame {
                 jTextFieldSpecification.setText(sfc.getSpdHdrSpec());\r
             }\r
             sfc.setSpdHdrSpec(jTextFieldSpecification.getText());\r
+            \r
+            if (!sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
+                sfc.setSpdPkgDefsRdOnly("false");\r
+            }\r
+            if (!sfc.getSpdPkgDefsRePkg().equals("true")) {\r
+                sfc.setSpdPkgDefsRePkg("false");\r
+            }\r
+            \r
     }\r
 \r
     /**\r
index 46c325e3b3b8d004debbb006baaf2d18d9d40e93..19ed62005d0b59e9c95c48f389d4d47773d69486 100644 (file)
@@ -41,6 +41,8 @@ import org.tianocore.frameworkwizard.common.Identifications.OpenFile;
 import org.tianocore.frameworkwizard.far.FarHeader;\r
 import org.tianocore.frameworkwizard.far.FarIdentification;\r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\r
 import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
 import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
 \r
@@ -538,16 +540,22 @@ public class WorkspaceTools {
      \r
      @return Vector\r
      **/\r
-    public Vector<String> getAllPcdDeclarationsFromPackage(PackageSurfaceArea spd) {\r
-        Vector<String> vector = new Vector<String>();\r
+    public PcdVector getAllPcdDeclarationsFromPackage(PackageSurfaceArea spd) {\r
+        PcdVector vector = new PcdVector();\r
         if (spd.getPcdDeclarations() != null) {\r
             if (spd.getPcdDeclarations().getPcdEntryList().size() > 0) {\r
                 for (int index = 0; index < spd.getPcdDeclarations().getPcdEntryList().size(); index++) {\r
-                    vector.addElement(spd.getPcdDeclarations().getPcdEntryList().get(index).getCName());\r
+                    String name = spd.getPcdDeclarations().getPcdEntryList().get(index).getCName();\r
+                    String guidCName = spd.getPcdDeclarations().getPcdEntryList().get(index).getTokenSpaceGuidCName();\r
+                    String help = spd.getPcdDeclarations().getPcdEntryList().get(index).getHelpText();\r
+                    Vector<String> type = Tools.convertListToVector(spd.getPcdDeclarations().getPcdEntryList()\r
+                                                                       .get(index).getValidUsage());\r
+\r
+                    vector.addPcd(new PcdIdentification(name, guidCName, help, type));\r
                 }\r
             }\r
         }\r
-        Tools.sortVectorString(vector, DataType.SORT_TYPE_ASCENDING);\r
+        Tools.sortPcds(vector, DataType.SORT_TYPE_ASCENDING);\r
         return vector;\r
     }\r
 \r
@@ -657,17 +665,16 @@ public class WorkspaceTools {
         return vector;\r
     }\r
 \r
-    public Vector<String> getAllPcdDeclarationsFromWorkspace() {\r
+    public PcdVector getAllPcdDeclarationsFromWorkspace() {\r
         //\r
         // First get all packages\r
         //\r
         this.getAllPackages();\r
 \r
-        Vector<String> vector = new Vector<String>();\r
+        PcdVector vector = new PcdVector();\r
         for (int index = 0; index < this.vPackageList.size(); index++) {\r
             try {\r
-                Vector<String> v = getAllPcdDeclarationsFromPackage(OpenFile.openSpdFile(vPackageList.get(index)\r
-                                                                                                     .getPath()));\r
+                PcdVector v = getAllPcdDeclarationsFromPackage(OpenFile.openSpdFile(vPackageList.get(index).getPath()));\r
                 if (v != null && v.size() > 0) {\r
                     vector.addAll(v);\r
                 }\r
@@ -679,7 +686,7 @@ public class WorkspaceTools {
                 // TODO Auto-generated catch block\r
             }\r
         }\r
-        Tools.sortVectorString(vector, DataType.SORT_TYPE_ASCENDING);\r
+        Tools.sortPcds(vector, DataType.SORT_TYPE_ASCENDING);\r
         return vector;\r
     }\r
 \r