]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1. Fix EDKT193 "Provide a Module tree when platform/package are open"
authorhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 7 Sep 2006 09:14:34 +0000 (09:14 +0000)
committerhche10x <hche10x@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 7 Sep 2006 09:14:34 +0000 (09:14 +0000)
2. Fix bugs in Clone

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

12 files changed:
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/Clone.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningFileType.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningModuleList.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningModuleType.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPackageList.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPackageType.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPlatformList.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Identifications/OpeningPlatformType.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/IDefaultMutableTreeNode.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/ui/ITree.java
Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/workspace/WorkspaceTools.java

index 8a6f90534f611ae048318a4622c9f67d98525e05..97f16ce40c2b65f39762b84ce1540388e0b42f4d 100644 (file)
@@ -36,6 +36,7 @@ import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.DataValidation;\r
 import org.tianocore.frameworkwizard.common.FileOperation;\r
+import org.tianocore.frameworkwizard.common.GlobalData;\r
 import org.tianocore.frameworkwizard.common.IFileFilter;\r
 import org.tianocore.frameworkwizard.common.Log;\r
 import org.tianocore.frameworkwizard.common.OpenFile;\r
@@ -752,7 +753,7 @@ public class Clone extends IDialog {
             // Update <Cloned> Section\r
             //\r
             updateModuleClonedId(msa, oldId);\r
-\r
+            \r
             //\r
             // Save to file\r
             //\r
@@ -774,6 +775,12 @@ public class Clone extends IDialog {
             // Update the db file\r
             //\r
             wt.addModuleToPackage(mid, psa);\r
+            \r
+            //\r
+            // Update GlobalData\r
+            //\r
+            GlobalData.vModuleList.addElement(mid);\r
+            GlobalData.openingModuleList.insertToOpeningModuleList(mid, msa);\r
 \r
             this.returnType = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;\r
         }\r
@@ -831,7 +838,13 @@ public class Clone extends IDialog {
             // Update the db file\r
             //\r
             wt.addPackageToDatabase(pid);\r
-\r
+            \r
+            //\r
+            // Update GlobalData\r
+            //\r
+            GlobalData.vPackageList.addElement(pid);\r
+            GlobalData.openingPackageList.insertToOpeningPackageList(pid, spd);\r
+            \r
             this.returnType = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;\r
         }\r
 \r
@@ -868,6 +881,12 @@ public class Clone extends IDialog {
             // Update the db file\r
             //\r
             wt.addPlatformToDatabase(fid);\r
+            \r
+            //\r
+            // Update GlobalData\r
+            //\r
+            GlobalData.vPlatformList.addElement(fid);\r
+            GlobalData.openingPlatformList.insertToOpeningPlatformList(fid, fpd);\r
 \r
             this.returnType = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\r
         }\r
@@ -1016,7 +1035,7 @@ public class Clone extends IDialog {
         c.setPackageGuid(id.getGuid());\r
         c.setPackageVersion(id.getVersion());\r
         c.setId(count.add(new BigInteger("1")));\r
-        String guid = wt.getModuleFarGuid(oldId);\r
+        String guid = wt.getPackageFarGuid(oldId);\r
         if (guid != null && !guid.equals("")) {\r
             c.setFarGuid(guid);\r
         }\r
@@ -1072,7 +1091,7 @@ public class Clone extends IDialog {
         c.setPlatformGuid(id.getGuid());\r
         c.setPlatformVersion(id.getVersion());\r
         c.setId(count.add(new BigInteger("1")));\r
-        String guid = wt.getModuleFarGuid(oldId);\r
+        String guid = wt.getPlatformFarGuid(oldId);\r
         if (guid != null && !guid.equals("")) {\r
             c.setFarGuid(guid);\r
         }\r
index 59bb752fa9dacf560e2d9f6a0e9621decf077207..b159fe4d628810120f68d57ded57f60738f9fd22 100644 (file)
@@ -23,6 +23,8 @@ import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;\r
 import java.awt.event.WindowEvent;\r
 import java.io.IOException;\r
+import java.util.Iterator;\r
+import java.util.Set;\r
 import java.util.Vector;\r
 \r
 import javax.swing.JButton;\r
@@ -43,6 +45,7 @@ import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;\r
 import javax.swing.event.TreeSelectionEvent;\r
 import javax.swing.event.TreeSelectionListener;\r
+import javax.swing.tree.TreePath;\r
 \r
 import org.apache.xmlbeans.XmlException;\r
 import org.tianocore.PackageSurfaceAreaDocument;\r
@@ -1934,12 +1937,13 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         //\r
         // Make root\r
         //\r
-        dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, -1);\r
+        dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, false, null, null);\r
 \r
         //\r
         // Make Module Description\r
         //\r
-        dmtnModuleDescription = new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode.MODULE, -1);\r
+        dmtnModuleDescription = new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode.MODULE_DESCRIPTION,\r
+                                                            false, null, dmtnRoot);\r
 \r
         //\r
         // First add package\r
@@ -1952,13 +1956,16 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
 \r
                 dmtnModulePackage = new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index).getName(),\r
                                                                 IDefaultMutableTreeNode.MODULE_PACKAGE, false,\r
-                                                                GlobalData.vPackageList.elementAt(index));\r
+                                                                GlobalData.vPackageList.elementAt(index),\r
+                                                                this.dmtnModuleDescription);\r
                 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
                                                                        IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY,\r
-                                                                       false, GlobalData.vPackageList.elementAt(index));\r
+                                                                       false, GlobalData.vPackageList.elementAt(index),\r
+                                                                       this.dmtnModuleDescription);\r
                 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",\r
                                                                       IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
-                                                                      false, GlobalData.vPackageList.elementAt(index));\r
+                                                                      false, GlobalData.vPackageList.elementAt(index),\r
+                                                                      this.dmtnModuleDescription);\r
                 //\r
                 // And then add each module in its package\r
                 //\r
@@ -1967,11 +1974,13 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     if (vModule.get(indexJ).isLibrary()) {\r
                         dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
                                                                                  IDefaultMutableTreeNode.MODULE, false,\r
-                                                                                 vModule.get(indexJ)));\r
+                                                                                 vModule.get(indexJ),\r
+                                                                                 this.dmtnModuleDescription));\r
                     } else {\r
                         dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
                                                                                 IDefaultMutableTreeNode.MODULE, false,\r
-                                                                                vModule.get(indexJ)));\r
+                                                                                vModule.get(indexJ),\r
+                                                                                this.dmtnModuleDescription));\r
                     }\r
                 }\r
                 if (dmtnModulePackageModule.getChildCount() > 0) {\r
@@ -1988,26 +1997,31 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         //\r
         // Make Package Description\r
         //\r
-        dmtnPackageDescription = new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode.PACKAGE, -1);\r
+        dmtnPackageDescription = new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode.PACKAGE_DESCRIPTION,\r
+                                                             false, null, this.dmtnRoot);\r
         if (GlobalData.vPackageList.size() > 0) {\r
             for (int index = 0; index < GlobalData.vPackageList.size(); index++) {\r
                 dmtnPackageDescription.add(new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index)\r
                                                                                               .getName(),\r
                                                                        IDefaultMutableTreeNode.PACKAGE, false,\r
-                                                                       GlobalData.vPackageList.elementAt(index)));\r
+                                                                       GlobalData.vPackageList.elementAt(index),\r
+                                                                       this.dmtnPackageDescription));\r
             }\r
         }\r
 \r
         //\r
         // Make Platform Description\r
         //\r
