X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkWizard%2Fsrc%2Forg%2Ftianocore%2Fframeworkwizard%2FFrameworkWizardUI.java;h=092d7d10b42b6895e0595a97602cfa5ba7140586;hp=af4c2a6fc538db4f45e070ebcab766d299c61ecb;hb=102ae4cf41a21408df674f58f4f3fa850918a48c;hpb=8f9acbd7afefaeb33a15f00cf4998e94fffeebd0 diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java index af4c2a6fc5..092d7d10b4 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java @@ -64,6 +64,10 @@ import org.tianocore.frameworkwizard.common.ui.IDefaultMutableTreeNode; import org.tianocore.frameworkwizard.common.ui.IDesktopManager; import org.tianocore.frameworkwizard.common.ui.IFrame; import org.tianocore.frameworkwizard.common.ui.ITree; +import org.tianocore.frameworkwizard.far.createui.CreateStepOne; +import org.tianocore.frameworkwizard.far.deleteui.DeleteStepOne; +import org.tianocore.frameworkwizard.far.installui.InstallStepOne; +import org.tianocore.frameworkwizard.far.updateui.UpdateStepOne; import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification; import org.tianocore.frameworkwizard.module.ui.ModuleBootModes; import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs; @@ -114,7 +118,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele /// Define class Serial Version UID /// private static final long serialVersionUID = -7103240960573031772L; - + // // To save information of all files // @@ -282,11 +286,11 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele private JMenuItem jMenuItemHelpSearch = null; - private JMenuItem jMenuItemProjectInstallPackage = null; + private JMenuItem jMenuItemProjectInstallFar = null; - private JMenuItem jMenuItemProjectUpdatePackage = null; + private JMenuItem jMenuItemProjectUpdateFar = null; - private JMenuItem jMenuItemProjectRemovePackage = null; + private JMenuItem jMenuItemProjectRemoveFar = null; //private JToolBar jToolBarFile = null; @@ -294,6 +298,17 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele //private JToolBar jToolBarWindow = null; + private static FrameworkWizardUI fwui = null; + + private JMenuItem jMenuItemProjectCreateFar = null; + + public static FrameworkWizardUI getInstance() { + if (fwui == null) { + fwui = new FrameworkWizardUI(); + } + return fwui; + } + /** This method initializes jMenuBar @@ -1253,9 +1268,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele //jMenuProject.addSeparator(); jMenuProject.add(getJMenuItemProjectChangeWorkspace()); jMenuProject.addSeparator(); - jMenuProject.add(getJMenuItemProjectInstallPackage()); - jMenuProject.add(getJMenuItemProjectUpdatePackage()); - jMenuProject.add(getJMenuItemProjectRemovePackage()); + jMenuProject.add(getJMenuItemProjectCreateFar()); + jMenuProject.add(getJMenuItemProjectInstallFar()); + jMenuProject.add(getJMenuItemProjectUpdateFar()); + jMenuProject.add(getJMenuItemProjectRemoveFar()); //jMenuProject.addSeparator(); jMenuProject.add(getJMenuProjectBuildTargets()); } @@ -1598,15 +1614,15 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele * * @return javax.swing.JMenuItem */ - private JMenuItem getJMenuItemProjectInstallPackage() { - if (jMenuItemProjectInstallPackage == null) { - jMenuItemProjectInstallPackage = new JMenuItem(); - jMenuItemProjectInstallPackage.setText("Install Distribution Package"); - jMenuItemProjectInstallPackage.setMnemonic('I'); - jMenuItemProjectInstallPackage.setEnabled(false); - jMenuItemProjectInstallPackage.addActionListener(this); + private JMenuItem getJMenuItemProjectInstallFar() { + if (jMenuItemProjectInstallFar == null) { + jMenuItemProjectInstallFar = new JMenuItem(); + jMenuItemProjectInstallFar.setText("Install FAR"); + jMenuItemProjectInstallFar.setMnemonic('I'); + jMenuItemProjectInstallFar.setEnabled(true); + jMenuItemProjectInstallFar.addActionListener(this); } - return jMenuItemProjectInstallPackage; + return jMenuItemProjectInstallFar; } /** @@ -1614,15 +1630,16 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele * * @return javax.swing.JMenuItem */ - private JMenuItem getJMenuItemProjectUpdatePackage() { - if (jMenuItemProjectUpdatePackage == null) { - jMenuItemProjectUpdatePackage = new JMenuItem(); - jMenuItemProjectUpdatePackage.setText("Update Disstribution Package"); - jMenuItemProjectUpdatePackage.setMnemonic('U'); - jMenuItemProjectUpdatePackage.setEnabled(false); - jMenuItemProjectUpdatePackage.addActionListener(this); + private JMenuItem getJMenuItemProjectUpdateFar() { + if (jMenuItemProjectUpdateFar == null) { + jMenuItemProjectUpdateFar = new JMenuItem(); + jMenuItemProjectUpdateFar.setText("Update FAR"); + jMenuItemProjectUpdateFar.setMnemonic('U'); + jMenuItemProjectUpdateFar.setEnabled(true); + jMenuItemProjectUpdateFar.addActionListener(this); + jMenuItemProjectUpdateFar.setVisible(false); } - return jMenuItemProjectUpdatePackage; + return jMenuItemProjectUpdateFar; } /** @@ -1630,15 +1647,30 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele * * @return javax.swing.JMenuItem */ - private JMenuItem getJMenuItemProjectRemovePackage() { - if (jMenuItemProjectRemovePackage == null) { - jMenuItemProjectRemovePackage = new JMenuItem(); - jMenuItemProjectRemovePackage.setText("Remove Distribution Package"); - jMenuItemProjectRemovePackage.setMnemonic('R'); - jMenuItemProjectRemovePackage.setEnabled(false); - jMenuItemProjectRemovePackage.addActionListener(this); + private JMenuItem getJMenuItemProjectRemoveFar() { + if (jMenuItemProjectRemoveFar == null) { + jMenuItemProjectRemoveFar = new JMenuItem(); + jMenuItemProjectRemoveFar.setText("Remove FAR"); + jMenuItemProjectRemoveFar.setMnemonic('R'); + jMenuItemProjectRemoveFar.setEnabled(true); + jMenuItemProjectRemoveFar.addActionListener(this); } - return jMenuItemProjectRemovePackage; + return jMenuItemProjectRemoveFar; + } + + /** + * This method initializes jMenuItemProjectCreateFar + * + * @return javax.swing.JMenuItem + */ + private JMenuItem getJMenuItemProjectCreateFar() { + if (jMenuItemProjectCreateFar == null) { + jMenuItemProjectCreateFar = new JMenuItem(); + jMenuItemProjectCreateFar.setText("Create FAR"); + jMenuItemProjectCreateFar.setMnemonic('C'); + jMenuItemProjectCreateFar.addActionListener(this); + } + return jMenuItemProjectCreateFar; } /* (non-Javadoc) @@ -1648,7 +1680,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele * */ public static void main(String[] args) { - FrameworkWizardUI module = new FrameworkWizardUI(); + FrameworkWizardUI module = FrameworkWizardUI.getInstance(); module.setVisible(true); } @@ -1686,7 +1718,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele this.addComponentListener(this); this.getCompontentsFromFrameworkDatabase(); this.setContentPane(getJContentPane()); - this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]"); + this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + + Workspace.getCurrentWorkspace() + "]"); this.setExitType(1); // @@ -1757,10 +1790,53 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele changeWorkspace(); } + if (arg0.getSource() == jMenuItemProjectCreateFar) { + CreateStepOne cso = new CreateStepOne(this, true); + int result = cso.showDialog(); + if (result == DataType.RETURN_TYPE_OK) { + String strReturn = "Create Far Done!"; + JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE); + } + cso.dispose(); + } + + if (arg0.getSource() == jMenuItemProjectInstallFar) { + InstallStepOne iso = new InstallStepOne(this, true); + int result = iso.showDialog(); + if (result == DataType.RETURN_TYPE_OK) { + String strReturn = "Install Far Done!
The WORKSPACE will be refreshed!"; + JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE); + this.closeAll(); + } + iso.dispose(); + } + + if (arg0.getSource() == jMenuItemProjectRemoveFar) { + DeleteStepOne dso = new DeleteStepOne(this, true); + int result = dso.showDialog(); + if (result == DataType.RETURN_TYPE_OK) { + String strReturn = "Delete Far Done!
The WORKSPACE will be refreshed!"; + JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE); + this.closeAll(); + } + dso.dispose(); + } + + if (arg0.getSource() == jMenuItemProjectUpdateFar) { + UpdateStepOne uso = new UpdateStepOne(this, true); + int result = uso.showDialog(); + if (result == DataType.RETURN_TYPE_OK) { + String strReturn = "Update Far Done!
The WORKSPACE will be refreshed!"; + JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE); + this.closeAll(); + } + uso.dispose(); + } + if (arg0.getSource() == jMenuItemToolsClone) { cloneItem(); } - + if (arg0.getSource() == jMenuItemToolsToolChainConfiguration) { setupToolChainConfiguration(); } @@ -1785,14 +1861,56 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele // Make Module Description dmtnModuleDescription = new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode.MODULE, -1); - if (this.vModuleList.size() > 0) { - for (int index = 0; index < this.vModuleList.size(); index++) { - dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(), - IDefaultMutableTreeNode.MSA_HEADER, false, - this.vModuleList.elementAt(index))); + // + // First add package + // + if (this.vPackageList.size() > 0) { + for (int index = 0; index < this.vPackageList.size(); index++) { + IDefaultMutableTreeNode dmtnModulePackage = null; + IDefaultMutableTreeNode dmtnModulePackageLibrary = null; + IDefaultMutableTreeNode dmtnModulePackageModule = null; + + dmtnModulePackage = new IDefaultMutableTreeNode(this.vPackageList.elementAt(index).getName(), + IDefaultMutableTreeNode.MODULE_PACKAGE, false, + this.vPackageList.elementAt(index)); + dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library", + IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, + false, this.vPackageList.elementAt(index)); + dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", + IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE, + false, this.vPackageList.elementAt(index)); + + Vector vModule = wt.getAllModules(this.vPackageList.elementAt(index)); + for (int indexJ = 0; indexJ < vModule.size(); indexJ++) { + if (vModule.get(indexJ).isLibrary()) { + dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(), + IDefaultMutableTreeNode.MSA_HEADER, + false, vModule.get(indexJ))); + } else { + dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(), + IDefaultMutableTreeNode.MSA_HEADER, + false, vModule.get(indexJ))); + } + } + if (dmtnModulePackageModule.getChildCount() > 0) { + dmtnModulePackage.add(dmtnModulePackageModule); + } + if (dmtnModulePackageLibrary.getChildCount() > 0) { + dmtnModulePackage.add(dmtnModulePackageLibrary); + } + + dmtnModuleDescription.add(dmtnModulePackage); } } + // if (this.vModuleList.size() > 0) { + // for (int index = 0; index < this.vModuleList.size(); index++) { + // dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(), + // IDefaultMutableTreeNode.MSA_HEADER, false, + // this.vModuleList.elementAt(index))); + // } + // } + // Make Package Description dmtnPackageDescription = new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode.PACKAGE, -1); if (this.vPackageList.size() > 0) { @@ -1930,6 +2048,155 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele return fc.showSaveDialog(new JPanel()); } + /** + Add a module to tree + + @param mid The module node to be added + + **/ + private void addModuleToTree(ModuleIdentification mid) { + // + // Add new MsaHeader node to the tree + // + IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MSA_HEADER, + true, mid); + // + // First find the module belongs to which package + // + IDefaultMutableTreeNode packageNode = iTree.getNodeById(dmtnModuleDescription, mid.getPackageId(), + IDefaultMutableTreeNode.MODULE_PACKAGE); + // + // To check if has module node or library node + // + IDefaultMutableTreeNode parentModuleNode = null; + IDefaultMutableTreeNode parentLibraryNode = null; + boolean hasModule = false; + boolean hasLibrary = false; + for (int index = 0; index < packageNode.getChildCount(); index++) { + IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) packageNode.getChildAt(index); + if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY) { + hasLibrary = true; + parentLibraryNode = iNode; + } + if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) { + hasModule = true; + parentModuleNode = iNode; + } + } + + // + // If is a module + // + if (!mid.isLibrary()) { + // + // Create parent node first if has no parent node + // + if (!hasModule) { + parentModuleNode = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE, + false, mid.getPackageId()); + iTree.addNode(packageNode, parentModuleNode); + } + + iTree.addNode(parentModuleNode, node); + } + + // + // If is a Library + // + if (mid.isLibrary()) { + // + // Create parent node first if has no parent node + // + if (!hasLibrary) { + parentLibraryNode = new IDefaultMutableTreeNode("Library", + IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false, + mid.getPackageId()); + iTree.addNode(packageNode, parentLibraryNode); + } + + iTree.addNode(parentLibraryNode, node); + } + } + + /** + Open Module + + @param path input file path + + **/ + private void openModule(String path, ModuleIdentification moduleId) { + ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null; + try { + msa = OpenFile.openMsaFile(path); + } catch (IOException e) { + Log.err("Open Module Surface Area " + path, e.getMessage()); + return; + } catch (XmlException e) { + Log.err("Open Module Surface Area " + path, e.getMessage()); + return; + } catch (Exception e) { + Log.err("Open Module Surface Area " + path, "Invalid file type"); + return; + } + Identification id = new Identification(msa.getMsaHeader().getModuleName(), msa.getMsaHeader().getGuidValue(), + msa.getMsaHeader().getVersion(), path); + // + // Generate module id + // + PackageIdentification pid = wt.getPackageIdByModuleId(id); + if (pid != null) { + // + // To judge if the module existed in vModuleList + // If not, add it to vModuleList + // + boolean isFind = false; + for (int index = 0; index < vModuleList.size(); index++) { + if (vModuleList.elementAt(index).equals(id)) { + isFind = true; + break; + } + } + if (!isFind) { + ModuleIdentification mid = new ModuleIdentification(id, pid, moduleId.isLibrary()); + vModuleList.addElement(mid); + addModuleToTree(mid); + } + } else { + // + // The module is not in existing packages + // + Log.err("The module hasn't been added to any package of current workspace!"); + return; + } + + // + // Make the node selected + // + iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id, + IDefaultMutableTreeNode.MSA_HEADER))); + // + // Update opening Module list information + // + if (!openingModuleList.existsModule(id)) { + // + // Insert sub node of module + // + insertModuleTreeNode(id); + iTree.getSelectNode().setOpening(true); + + // + // Update opening module list + // + openingModuleList.insertToOpeningModuleList(id, msa); + openingModuleList.setTreePathById(id, iTree.getSelectionPath()); + } + // + // Show msa header in editor panel + // + showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id)); + this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id); + } + /** Open Module @@ -1969,14 +2236,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele } } if (!isFind) { - vModuleList.addElement(new ModuleIdentification(id, pid)); - // - // Add new MsaHeader node to the tree - // - IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(), - IDefaultMutableTreeNode.MSA_HEADER, true, - vModuleList.lastElement()); - iTree.addNode(dmtnModuleDescription, node); + ModuleIdentification mid = new ModuleIdentification(id, pid); + vModuleList.addElement(mid); + addModuleToTree(mid); } } else { // @@ -1986,6 +2248,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele return; } + // // Make the node selected // iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id, @@ -2302,7 +2565,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele } private void insertPlatformTreeNode(Identification id) { - iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id)); + iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions", + IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id)); iTree.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode.FPD_FLASH, true, id)); iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES, true, id)); @@ -2369,10 +2633,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele @param elementType @param fpd - **/ + **/ private void showPlatformElement(int elementType, OpeningPlatformType fpd) { this.cleanDesktopPanePlatform(); - + switch (elementType) { case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS: FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd); @@ -2587,7 +2851,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele e.printStackTrace(); return; } - this.openModule(smb.getMid().getPath()); + this.openModule(smb.getMid().getPath(), smb.getMid()); } } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) { // @@ -2875,31 +3139,28 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele // Reinit whole window // closeAll(); - this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]"); + this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + + Workspace.getCurrentWorkspace() + "]"); } sw.dispose(); } - + /** - Show Tool Chain Configuration Dialog to setup Tool Chain - - **/ + Show Tool Chain Configuration Dialog to setup Tool Chain + + **/ private void setupToolChainConfiguration() { - ToolChainConfig tcc = new ToolChainConfig(this, true); - int result = tcc.showDialog(); - - if (result == DataType.RETURN_TYPE_CANCEL) { - tcc.dispose(); - } + ToolChainConfig tcc = ToolChainConfig.getInstance(); + tcc.showDialog(); } - + /** Clone selected item **/ private void cloneItem() { int mode = -1; - + // // Check if there is any item can be cloned // @@ -2914,7 +3175,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele Log.err("Please select a target to clone!"); return; } - + if (category == IDefaultMutableTreeNode.WORKSPACE) { mode = DataType.RETURN_TYPE_WORKSPACE; id = null; @@ -2928,10 +3189,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele if (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) { mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA; } - + Clone c = new Clone(this, true, mode, id); int result = c.showDialog(); - + if (result == DataType.RETURN_TYPE_CANCEL) { c.dispose(); } @@ -2941,13 +3202,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) { Tools.showInformationMessage("Module Surface Area Clone Finished"); vModuleList.addElement(c.getMid()); - // - // Add new MsaHeader node to the tree - // - IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(), - IDefaultMutableTreeNode.MSA_HEADER, true, - vModuleList.lastElement()); - iTree.addNode(dmtnModuleDescription, node); + addModuleToTree(c.getMid()); } if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) { Tools.showInformationMessage("Package Surface Area Clone Finished"); @@ -3020,7 +3275,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele } else { int category = iTree.getSelectCategory(); if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE - || category == IDefaultMutableTreeNode.PLATFORM) { + || category == IDefaultMutableTreeNode.PLATFORM + || category == IDefaultMutableTreeNode.MODULE_PACKAGE + || category == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY + || category == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) { jMenuItemToolsClone.setEnabled(false); } else { jMenuItemToolsClone.setEnabled(true);