import org.tianocore.frameworkwizard.common.DataType;\r
import org.tianocore.frameworkwizard.common.IFileFilter;\r
import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.OpenFile;\r
import org.tianocore.frameworkwizard.common.SaveFile;\r
import org.tianocore.frameworkwizard.common.Tools;\r
import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpenFile;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleList;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageList;\r
import org.tianocore.frameworkwizard.common.ui.IDesktopManager;\r
import org.tianocore.frameworkwizard.common.ui.IFrame;\r
import org.tianocore.frameworkwizard.common.ui.ITree;\r
+import org.tianocore.frameworkwizard.far.createui.CreateStepOne;\r
+import org.tianocore.frameworkwizard.far.deleteui.DeleteStepOne;\r
+import org.tianocore.frameworkwizard.far.installui.InstallStepOne;\r
+import org.tianocore.frameworkwizard.far.updateui.UpdateStepOne;\r
import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;\r
import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;\r
/// Define class Serial Version UID\r
///\r
private static final long serialVersionUID = -7103240960573031772L;\r
- \r
+\r
//\r
// To save information of all files\r
//\r
\r
private JMenuItem jMenuItemHelpSearch = null;\r
\r
- private JMenuItem jMenuItemProjectInstallPackage = null;\r
+ private JMenuItem jMenuItemProjectInstallFar = null;\r
\r
- private JMenuItem jMenuItemProjectUpdatePackage = null;\r
+ private JMenuItem jMenuItemProjectUpdateFar = null;\r
\r
- private JMenuItem jMenuItemProjectRemovePackage = null;\r
+ private JMenuItem jMenuItemProjectRemoveFar = null;\r
\r
//private JToolBar jToolBarFile = null;\r
\r
//private JToolBar jToolBarEdit = null;\r
\r
//private JToolBar jToolBarWindow = null;\r
- \r
+\r
private static FrameworkWizardUI fwui = null;\r
- \r
+\r
+ private JMenuItem jMenuItemProjectCreateFar = null;\r
+\r
public static FrameworkWizardUI getInstance() {\r
if (fwui == null) {\r
fwui = new FrameworkWizardUI();\r
//jMenuProject.addSeparator();\r
jMenuProject.add(getJMenuItemProjectChangeWorkspace());\r
jMenuProject.addSeparator();\r
- jMenuProject.add(getJMenuItemProjectInstallPackage());\r
- jMenuProject.add(getJMenuItemProjectUpdatePackage());\r
- jMenuProject.add(getJMenuItemProjectRemovePackage());\r
+ jMenuProject.add(getJMenuItemProjectCreateFar());\r
+ jMenuProject.add(getJMenuItemProjectInstallFar());\r
+ jMenuProject.add(getJMenuItemProjectUpdateFar());\r
+ jMenuProject.add(getJMenuItemProjectRemoveFar());\r
//jMenuProject.addSeparator();\r
jMenuProject.add(getJMenuProjectBuildTargets());\r
}\r
* \r
* @return javax.swing.JMenuItem \r
*/\r
- private JMenuItem getJMenuItemProjectInstallPackage() {\r
- if (jMenuItemProjectInstallPackage == null) {\r
- jMenuItemProjectInstallPackage = new JMenuItem();\r
- jMenuItemProjectInstallPackage.setText("Install Distribution Package");\r
- jMenuItemProjectInstallPackage.setMnemonic('I');\r
- jMenuItemProjectInstallPackage.setEnabled(false);\r
- jMenuItemProjectInstallPackage.addActionListener(this);\r
+ private JMenuItem getJMenuItemProjectInstallFar() {\r
+ if (jMenuItemProjectInstallFar == null) {\r
+ jMenuItemProjectInstallFar = new JMenuItem();\r
+ jMenuItemProjectInstallFar.setText("Install FAR");\r
+ jMenuItemProjectInstallFar.setMnemonic('I');\r
+ jMenuItemProjectInstallFar.setEnabled(true);\r
+ jMenuItemProjectInstallFar.addActionListener(this);\r
}\r
- return jMenuItemProjectInstallPackage;\r
+ return jMenuItemProjectInstallFar;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JMenuItem \r
*/\r
- private JMenuItem getJMenuItemProjectUpdatePackage() {\r
- if (jMenuItemProjectUpdatePackage == null) {\r
- jMenuItemProjectUpdatePackage = new JMenuItem();\r
- jMenuItemProjectUpdatePackage.setText("Update Disstribution Package");\r
- jMenuItemProjectUpdatePackage.setMnemonic('U');\r
- jMenuItemProjectUpdatePackage.setEnabled(false);\r
- jMenuItemProjectUpdatePackage.addActionListener(this);\r
+ private JMenuItem getJMenuItemProjectUpdateFar() {\r
+ if (jMenuItemProjectUpdateFar == null) {\r
+ jMenuItemProjectUpdateFar = new JMenuItem();\r
+ jMenuItemProjectUpdateFar.setText("Update FAR");\r
+ jMenuItemProjectUpdateFar.setMnemonic('U');\r
+ jMenuItemProjectUpdateFar.setEnabled(true);\r
+ jMenuItemProjectUpdateFar.addActionListener(this);\r
+ jMenuItemProjectUpdateFar.setVisible(true);\r
}\r
- return jMenuItemProjectUpdatePackage;\r
+ return jMenuItemProjectUpdateFar;\r
}\r
\r
/**\r
* \r
* @return javax.swing.JMenuItem \r
*/\r
- private JMenuItem getJMenuItemProjectRemovePackage() {\r
- if (jMenuItemProjectRemovePackage == null) {\r
- jMenuItemProjectRemovePackage = new JMenuItem();\r
- jMenuItemProjectRemovePackage.setText("Remove Distribution Package");\r
- jMenuItemProjectRemovePackage.setMnemonic('R');\r
- jMenuItemProjectRemovePackage.setEnabled(false);\r
- jMenuItemProjectRemovePackage.addActionListener(this);\r
+ private JMenuItem getJMenuItemProjectRemoveFar() {\r
+ if (jMenuItemProjectRemoveFar == null) {\r
+ jMenuItemProjectRemoveFar = new JMenuItem();\r
+ jMenuItemProjectRemoveFar.setText("Remove FAR");\r
+ jMenuItemProjectRemoveFar.setMnemonic('R');\r
+ jMenuItemProjectRemoveFar.setEnabled(true);\r
+ jMenuItemProjectRemoveFar.addActionListener(this);\r
+ }\r
+ return jMenuItemProjectRemoveFar;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jMenuItemProjectCreateFar \r
+ * \r
+ * @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemProjectCreateFar() {\r
+ if (jMenuItemProjectCreateFar == null) {\r
+ jMenuItemProjectCreateFar = new JMenuItem();\r
+ jMenuItemProjectCreateFar.setText("Create FAR");\r
+ jMenuItemProjectCreateFar.setMnemonic('C');\r
+ jMenuItemProjectCreateFar.addActionListener(this);\r
}\r
- return jMenuItemProjectRemovePackage;\r
+ return jMenuItemProjectCreateFar;\r
}\r
\r
/* (non-Javadoc)\r
this.addComponentListener(this);\r
this.getCompontentsFromFrameworkDatabase();\r
this.setContentPane(getJContentPane());\r
- this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+ this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
+ + Workspace.getCurrentWorkspace() + "]");\r
this.setExitType(1);\r
\r
//\r
changeWorkspace();\r
}\r
\r
+ if (arg0.getSource() == jMenuItemProjectCreateFar) {\r
+ CreateStepOne cso = new CreateStepOne(this, true);\r
+ 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,\r
+ JOptionPane.INFORMATION_MESSAGE);\r
+ }\r
+ cso.dispose();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemProjectInstallFar) {\r
+ InstallStepOne iso = new InstallStepOne(this, true);\r
+ 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,\r
+ JOptionPane.INFORMATION_MESSAGE);\r
+ this.closeAll();\r
+ }\r
+ iso.dispose();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemProjectRemoveFar) {\r
+ DeleteStepOne dso = new DeleteStepOne(this, true);\r
+ 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,\r
+ JOptionPane.INFORMATION_MESSAGE);\r
+ this.closeAll();\r
+ }\r
+ dso.dispose();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemProjectUpdateFar) {\r
+ UpdateStepOne uso = new UpdateStepOne(this, true);\r
+ 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,\r
+ JOptionPane.INFORMATION_MESSAGE);\r
+ this.closeAll();\r
+ }\r
+ uso.dispose();\r
+ }\r
+\r
if (arg0.getSource() == jMenuItemToolsClone) {\r
cloneItem();\r
}\r
- \r
+\r
if (arg0.getSource() == jMenuItemToolsToolChainConfiguration) {\r
setupToolChainConfiguration();\r
}\r
// Make Module Description\r
dmtnModuleDescription = new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode.MODULE, -1);\r
\r
- if (this.vModuleList.size() > 0) {\r
- for (int index = 0; index < this.vModuleList.size(); index++) {\r
- dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(),\r
- IDefaultMutableTreeNode.MSA_HEADER, false,\r
- this.vModuleList.elementAt(index)));\r
+ //\r
+ // First add package\r
+ //\r
+ if (this.vPackageList.size() > 0) {\r
+ for (int index = 0; index < this.vPackageList.size(); index++) {\r
+ IDefaultMutableTreeNode dmtnModulePackage = null;\r
+ IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
+ IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
+\r
+ dmtnModulePackage = new IDefaultMutableTreeNode(this.vPackageList.elementAt(index).getName(),\r
+ IDefaultMutableTreeNode.MODULE_PACKAGE, false,\r
+ this.vPackageList.elementAt(index));\r
+ dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
+ IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY,\r
+ false, this.vPackageList.elementAt(index));\r
+ dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",\r
+ IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
+ false, this.vPackageList.elementAt(index));\r
+\r
+ Vector<ModuleIdentification> vModule = wt.getAllModules(this.vPackageList.elementAt(index));\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.MSA_HEADER,\r
+ false, vModule.get(indexJ)));\r
+ } else {\r
+ dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
+ IDefaultMutableTreeNode.MSA_HEADER,\r
+ false, vModule.get(indexJ)));\r
+ }\r
+ }\r
+ if (dmtnModulePackageModule.getChildCount() > 0) {\r
+ dmtnModulePackage.add(dmtnModulePackageModule);\r
+ }\r
+ if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
+ dmtnModulePackage.add(dmtnModulePackageLibrary);\r
+ }\r
+\r
+ dmtnModuleDescription.add(dmtnModulePackage);\r
}\r
}\r
\r
+ // if (this.vModuleList.size() > 0) {\r
+ // for (int index = 0; index < this.vModuleList.size(); index++) {\r
+ // dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(),\r
+ // IDefaultMutableTreeNode.MSA_HEADER, false,\r
+ // this.vModuleList.elementAt(index)));\r
+ // }\r
+ // }\r
+\r
// Make Package Description\r
dmtnPackageDescription = new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode.PACKAGE, -1);\r
if (this.vPackageList.size() > 0) {\r
return fc.showSaveDialog(new JPanel());\r
}\r
\r
+ /**\r
+ Add a module to tree\r
+ \r
+ @param mid The module node to be added\r
+ \r
+ **/\r
+ private void addModuleToTree(ModuleIdentification mid) {\r
+ //\r
+ // Add new MsaHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MSA_HEADER,\r
+ true, mid);\r
+ //\r
+ // First find the module belongs to which package\r
+ //\r
+ IDefaultMutableTreeNode packageNode = iTree.getNodeById(dmtnModuleDescription, mid.getPackageId(),\r
+ IDefaultMutableTreeNode.MODULE_PACKAGE);\r
+ //\r
+ // To check if has module node or library node\r
+ //\r
+ IDefaultMutableTreeNode parentModuleNode = null;\r
+ IDefaultMutableTreeNode parentLibraryNode = null;\r
+ boolean hasModule = false;\r
+ boolean hasLibrary = false;\r
+ for (int index = 0; index < packageNode.getChildCount(); index++) {\r
+ IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) packageNode.getChildAt(index);\r
+ if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY) {\r
+ hasLibrary = true;\r
+ parentLibraryNode = iNode;\r
+ }\r
+ if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {\r
+ hasModule = true;\r
+ parentModuleNode = iNode;\r
+ }\r
+ }\r
+\r
+ //\r
+ // If is a module\r
+ //\r
+ if (!mid.isLibrary()) {\r
+ //\r
+ // Create parent node first if has no parent node\r
+ //\r
+ if (!hasModule) {\r
+ parentModuleNode = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
+ false, mid.getPackageId());\r
+ iTree.addNode(packageNode, parentModuleNode);\r
+ }\r
+\r
+ iTree.addNode(parentModuleNode, node);\r
+ }\r
+\r
+ //\r
+ // If is a Library\r
+ //\r
+ if (mid.isLibrary()) {\r
+ //\r
+ // Create parent node first if has no parent node\r
+ //\r
+ if (!hasLibrary) {\r
+ parentLibraryNode = new IDefaultMutableTreeNode("Library",\r
+ IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
+ mid.getPackageId());\r
+ iTree.addNode(packageNode, parentLibraryNode);\r
+ }\r
+\r
+ iTree.addNode(parentLibraryNode, node);\r
+ }\r
+ }\r
+\r
+ /**\r
+ Open Module\r
+\r
+ @param path input file path\r
+ \r
+ **/\r
+ private void openModule(String path, ModuleIdentification moduleId) {\r
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
+ try {\r
+ msa = OpenFile.openMsaFile(path);\r
+ } catch (IOException e) {\r
+ Log.err("Open Module Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (XmlException e) {\r
+ Log.err("Open Module Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (Exception e) {\r
+ Log.err("Open Module Surface Area " + path, "Invalid file type");\r
+ return;\r
+ }\r
+ Identification id = new Identification(msa.getMsaHeader().getModuleName(), msa.getMsaHeader().getGuidValue(),\r
+ msa.getMsaHeader().getVersion(), path);\r
+ //\r
+ // Generate module id\r
+ //\r
+ PackageIdentification pid = wt.getPackageIdByModuleId(id);\r
+ if (pid != null) {\r
+ //\r
+ // To judge if the module existed in vModuleList\r
+ // If not, add it to vModuleList\r
+ //\r
+ boolean isFind = false;\r
+ for (int index = 0; index < vModuleList.size(); index++) {\r
+ if (vModuleList.elementAt(index).equals(id)) {\r
+ isFind = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isFind) {\r
+ ModuleIdentification mid = new ModuleIdentification(id, pid, moduleId.isLibrary());\r
+ vModuleList.addElement(mid);\r
+ addModuleToTree(mid);\r
+ }\r
+ } else {\r
+ //\r
+ // The module is not in existing packages\r
+ //\r
+ Log.err("The module hasn't been added to any package of current workspace!");\r
+ return;\r
+ }\r
+\r
+ //\r
+ // Make the node selected\r
+ //\r
+ iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
+ IDefaultMutableTreeNode.MSA_HEADER)));\r
+ //\r
+ // Update opening Module list information\r
+ //\r
+ if (!openingModuleList.existsModule(id)) {\r
+ //\r
+ // Insert sub node of module\r
+ //\r
+ insertModuleTreeNode(id);\r
+ iTree.getSelectNode().setOpening(true);\r
+\r
+ //\r
+ // Update opening module list\r
+ //\r
+ openingModuleList.insertToOpeningModuleList(id, msa);\r
+ openingModuleList.setTreePathById(id, iTree.getSelectionPath());\r
+ }\r
+ //\r
+ // Show msa header in editor panel\r
+ //\r
+ showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id));\r
+ this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);\r
+ }\r
+\r
/**\r
Open Module\r
\r
}\r
}\r
if (!isFind) {\r
- vModuleList.addElement(new ModuleIdentification(id, pid));\r
- //\r
- // Add new MsaHeader node to the tree\r
- //\r
- IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),\r
- IDefaultMutableTreeNode.MSA_HEADER, true,\r
- vModuleList.lastElement());\r
- iTree.addNode(dmtnModuleDescription, node);\r
+ ModuleIdentification mid = new ModuleIdentification(id, pid);\r
+ vModuleList.addElement(mid);\r
+ addModuleToTree(mid);\r
}\r
} else {\r
//\r
return;\r
}\r
\r
+ //\r
// Make the node selected\r
//\r
iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
}\r
\r
private void insertPlatformTreeNode(Identification id) {\r
- iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",\r
+ IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));\r
iTree.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode.FPD_FLASH, true, id));\r
iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,\r
true, id));\r
@param elementType\r
@param fpd\r
\r
- **/\r
+ **/\r
private void showPlatformElement(int elementType, OpeningPlatformType fpd) {\r
this.cleanDesktopPanePlatform();\r
- \r
+\r
switch (elementType) {\r
case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:\r
FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd);\r
e.printStackTrace();\r
return;\r
}\r
- this.openModule(smb.getMid().getPath());\r
+ this.openModule(smb.getMid().getPath(), smb.getMid());\r
}\r
} else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
//\r
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
// Reinit whole window\r
//\r
closeAll();\r
- this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+ this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
+ + Workspace.getCurrentWorkspace() + "]");\r
}\r
sw.dispose();\r
}\r
- \r
+\r
/**\r
- Show Tool Chain Configuration Dialog to setup Tool Chain\r
- \r
- **/\r
+ Show Tool Chain Configuration Dialog to setup Tool Chain\r
+ \r
+ **/\r
private void setupToolChainConfiguration() {\r
ToolChainConfig tcc = ToolChainConfig.getInstance();\r
tcc.showDialog();\r
}\r
- \r
+\r
/**\r
Clone selected item\r
\r
**/\r
private void cloneItem() {\r
int mode = -1;\r
- \r
+\r
//\r
// Check if there is any item can be cloned\r
//\r
Log.err("Please select a target to clone!");\r
return;\r
}\r
- \r
+\r
if (category == IDefaultMutableTreeNode.WORKSPACE) {\r
mode = DataType.RETURN_TYPE_WORKSPACE;\r
id = null;\r
if (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\r
}\r
- \r
+\r
Clone c = new Clone(this, true, mode, id);\r
int result = c.showDialog();\r
- \r
+\r
if (result == DataType.RETURN_TYPE_CANCEL) {\r
c.dispose();\r
}\r
if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
Tools.showInformationMessage("Module Surface Area Clone Finished");\r
vModuleList.addElement(c.getMid());\r
- //\r
- // Add new MsaHeader node to the tree\r
- //\r
- IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),\r
- IDefaultMutableTreeNode.MSA_HEADER, true,\r
- vModuleList.lastElement());\r
- iTree.addNode(dmtnModuleDescription, node);\r
+ addModuleToTree(c.getMid());\r
}\r
if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
Tools.showInformationMessage("Package Surface Area Clone Finished");\r
} else {\r
int category = iTree.getSelectCategory();\r
if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE\r
- || category == IDefaultMutableTreeNode.PLATFORM) {\r
+ || category == IDefaultMutableTreeNode.PLATFORM\r
+ || category == IDefaultMutableTreeNode.MODULE_PACKAGE\r
+ || category == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY\r
+ || category == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {\r
jMenuItemToolsClone.setEnabled(false);\r
} else {\r
jMenuItemToolsClone.setEnabled(true);\r