-        dmtnPlatformDescription = new IDefaultMutableTreeNode("Platforms", IDefaultMutableTreeNode.PLATFORM, -1);\r
+        dmtnPlatformDescription = new IDefaultMutableTreeNode("Platforms",\r
+                                                              IDefaultMutableTreeNode.PLATFORM_DESCRIPTION, false,\r
+                                                              null, this.dmtnRoot);\r
         if (GlobalData.vPlatformList.size() > 0) {\r
             for (int index = 0; index < GlobalData.vPlatformList.size(); index++) {\r
                 dmtnPlatformDescription.add(new IDefaultMutableTreeNode(GlobalData.vPlatformList.elementAt(index)\r
                                                                                                 .getName(),\r
                                                                         IDefaultMutableTreeNode.PLATFORM, false,\r
-                                                                        GlobalData.vPlatformList.elementAt(index)));\r
+                                                                        GlobalData.vPlatformList.elementAt(index),\r
+                                                                        this.dmtnPlatformDescription));\r
             }\r
         }\r
 \r
@@ -2040,10 +2054,6 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
      * \r
      */\r
     public void mouseClicked(MouseEvent arg0) {\r
-        if (arg0.getButton() == MouseEvent.BUTTON1) {\r
-        }\r
-        if (arg0.getButton() == MouseEvent.BUTTON3) {\r
-        }\r
         //\r
         // When double click\r
         //\r
@@ -2141,8 +2151,8 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         //\r
         // Add new MsaHeader node to the tree\r
         //\r
-        IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MODULE, true,\r
-                                                                   mid);\r
+        IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MODULE,\r
+                                                                   false, mid, this.dmtnModuleDescription);\r
         //\r
         // First find the module belongs to which package\r
         //\r
@@ -2176,7 +2186,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             //\r
             if (!hasModule) {\r
                 parentModuleNode = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
-                                                               false, mid.getPackageId());\r
+                                                               false, mid.getPackageId(), this.dmtnModuleDescription);\r
                 iTree.addNode(packageNode, parentModuleNode);\r
             }\r
 \r
@@ -2193,7 +2203,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             if (!hasLibrary) {\r
                 parentLibraryNode = new IDefaultMutableTreeNode("Library",\r
                                                                 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
-                                                                mid.getPackageId());\r
+                                                                mid.getPackageId(), this.dmtnModuleDescription);\r
                 iTree.addNode(packageNode, parentLibraryNode);\r
             }\r
 \r
@@ -2207,7 +2217,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
      @param path input file path\r
      \r
      **/\r
-    private void openModule(String path) {\r
+    private void openModule(String path, IDefaultMutableTreeNode belongNode) {\r
         ModuleIdentification id = GlobalData.openingModuleList.getIdByPath(path);\r
         if (id == null) {\r
             //\r
@@ -2220,29 +2230,33 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         //\r
         // Make the node selected\r
         //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
-                                                                     IDefaultMutableTreeNode.MODULE)));\r
+        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(belongNode, id, IDefaultMutableTreeNode.MODULE)));\r
+\r
         //\r
         // Update opening Module list information\r
         //\r
-        if (!GlobalData.openingModuleList.getModuleOpen(id)) {\r
+        if (!iTree.getSelectNode().isOpening()) {\r
             //\r
             // Insert sub node of module\r
             //\r
-            insertModuleTreeNode(id);\r
+            insertModuleTreeNode(id, belongNode);\r
             iTree.getSelectNode().setOpening(true);\r
 \r
             //\r
             // Update opening module list\r
             //\r
             GlobalData.openingModuleList.setModuleOpen(id, true);\r
-            GlobalData.openingModuleList.setTreePathById(id, iTree.getSelectionPath());\r
+            Set<TreePath> temp = GlobalData.openingModuleList.getTreePathById(id);\r
+            temp.add(iTree.getSelectionPath());\r
+            GlobalData.openingModuleList.setTreePathById(id, temp);\r
         }\r
         //\r
         // Select msa header node and show it in editor panel\r
         //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
-                                                                     IDefaultMutableTreeNode.MSA_HEADER)));\r
+        iTree\r
+             .setSelectionPath(iTree\r
+                                    .getPathOfNode(iTree\r
+                                                        .getNodeById(belongNode, id, IDefaultMutableTreeNode.MSA_HEADER)));\r
         showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, GlobalData.openingModuleList.getOpeningModuleById(id));\r
         this.currentOpeningModuleIndex = GlobalData.openingModuleList.findIndexOfListById(id);\r
     }\r
@@ -2282,7 +2296,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             // Update opening module list\r
             //\r
             GlobalData.openingPackageList.setPackageOpen(id, true);\r
-            GlobalData.openingPackageList.setTreePathById(id, iTree.getSelectionPath());\r
+            Set<TreePath> temp = GlobalData.openingPackageList.getTreePathById(id);\r
+            temp.add(iTree.getSelectionPath());\r
+            GlobalData.openingPackageList.setTreePathById(id, temp);\r
         }\r
         //\r
         // Show spd header in editor panel\r
@@ -2328,7 +2344,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             // Update opening module list\r
             //\r
             GlobalData.openingPlatformList.setPlatformOpen(id, true);\r
-            GlobalData.openingPlatformList.setTreePathById(id, iTree.getSelectionPath());\r
+            Set<TreePath> temp = GlobalData.openingPlatformList.getTreePathById(id);\r
+            temp.add(iTree.getSelectionPath());\r
+            GlobalData.openingPlatformList.setTreePathById(id, temp);\r
         }\r
         //\r
         // Show fpd header in editor panel\r
@@ -2433,56 +2451,136 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         }\r
     }\r
 \r
-    private void insertModuleTreeNode(Identification id) {\r
-        iTree.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode.MSA_HEADER, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id));\r
+    private void insertModuleTreeNode(Identification id, IDefaultMutableTreeNode belongNode) {\r
+        iTree.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode.MSA_HEADER, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id,\r
+                                                  belongNode));\r
         iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",\r
-                                                  IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Package Dependencies",\r
-                                                  IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id));\r
+                                                  IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id,\r
+                                                  belongNode));\r
         iTree\r
-             .addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode.MSA_EXTERNS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode.MSA_PCDS, true, id));\r
+             .addNode(new IDefaultMutableTreeNode("Package Dependencies",\r
+                                                  IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode.MSA_EXTERNS, true, id,\r
+                                                  belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode.MSA_PCDS, true, id, belongNode));\r
     }\r
 \r
     private void insertPackageTreeNode(Identification id) {\r
-        iTree.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode.SPD_HEADER, true, id));\r
+        IDefaultMutableTreeNode idmtTemp = this.dmtnPackageDescription;\r
+        iTree.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode.SPD_HEADER, true, id,\r
+                                                  idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Library Class Declarations",\r
-                                                  IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id));\r
+                                                  IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id,\r
+                                                  idmtTemp));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id,\r
+                                                  idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,\r
-                                                  id));\r
+                                                  id, idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,\r
-                                                  true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Protocol Declarations",\r
-                                                  IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id));\r
+                                                  true, id, idmtTemp));\r
+        iTree\r
+             .addNode(new IDefaultMutableTreeNode("Protocol Declarations",\r
+                                                  IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id, idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode.SPD_PPIDECLARATIONS,\r
-                                                  true, id));\r
+                                                  true, id, idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,\r
-                                                  true, id));\r
+                                                  true, id, idmtTemp));\r
+        //\r
+        // Add modules in this package\r
+        //\r
+        IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
+        IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
+\r
+        dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
+                                                               IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
+                                                               id, idmtTemp);\r
+        dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
+                                                              false, id, idmtTemp);\r
+\r
+        Vector<ModuleIdentification> vModule = wt.getAllModules(new PackageIdentification(id));\r
+        for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
+            if (vModule.get(indexJ).isLibrary()) {\r
+                dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
+                                                                         IDefaultMutableTreeNode.MODULE, false,\r
+                                                                         vModule.get(indexJ), idmtTemp));\r
+            } else {\r
+                dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
+                                                                        IDefaultMutableTreeNode.MODULE, false,\r
+                                                                        vModule.get(indexJ), idmtTemp));\r
+            }\r
+        }\r
+        if (dmtnModulePackageModule.getChildCount() > 0) {\r
+            iTree.addNode(dmtnModulePackageModule);\r
+        }\r
+        if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
+            iTree.addNode(dmtnModulePackageLibrary);\r
+        }\r
     }\r
 \r
     private void insertPlatformTreeNode(Identification id) {\r
+        IDefaultMutableTreeNode idmtTemp = this.dmtnPlatformDescription;\r
         iTree.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode.FPD_PLATFORMHEADER, true,\r
-                                                  id));\r
+                                                  id, idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",\r
-                                                  IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode.FPD_FLASH, true, id));\r
+                                                  IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id, idmtTemp));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode.FPD_FLASH, true, id,\r
+                                                  idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,\r
-                                                  true, id));\r
+                                                  true, id, idmtTemp));\r
         iTree.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",\r
-                                                  IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id));\r
+                                                  IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id,\r
+                                                  idmtTemp));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id,\r
+                                                  idmtTemp));\r
+\r
+        //\r
+        // Add modules in this platform\r
+        //\r
+        IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
+        IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
+\r
+        dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
+                                                               IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
+                                                               id, idmtTemp);\r
+        dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
+                                                              false, id, idmtTemp);\r
+\r
+        Vector<ModuleIdentification> vModule = wt.getAllModules(new PlatformIdentification(id));\r
+        for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
+            if (vModule.get(indexJ).isLibrary()) {\r
+                dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
+                                                                         IDefaultMutableTreeNode.MODULE, false,\r
+                                                                         vModule.get(indexJ), idmtTemp));\r
+            } else {\r
+                dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
+                                                                        IDefaultMutableTreeNode.MODULE, false,\r
+                                                                        vModule.get(indexJ), idmtTemp));\r
+            }\r
+        }\r
+        if (dmtnModulePackageModule.getChildCount() > 0) {\r
+            iTree.addNode(dmtnModulePackageModule);\r
+        }\r
+        if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
+            iTree.addNode(dmtnModulePackageLibrary);\r
+        }\r
     }\r
 \r
     /**\r
@@ -2493,10 +2591,12 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         Identification id = null;\r
         int intCategory = -1;\r
         String path = null;\r
+        IDefaultMutableTreeNode belongNode = null;\r
 \r
         try {\r
             id = iTree.getSelectNode().getId();\r
             intCategory = iTree.getSelectCategory();\r
+            belongNode = iTree.getSelectNode().getBelongNode();\r
 \r
             //\r
             // If id is null, return directly\r
@@ -2510,14 +2610,8 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             // Insert top level elements first\r
             //\r
             if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
-\r
-                if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
-                    path = iTree.getSelectNode().getId().getPath();\r
-                }\r
-                if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
-                    path = iTree.getSelectNode().getId().getPath();\r
-                }\r
-                openModule(path);\r
+                path = iTree.getSelectNode().getId().getPath();\r
+                openModule(path, belongNode);\r
                 return;\r
             }\r
             if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
@@ -2558,8 +2652,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                                                                                  .findIndexOfListById(new PlatformIdentification(\r
                                                                                                                                  id));\r
             }\r
-        } catch (RuntimeException e) {\r
+        } catch (Exception e) {\r
             Log.err("double click category: " + intCategory);\r
+            Log.err("double click belong node: " + belongNode.toString());\r
             Log.err("double click id path: " + id);\r
             Log.err("double click exception: " + e.getMessage());\r
         }\r
@@ -2801,7 +2896,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     //\r
                     // Open the node\r
                     //\r
-                    this.openModule(mid.getPath());\r
+                    this.openModule(mid.getPath(), this.dmtnModuleDescription);\r
                 }\r
             }\r
         } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
@@ -2835,14 +2930,15 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     //\r
                     IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(pid.getName(),\r
                                                                                IDefaultMutableTreeNode.MODULE_PACKAGE,\r
-                                                                               false, pid);\r
+                                                                               false, pid, this.dmtnModuleDescription);\r
 \r
                     iTree.addNode(dmtnModuleDescription, node);\r
 \r
                     //\r
                     // Add new SpdHeader node to the tree\r
                     //\r
-                    node = new IDefaultMutableTreeNode(pid.getName(), IDefaultMutableTreeNode.PACKAGE, true, pid);\r
+                    node = new IDefaultMutableTreeNode(pid.getName(), IDefaultMutableTreeNode.PACKAGE, true, pid,\r
+                                                       this.dmtnPackageDescription);\r
                     iTree.addNode(dmtnPackageDescription, node);\r
 \r
                     this.openPackage(pid.getPath());\r
@@ -2878,7 +2974,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     //\r
                     IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(fid.getName(),\r
                                                                                IDefaultMutableTreeNode.PLATFORM, true,\r
-                                                                               fid);\r
+                                                                               fid, this.dmtnPlatformDescription);\r
                     iTree.addNode(dmtnPlatformDescription, node);\r
                     this.openPlatform(fid.getPath());\r
                 }\r
@@ -2907,7 +3003,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             String path = fc.getSelectedFile().getPath();\r
             String match = path.substring(path.length() - 4);\r
             if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.MODULE_SURFACE_AREA_EXT)) {\r
-                openModule(path);\r
+                openModule(path, this.dmtnModuleDescription);\r
             } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PACKAGE_SURFACE_AREA_EXT)) {\r
                 openPackage(path);\r
             } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PLATFORM_SURFACE_AREA_EXT)) {\r
@@ -2921,6 +3017,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
      \r
      **/\r
     private void close() {\r
+        TreePath item = null;\r
         switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
         //\r
         // Current is module\r
@@ -2939,9 +3036,19 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                         return;\r
                     }\r
                 }\r
-                iTree\r
-                     .removeNodeChildrenByPath(GlobalData.openingModuleList\r
-                                                                           .getTreePathByIndex(currentOpeningModuleIndex));\r
+\r
+                //\r
+                // Remove all tree paths for the module\r
+                //\r
+                Set<TreePath> openingTreePaths = GlobalData.openingModuleList\r
+                                                                             .getTreePathByIndex(currentOpeningModuleIndex);\r
+                Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
+                while (openingTreePathsIter.hasNext()) {\r
+                    item = openingTreePathsIter.next();\r
+                    iTree.getNodeByPath(item).setOpening(false);\r
+                    iTree.removeNodeChildrenByPath(item);\r
+                }\r
+\r
                 GlobalData.openingModuleList.setModuleOpen(this.currentOpeningModuleIndex, false);\r
                 this.cleanDesktopPaneModule();\r
                 this.currentOpeningModuleIndex = -1;\r
@@ -2964,9 +3071,19 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                         return;\r
                     }\r
                 }\r
-                iTree\r
-                     .removeNodeChildrenByPath(GlobalData.openingPackageList\r
-                                                                            .getTreePathByIndex(currentOpeningPackageIndex));\r
+\r
+                //\r
+                // Remove all tree paths for the module\r
+                //\r
+                Set<TreePath> openingTreePaths = GlobalData.openingPackageList\r
+                                                                              .getTreePathByIndex(currentOpeningPackageIndex);\r
+                Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
+                while (openingTreePathsIter.hasNext()) {\r
+                    item = openingTreePathsIter.next();\r
+                    iTree.getNodeByPath(item).setOpening(false);\r
+                    iTree.removeNodeChildrenByPath(item);\r
+                }\r
+\r
                 GlobalData.openingPackageList.setPackageOpen(this.currentOpeningPackageIndex, false);\r
                 this.cleanDesktopPanePackage();\r
                 this.currentOpeningPackageIndex = -1;\r
@@ -2989,9 +3106,19 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                         return;\r
                     }\r
                 }\r
-                iTree\r
-                     .removeNodeChildrenByPath(GlobalData.openingPlatformList\r
-                                                                             .getTreePathByIndex(currentOpeningPlatformIndex));\r
+\r
+                //\r
+                // Remove all tree paths for the module\r
+                //\r
+                Set<TreePath> openingTreePaths = GlobalData.openingPlatformList\r
+                                                                               .getTreePathByIndex(currentOpeningPlatformIndex);\r
+                Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
+                while (openingTreePathsIter.hasNext()) {\r
+                    item = openingTreePathsIter.next();\r
+                    iTree.getNodeByPath(item).setOpening(false);\r
+                    iTree.removeNodeChildrenByPath(item);\r
+                }\r
+\r
                 GlobalData.openingPlatformList.setPlatformOpen(this.currentOpeningPlatformIndex, false);\r
                 this.cleanDesktopPanePlatform();\r
                 this.currentOpeningPlatformIndex = -1;\r
@@ -3292,23 +3419,20 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         }\r
         int category = iTree.getSelectCategory();\r
         Identification id = iTree.getSelectNode().getId();\r
-        if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE\r
-            || category == IDefaultMutableTreeNode.PLATFORM) {\r
-            Log.wrn("Clone", "Please select a target to clone!");\r
-            return;\r
-        }\r
 \r
         if (category == IDefaultMutableTreeNode.WORKSPACE) {\r
             mode = DataType.RETURN_TYPE_WORKSPACE;\r
             id = null;\r
         }\r
-        if (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER) {\r
+        if ((category == IDefaultMutableTreeNode.MODULE)\r
+            || (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER)) {\r
             mode = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;\r
         }\r
-        if (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+        if ((category == IDefaultMutableTreeNode.PACKAGE)\r
+            || (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
             mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;\r
         }\r
-        if (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+        if ((category == IDefaultMutableTreeNode.PLATFORM) || (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
             mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\r
         }\r
 \r
@@ -3323,32 +3447,30 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         }\r
         if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
             Tools.showInformationMessage("Module Clone Completed!");\r
-            GlobalData.vModuleList.addElement(c.getMid());\r
             addModuleToTree(c.getMid());\r
         }\r
         if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
             Tools.showInformationMessage("Package Clone Completed!");\r
-            GlobalData.vPackageList.addElement(c.getPid());\r
             //\r
             // Add new SpdHeader node to the tree\r
             //\r
             IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(GlobalData.vPackageList.lastElement().getName(),\r
-                                                                       IDefaultMutableTreeNode.SPD_HEADER, true,\r
-                                                                       GlobalData.vPackageList.lastElement());\r
-            iTree.addNode(dmtnPackageDescription, node);\r
+                                                                       IDefaultMutableTreeNode.PACKAGE, false,\r
+                                                                       GlobalData.vPackageList.lastElement(),\r
+                                                                       this.dmtnPackageDescription);\r
+            iTree.addNode(this.dmtnPackageDescription, node);\r
         }\r
         if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
             Tools.showInformationMessage("Platform Surface Area Clone Finished");\r
-            GlobalData.vPlatformList.addElement(c.getFid());\r
             //\r
             // Add new SpdHeader node to the tree\r
             //\r
             IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(\r
                                                                        GlobalData.vPlatformList.lastElement().getName(),\r
-                                                                       IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
-                                                                       true, GlobalData.vPlatformList.lastElement());\r
-            iTree.addNode(dmtnPlatformDescription, node);\r
-            //this.openPlatform(c.getFid().getPath());\r
+                                                                       IDefaultMutableTreeNode.PLATFORM,\r
+                                                                       false, GlobalData.vPlatformList.lastElement(),\r
+                                                                       this.dmtnPlatformDescription);\r
+            iTree.addNode(this.dmtnPlatformDescription, node);\r
         }\r
         if (result == DataType.RETURN_TYPE_OK) {\r
 \r
@@ -3401,8 +3523,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                 jMenuItemToolsClone.setEnabled(false);\r
             } else {\r
                 int category = iTree.getSelectCategory();\r
-                if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE\r
-                    || category == IDefaultMutableTreeNode.PLATFORM\r
+                if (category == IDefaultMutableTreeNode.MODULE_DESCRIPTION\r
+                    || category == IDefaultMutableTreeNode.PACKAGE_DESCRIPTION\r
+                    || category == IDefaultMutableTreeNode.PLATFORM_DESCRIPTION\r
                     || category == IDefaultMutableTreeNode.MODULE_PACKAGE\r
                     || category == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY\r
                     || category == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {\r
index 14890286caa218b3b3b6cfa8dfa229a29477d00a..9811c19868403e855c66ec897b249b25be0c9941 100644 (file)
@@ -15,6 +15,9 @@
 \r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
+import java.util.LinkedHashSet;\r
+import java.util.Set;\r
+\r
 import javax.swing.tree.TreePath;\r
 \r
 \r
@@ -28,15 +31,11 @@ public class OpeningFileType {
     \r
     private boolean isOpen = false;\r
     \r
-    private TreePath treePath = null;\r
+    private Set<TreePath> treePath = new LinkedHashSet<TreePath>();\r
     \r
     public OpeningFileType() {\r
         \r
     }\r
-    \r
-    public OpeningFileType(TreePath treePathValue) {\r
-        this.treePath = treePathValue;\r
-    }\r
 \r
     public boolean isNew() {\r
         return isNew;\r
@@ -54,14 +53,6 @@ public class OpeningFileType {
         this.isSaved = isSaved;\r
     }\r
 \r
-    public TreePath getTreePath() {\r
-        return treePath;\r
-    }\r
-\r
-    public void setTreePath(TreePath treePath) {\r
-        this.treePath = treePath;\r
-    }\r
-\r
     public boolean isOpen() {\r
         return isOpen;\r
     }\r
@@ -69,4 +60,12 @@ public class OpeningFileType {
     public void setOpen(boolean isOpen) {\r
         this.isOpen = isOpen;\r
     }\r
+\r
+    public Set<TreePath> getTreePath() {\r
+        return treePath;\r
+    }\r
+\r
+    public void setTreePath(Set<TreePath> treePath) {\r
+        this.treePath = treePath;\r
+    }\r
 }\r
index eab8d2a82465e2363d6d17c17e31db89bee75377..df52b8a34dbcf6a5c203d52f3bf13fe97204f326 100644 (file)
@@ -14,6 +14,7 @@
  **/\r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
+import java.util.Set;\r
 import java.util.Vector;\r
 \r
 import javax.swing.tree.TreePath;\r
@@ -27,6 +28,7 @@ public class OpeningModuleList {
     public OpeningModuleList() {\r
 \r
     }\r
+\r
     public Vector<OpeningModuleType> getVOpeningModuleList() {\r
         return vOpeningModuleList;\r
     }\r
@@ -34,18 +36,18 @@ public class OpeningModuleList {
     public void setVOpeningModuleList(Vector<OpeningModuleType> openingModuleList) {\r
         vOpeningModuleList = openingModuleList;\r
     }\r
-    \r
+\r
     public void insertToOpeningModuleList(ModuleIdentification id, ModuleSurfaceAreaDocument.ModuleSurfaceArea xmlMsa) {\r
         vOpeningModuleList.addElement(new OpeningModuleType(id, xmlMsa));\r
     }\r
-    \r
+\r
     public OpeningModuleType getOpeningModuleByIndex(int index) {\r
         if (index > -1 && index < vOpeningModuleList.size()) {\r
             return vOpeningModuleList.elementAt(index);\r
         }\r
         return null;\r
     }\r
-    \r
+\r
     public OpeningModuleType getOpeningModuleById(ModuleIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
@@ -53,7 +55,7 @@ public class OpeningModuleList {
         }\r
         return null;\r
     }\r
-    \r
+\r
     public int findIndexOfListById(ModuleIdentification id) {\r
         for (int index = 0; index < vOpeningModuleList.size(); index++) {\r
             if (vOpeningModuleList.elementAt(index).getId().equals(id)) {\r
@@ -62,24 +64,24 @@ public class OpeningModuleList {
         }\r
         return -1;\r
     }\r
-    \r
+\r
     public void removeFromOpeningModuleListByIndex(int index) {\r
         if (index > -1 && index < vOpeningModuleList.size()) {\r
             vOpeningModuleList.removeElementAt(index);\r
         }\r
     }\r
-    \r
+\r
     public void removeFromOpeningModuleListById(ModuleIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             vOpeningModuleList.removeElementAt(findIndexOfListById(id));\r
         }\r
     }\r
-    \r
+\r
     public void removeAllFromOpeningModuleList() {\r
         vOpeningModuleList.removeAllElements();\r
     }\r
-    \r
+\r
     public ModuleSurfaceAreaDocument.ModuleSurfaceArea getModuleSurfaceAreaFromId(ModuleIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
@@ -87,7 +89,7 @@ public class OpeningModuleList {
         }\r
         return null;\r
     }\r
-    \r
+\r
     public boolean existsModule(ModuleIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
@@ -95,71 +97,71 @@ public class OpeningModuleList {
         }\r
         return false;\r
     }\r
-    \r
+\r
     public void setModuleSaved(ModuleIdentification id, boolean isSaved) {\r
         setModuleSaved(findIndexOfListById(id), isSaved);\r
     }\r
-    \r
+\r
     public void setModuleSaved(int index, boolean isSaved) {\r
         if (index > -1) {\r
             vOpeningModuleList.elementAt(index).setSaved(isSaved);\r
         }\r
     }\r
-    \r
+\r
     public boolean getModuleSaved(ModuleIdentification id) {\r
         return getModuleSaved(findIndexOfListById(id));\r
     }\r
-    \r
+\r
     public boolean getModuleSaved(int index) {\r
         if (index > -1) {\r
             return vOpeningModuleList.elementAt(index).isSaved();\r
         }\r
         return true;\r
     }\r
-    \r
+\r
     public void setModuleOpen(ModuleIdentification id, boolean isOpen) {\r
         setModuleOpen(findIndexOfListById(id), isOpen);\r
     }\r
-    \r
+\r
     public void setModuleOpen(int index, boolean isOpen) {\r
         if (index > -1) {\r
             vOpeningModuleList.elementAt(index).setOpen(isOpen);\r
         }\r
     }\r
-    \r
+\r
     public boolean getModuleOpen(ModuleIdentification id) {\r
         return getModuleOpen(findIndexOfListById(id));\r
     }\r
-    \r
+\r
     public boolean getModuleOpen(int index) {\r
         if (index > -1) {\r
             return vOpeningModuleList.elementAt(index).isOpen();\r
         }\r
         return true;\r
     }\r
-    \r
-    public void setTreePathById(ModuleIdentification id, TreePath treePath) {\r
+\r
+    public void setTreePathById(ModuleIdentification id, Set<TreePath> treePath) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             vOpeningModuleList.elementAt(index).setTreePath(treePath);\r
         }\r
     }\r
-    \r
-    public TreePath getTreePathById(ModuleIdentification id) {\r
+\r
+    public Set<TreePath> getTreePathById(ModuleIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             return vOpeningModuleList.elementAt(index).getTreePath();\r
         }\r
         return null;\r
     }\r
-    \r
-    public TreePath getTreePathByIndex(int index) {\r
+\r
+    public Set<TreePath> getTreePathByIndex(int index) {\r
         if (index > -1) {\r
             return vOpeningModuleList.elementAt(index).getTreePath();\r
         }\r
         return null;\r
     }\r
-    \r
+\r
     public ModuleIdentification getIdByPath(String path) {\r
         ModuleIdentification id = new ModuleIdentification(null, null, null, path);\r
         int index = findIndexOfListById(id);\r
@@ -168,24 +170,40 @@ public class OpeningModuleList {
         }\r
         return null;\r
     }\r
-    \r
+\r
+    public ModuleIdentification getIdByGuidVersion(String guid, String version) {\r
+        for (int index = 0; index < vOpeningModuleList.size(); index++) {\r
+            ModuleIdentification id = vOpeningModuleList.elementAt(index).getId();\r
+            if (version != null) {\r
+                if (id.getGuid().equals(guid) && id.getVersion().equals(version)) {\r
+                    return id;\r
+                }\r
+            } else {\r
+                if (id.getGuid().equals(guid)) {\r
+                    return id;\r
+                }\r
+            }\r
+        }\r
+        return null;\r
+    }\r
+\r
     public void setNew(ModuleIdentification id, boolean isNew) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             vOpeningModuleList.elementAt(index).setNew(isNew);\r
         }\r
     }\r
-    \r
+\r
     public void closeAll() {\r
         for (int index = 0; index < this.size(); index++) {\r
-           this.setModuleOpen(index, false);\r
+            this.setModuleOpen(index, false);\r
         }\r
     }\r
-    \r
+\r
     public int size() {\r
         return vOpeningModuleList.size();\r
     }\r
-    \r
+\r
     public boolean isSaved() {\r
         for (int index = 0; index < this.size(); index++) {\r
             if (!this.getModuleSaved(index)) {\r
@@ -194,7 +212,7 @@ public class OpeningModuleList {
         }\r
         return true;\r
     }\r
-    \r
+\r
     public boolean isOpen() {\r
         for (int index = 0; index < this.size(); index++) {\r
             if (this.getModuleOpen(index)) {\r
index 2ead77a84f1b2043ae7b9ed949cb4b4128b9edd5..427549ade7b4afa2ce2022a90f35a1166ecba072 100644 (file)
@@ -15,8 +15,6 @@
 \r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
-import javax.swing.tree.TreePath;\r
-\r
 import org.tianocore.ModuleSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 \r
@@ -36,13 +34,6 @@ public class OpeningModuleType extends OpeningFileType{
         this.id = identification;\r
         this.xmlMsa = msa;\r
     }\r
-    \r
-    public OpeningModuleType(ModuleIdentification identification, ModuleSurfaceAreaDocument.ModuleSurfaceArea msa, TreePath treePath) {\r
-        super(treePath);\r
-        \r
-        this.id = identification;\r
-        this.xmlMsa = msa;\r
-    }\r
 \r
     public ModuleSurfaceAreaDocument.ModuleSurfaceArea getXmlMsa() {\r
         return xmlMsa;\r
index b53a5bd89ccddb53af4fc2f4c2bbd01ce057308c..dc71bbc1942d95d6d25010fe34338aa5bf62540f 100644 (file)
@@ -14,6 +14,7 @@
  **/\r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
+import java.util.Set;\r
 import java.util.Vector;\r
 \r
 import javax.swing.tree.TreePath;\r
@@ -139,14 +140,14 @@ public class OpeningPackageList {
         return true;\r
     }\r
     \r
-    public void setTreePathById(PackageIdentification id, TreePath treePath) {\r
+    public void setTreePathById(PackageIdentification id, Set<TreePath> treePath) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             vOpeningPackageList.elementAt(index).setTreePath(treePath);\r
         }\r
     }\r
     \r
-    public TreePath getTreePathById(PackageIdentification id) {\r
+    public Set<TreePath> getTreePathById(PackageIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             return vOpeningPackageList.elementAt(index).getTreePath();\r
@@ -154,7 +155,7 @@ public class OpeningPackageList {
         return null;\r
     }\r
     \r
-    public TreePath getTreePathByIndex(int index) {\r
+    public Set<TreePath> getTreePathByIndex(int index) {\r
         if (index > -1) {\r
             return vOpeningPackageList.elementAt(index).getTreePath();\r
         }\r
index 51ca083f460de899b07e0246aee9d3c6df6567b3..66d749e266ae797c87d1a1f935e643dfd916020e 100644 (file)
@@ -14,8 +14,6 @@
  **/\r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
-import javax.swing.tree.TreePath;\r
-\r
 import org.tianocore.PackageSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
 \r
@@ -35,13 +33,6 @@ public class OpeningPackageType extends OpeningFileType {
         this.id = identification;\r
         this.xmlSpd = spd;\r
     }\r
-    \r
-    public OpeningPackageType(PackageIdentification identification, PackageSurfaceAreaDocument.PackageSurfaceArea spd, TreePath treePath) {\r
-        super(treePath);\r
-        \r
-        this.id = identification;\r
-        this.xmlSpd = spd;\r
-    }\r
 \r
     public PackageSurfaceAreaDocument.PackageSurfaceArea getXmlSpd() {\r
         return xmlSpd;\r
index 343d8ee6fcad61bfddafff7cf3a62ce65e13f247..40275e9eb3bfbbb1ffecce74405130296e525f55 100644 (file)
@@ -14,6 +14,7 @@
  **/\r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
+import java.util.Set;\r
 import java.util.Vector;\r
 \r
 import javax.swing.tree.TreePath;\r
@@ -141,14 +142,14 @@ public class OpeningPlatformList {
         return true;\r
     }\r
     \r
-    public void setTreePathById(PlatformIdentification id, TreePath treePath) {\r
+    public void setTreePathById(PlatformIdentification id, Set<TreePath> treePath) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             vOpeningPlatformList.elementAt(index).setTreePath(treePath);\r
         }\r
     }\r
     \r
-    public TreePath getTreePathById(PlatformIdentification id) {\r
+    public Set<TreePath> getTreePathById(PlatformIdentification id) {\r
         int index = findIndexOfListById(id);\r
         if (index > -1) {\r
             return vOpeningPlatformList.elementAt(index).getTreePath();\r
@@ -156,7 +157,7 @@ public class OpeningPlatformList {
         return null;\r
     }\r
     \r
-    public TreePath getTreePathByIndex(int index) {\r
+    public Set<TreePath> getTreePathByIndex(int index) {\r
         if (index > -1) {\r
             return vOpeningPlatformList.elementAt(index).getTreePath();\r
         }\r
index c81f4eef05599c7d379a3f1c1a0fc1431c398e42..34c847eb0eb4a04e96472f177c20031ba223c088 100644 (file)
@@ -14,8 +14,6 @@
  **/\r
 package org.tianocore.frameworkwizard.common.Identifications;\r
 \r
-import javax.swing.tree.TreePath;\r
-\r
 import org.tianocore.PlatformSurfaceAreaDocument;\r
 import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
 \r
@@ -36,12 +34,6 @@ public class OpeningPlatformType extends OpeningFileType {
         this.xmlFpd = fpd;\r
     }\r
     \r
-    public OpeningPlatformType(PlatformIdentification identification, PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd, TreePath treePath) {\r
-        super(treePath);\r
-        this.id = identification;\r
-        this.xmlFpd = fpd;\r
-    }\r
-\r
     public PlatformSurfaceAreaDocument.PlatformSurfaceArea getXmlFpd() {\r
         return xmlFpd;\r
     }\r
index 4f7b953c81cd024754953b8c7aeecb78900d4d00..4708191ac9d26c4694d9be84e9e59e05310f5344 100644 (file)
@@ -39,9 +39,9 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
     public static final int MSA_HEADER = 100;\r
 \r
     public static final int MSA_LIBRARYCLASSDEFINITIONS = 101;\r
-    \r
+\r
     public static final int MSA_PACKAGEDEPENDENCIES = 102;\r
-    \r
+\r
     public static final int MSA_SOURCEFILES = 103;\r
 \r
     public static final int MSA_PROTOCOLS = 104;\r
@@ -60,8 +60,6 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
 \r
     public static final int MSA_DATAHUBS = 111;\r
 \r
-    //public static final int MSA_FORMSETS = 112;\r
-    \r
     public static final int MSA_HIIPACKAGES = 112;\r
 \r
     public static final int MSA_GUIDS = 113;\r
@@ -69,58 +67,64 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
     public static final int MSA_EXTERNS = 114;\r
 \r
     public static final int MSA_PCDS = 115;\r
-    \r
+\r
     public static final int MSA_BUILDOPTIONS = 117;\r
-    \r
+\r
     public static final int MSA_USEREXTENSIONS = 118;\r
-    \r
+\r
     public static final int MSA_MODULEDEFINITIONS = 119;\r
-    \r
+\r
     public static final int SPD_HEADER = 200;\r
-    \r
+\r
     public static final int SPD_LIBRARYCLASSDECLARATIONS = 201;\r
-    \r
+\r
     public static final int SPD_MSAFILES = 202;\r
-    \r
+\r
     public static final int SPD_PACKAGEHEADERS = 203;\r
-    \r
+\r
     public static final int SPD_GUIDDECLARATIONS = 204;\r
-    \r
+\r
     public static final int SPD_PROTOCOLDECLARATIONS = 205;\r
-    \r
+\r
     public static final int SPD_PPIDECLARATIONS = 206;\r
-    \r
+\r
     public static final int SPD_PCDDECLARATIONS = 207;\r
-    \r
+\r
     public static final int SPD_PACKAGEDEFINITIONS = 208;\r
-    \r
+\r
     public static final int SPD_INDUSTRYSTDINCLUDES = 209;\r
-    \r
+\r
     public static final int FPD_PLATFORMHEADER = 300;\r
-    \r
+\r
     public static final int FPD_FLASH = 301;\r
-    \r
+\r
     public static final int FPD_FRAMEWORKMODULES = 302;\r
-    \r
+\r
     public static final int FPD_PCDDYNAMICBUILDDECLARATIONS = 303;\r
-    \r
+\r
     public static final int FPD_BUILDOPTIONS = 304;\r
-    \r
+\r
     public static final int FPD_PLATFORMDEFINITIONS = 305;\r
-    \r
+\r
     public static final int WORKSPACE = 0;\r
-    \r
-    public static final int MODULE = 1;\r
 \r
-    public static final int PACKAGE = 2;\r
+    public static final int MODULE_DESCRIPTION = 1;\r
 \r
-    public static final int PLATFORM = 3;\r
-    \r
-    public static final int MODULE_PACKAGE = 4;\r
-    \r
-    public static final int MODULE_PACKAGE_LIBRARY = 5;\r
-    \r
-    public static final int MODULE_PACKAGE_MODULE = 6;\r
+    public static final int PACKAGE_DESCRIPTION = 2;\r
+\r
+    public static final int PLATFORM_DESCRIPTION = 3;\r
+\r
+    public static final int MODULE = 4;\r
+\r
+    public static final int PACKAGE = 5;\r
+\r
+    public static final int PLATFORM = 6;\r
+\r
+    public static final int MODULE_PACKAGE = 7;\r
+\r
+    public static final int MODULE_PACKAGE_LIBRARY = 8;\r
+\r
+    public static final int MODULE_PACKAGE_MODULE = 9;\r
 \r
     //\r
     //Static final definitions for operation\r
@@ -146,26 +150,13 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
     //\r
     private int category = 0;\r
 \r
-    private int operation = 0;\r
-\r
-    private int location = 0;\r
-\r
     private String nodeName = "";\r
 \r
     private boolean isOpening = false;\r
 \r
     private Identification id = null;\r
-\r
-    /**\r
-     Main class, reserved for test\r
-     \r
-     @param args\r
-     \r
-     **/\r
-    public static void main(String[] args) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
+    \r
+    private IDefaultMutableTreeNode belongNode = null;\r
 \r
     /**\r
      This is the default constructor\r
@@ -186,46 +177,13 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
      \r
      **/\r
     public IDefaultMutableTreeNode(String strNodeName, int intCategory, boolean bolIsOpening,\r
-                                   Identification identification) {\r
+                                   Identification identification, IDefaultMutableTreeNode idmtBelongNode) {\r
         super(strNodeName);\r
         this.nodeName = strNodeName;\r
         this.category = intCategory;\r
         this.isOpening = bolIsOpening;\r
         this.id = identification;\r
-    }\r
-\r
-    /**\r
-     This is the overrided constructor\r
-     Init clase members with input data\r
-     \r
-     @param strNodeName The name of node\r
-     @param intCategory The category of node\r
-     @param intOperation The operation of node\r
-     \r
-     **/\r
-    public IDefaultMutableTreeNode(String strNodeName, int intCategory, int intOperation) {\r
-        super(strNodeName);\r
-        this.nodeName = strNodeName;\r
-        this.category = intCategory;\r
-        this.operation = intOperation;\r
-    }\r
-\r
-    /**\r
-     This is the overrided constructor\r
-     Init clase members with input data\r
-     \r
-     @param strNodeName The name of node\r
-     @param intCategory The category of node\r
-     @param intOperation The operation of node\r
-     @param intLocation The location of node\r
-     \r
-     **/\r
-    public IDefaultMutableTreeNode(String strNodeName, int intCategory, int intOperation, int intLocation) {\r
-        super(strNodeName);\r
-        this.nodeName = strNodeName;\r
-        this.category = intCategory;\r
-        this.operation = intOperation;\r
-        this.location = intLocation;\r
+        this.belongNode = idmtBelongNode;\r
     }\r
 \r
     /**\r
@@ -268,46 +226,6 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
         this.nodeName = nodeName;\r
     }\r
 \r
-    /**\r
-     Get operation of node\r
-     \r
-     @return The operation of node\r
-     \r
-     **/\r
-    public int getOperation() {\r
-        return operation;\r
-    }\r
-\r
-    /**\r
-     Set operation of node\r
-     \r
-     @param operation The input data of node operation\r
-     \r
-     **/\r
-    public void setOperation(int operation) {\r
-        this.operation = operation;\r
-    }\r
-\r
-    /**\r
-     Get location of node\r
-     \r
-     @return The location of node\r
-     \r
-     **/\r
-    public int getLocation() {\r
-        return location;\r
-    }\r
-\r
-    /**\r
-     Set location of node\r
-     \r
-     @param location The input data of node location\r
-     \r
-     **/\r
-    public void setLocation(int location) {\r
-        this.location = location;\r
-    }\r
-\r
     /**\r
      Get identification of node\r
      \r
@@ -347,4 +265,16 @@ public class IDefaultMutableTreeNode extends DefaultMutableTreeNode {
     public void setOpening(boolean isOpening) {\r
         this.isOpening = isOpening;\r
     }\r
+    \r
+    public String toString() {\r
+        return this.nodeName;\r
+    }\r
+\r
+    public IDefaultMutableTreeNode getBelongNode() {\r
+        return belongNode;\r
+    }\r
+\r
+    public void setBelongNode(IDefaultMutableTreeNode belongNode) {\r
+        this.belongNode = belongNode;\r
+    }\r
 }\r
index 5b7ea5900c1c13ec55db54f22d79827faf25be97..252c34ff72a1e754572dc62850377420261bede1 100644 (file)
@@ -26,8 +26,6 @@ import org.tianocore.frameworkwizard.common.Identifications.Identification;
 /**\r
  The class is used to override JTree to provides customized interfaces \r
  It extends JTree\r
\r
-\r
 \r
  **/\r
 public class ITree extends JTree {\r
@@ -35,7 +33,7 @@ public class ITree extends JTree {
     /// Define class Serial Version UID\r
     ///\r
     private static final long serialVersionUID = -7907086164518295327L;\r
-    \r
+\r
     //\r
     // Define class members\r
     //\r
@@ -58,7 +56,7 @@ public class ITree extends JTree {
      **/\r
     public ITree(IDefaultMutableTreeNode iDmtRoot) {\r
         super(iDmtRoot);\r
-        treeModel = (DefaultTreeModel)this.getModel();\r
+        treeModel = (DefaultTreeModel) this.getModel();\r
     }\r
 \r
     /**\r
@@ -75,44 +73,6 @@ public class ITree extends JTree {
         return intCategory;\r
     }\r
 \r
-    /**\r
-     Get operation of selected node\r
-     \r
-     @return The operation of selected node\r
-     \r
-     **/\r
-    public int getSelectOperation() {\r
-        int intOperation = 0;\r
-        TreePath path = this.getSelectionPath();\r
-        IDefaultMutableTreeNode node = (IDefaultMutableTreeNode) path.getLastPathComponent();\r
-        intOperation = node.getOperation();\r
-        return intOperation;\r
-    }\r
-\r
-    /**\r
-     Get selectLoaction of selected node\r
-     \r
-     @return The selectLoaction of selected node\r
-     \r
-     **/\r
-    public int getSelectLoaction() {\r
-        int intLocation = 0;\r
-        TreePath path = this.getSelectionPath();\r
-        IDefaultMutableTreeNode node = (IDefaultMutableTreeNode) path.getLastPathComponent();\r
-        intLocation = node.getLocation();\r
-        return intLocation;\r
-    }\r
-\r
-    /**\r
-     Main class, reserved for test\r
-     \r
-     @param args\r
-     \r
-     **/\r
-    public static void main(String[] args) {\r
-        // TODO Auto-generated method stub\r
-    }\r
-\r
     /**\r
      Add input node as child node for current selected node\r
      \r
@@ -151,17 +111,17 @@ public class ITree extends JTree {
         treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
         this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
     }\r
-    \r
+\r
     /**\r
-    Add input node as child node for current selected node\r
-    \r
-    @param newNode The node need be added\r
-    \r
-    **/\r
-   public void addNode(IDefaultMutableTreeNode parentNode, IDefaultMutableTreeNode newNode) {\r
-       treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
-       this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
-   }\r
+     Add input node as child node for current selected node\r
+     \r
+     @param newNode The node need be added\r
+     \r
+     **/\r
+    public void addNode(IDefaultMutableTreeNode parentNode, IDefaultMutableTreeNode newNode) {\r
+        treeModel.insertNodeInto(newNode, parentNode, parentNode.getChildCount());\r
+        this.scrollPathToVisible(new TreePath(newNode.getPath()));\r
+    }\r
 \r
     /**\r
      Remove the selected node\r
@@ -173,13 +133,13 @@ public class ITree extends JTree {
         TreePath treePath = this.getSelectionPath();\r
         removeNodeByPath(treePath);\r
     }\r
-    \r
+\r
     /**\r
-    Remove the node by tree path\r
-    \r
-    @param strRemovedNode\r
-    \r
-    **/\r
+     Remove the node by tree path\r
+     \r
+     @param strRemovedNode\r
+     \r
+     **/\r
     public void removeNodeByPath(TreePath treePath) {\r
         if (treePath != null) {\r
             DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();\r
@@ -191,14 +151,29 @@ public class ITree extends JTree {
     }\r
     \r
     /**\r
-    Remove all child nodes under current node\r
+     Return a node by input tree path\r
+    \r
+     @param treePath\r
+     @return\r
     \r
     **/\r
+    public IDefaultMutableTreeNode getNodeByPath(TreePath treePath) {\r
+        if (treePath != null) {\r
+            IDefaultMutableTreeNode selectionNode = (IDefaultMutableTreeNode) treePath.getLastPathComponent();\r
+            return selectionNode;\r
+        }\r
+        return null;\r
+    }\r
+\r
+    /**\r
+     Remove all child nodes under current node\r
+     \r
+     **/\r
     public void removeNodeChildrenByPath(TreePath treePath) {\r
         if (treePath != null) {\r
             DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) treePath.getLastPathComponent();\r
             for (int index = currentNode.getChildCount() - 1; index > -1; index--) {\r
-                treeModel.removeNodeFromParent((DefaultMutableTreeNode)currentNode.getChildAt(index));\r
+                treeModel.removeNodeFromParent((DefaultMutableTreeNode) currentNode.getChildAt(index));\r
             }\r
         }\r
     }\r
@@ -212,7 +187,7 @@ public class ITree extends JTree {
         rootNode.removeAllChildren();\r
         treeModel.reload();\r
     }\r
-    \r
+\r
     public IDefaultMutableTreeNode getSelectNode() {\r
         TreePath treepath = this.getSelectionPath();\r
         IDefaultMutableTreeNode selectionNode = null;\r
@@ -221,7 +196,7 @@ public class ITree extends JTree {
         }\r
         return selectionNode;\r
     }\r
-    \r
+\r
     public IDefaultMutableTreeNode getNodeById(IDefaultMutableTreeNode node, Identification id) {\r
         for (int index = 0; index < node.getChildCount(); index++) {\r
             IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) node.getChildAt(index);\r
@@ -231,7 +206,7 @@ public class ITree extends JTree {
         }\r
         return null;\r
     }\r
-    \r
+\r
     public IDefaultMutableTreeNode getNodeById(IDefaultMutableTreeNode node, Identification id, int category) {\r
         for (int index = 0; index < node.getChildCount(); index++) {\r
             IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) node.getChildAt(index);\r
@@ -245,11 +220,11 @@ public class ITree extends JTree {
         }\r
         return null;\r
     }\r
-    \r
+\r
     public TreePath getPathOfNode(IDefaultMutableTreeNode node) {\r
         if (node != null) {\r
             TreePath treePath = new TreePath(treeModel.getPathToRoot(node));\r
-            return treePath;    \r
+            return treePath;\r
         }\r
         return null;\r
     }\r
index 10b8aee17faeafd756775adcbc23246a9be2c438..e022eb1d3a2e9e56ce276c3623a2af6a43690457 100644 (file)
@@ -26,6 +26,7 @@ import org.tianocore.IndustryStdIncludesDocument.IndustryStdIncludes;
 import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
 import org.tianocore.MsaFilesDocument.MsaFiles;\r
 import org.tianocore.PackageSurfaceAreaDocument.PackageSurfaceArea;\r
+import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;\r
 import org.tianocore.SourceFilesDocument.SourceFiles;\r
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.GlobalData;\r
@@ -295,7 +296,40 @@ public class WorkspaceTools {
             modulePath = modulePaths.get(index);\r
             ModuleIdentification id = GlobalData.openingModuleList.getIdByPath(modulePath);\r
             if (id != null) {\r
-                v.addElement(id);    \r
+                v.addElement(id);\r
+            }\r
+        }\r
+        Sort.sortModules(v, DataType.SORT_TYPE_ASCENDING);\r
+        return v;\r
+    }\r
+\r
+    /**\r
+     Get all module basic information from a platform\r
+     \r
+     @param id Package id\r
+     @return A vector includes all modules' basic information\r
+     \r
+     **/\r
+    public Vector<ModuleIdentification> getAllModules(PlatformIdentification fid) {\r
+        Vector<ModuleIdentification> v = new Vector<ModuleIdentification>();\r
+        PlatformSurfaceArea fpd = GlobalData.openingPlatformList.getOpeningPlatformById(fid).getXmlFpd();\r
+        if (fpd.getFrameworkModules() != null) {\r
+            for (int index = 0; index < fpd.getFrameworkModules().getModuleSAList().size(); index++) {\r
+                String guid = fpd.getFrameworkModules().getModuleSAList().get(index).getModuleGuid();\r
+                String version = fpd.getFrameworkModules().getModuleSAList().get(index).getModuleVersion();\r
+                ModuleIdentification id = GlobalData.openingModuleList.getIdByGuidVersion(guid, version);\r
+                if (id != null) {\r
+                    boolean isFind = false;\r
+                    for (int indexOfModules = 0; indexOfModules < v.size(); indexOfModules++) {\r
+                        if (v.elementAt(indexOfModules).equals(id)) {\r
+                            isFind = true;\r
+                            break;\r
+                        }\r
+                    }\r
+                    if (!isFind) {\r
+                        v.addElement(id);    \r
+                    }\r
+                }\r
             }\r
         }\r
         Sort.sortModules(v, DataType.SORT_TYPE_ASCENDING);\r