]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / FrameworkWizardUI.java
diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
deleted file mode 100644 (file)
index ad08749..0000000
+++ /dev/null
@@ -1,3716 +0,0 @@
-/** @file\r
\r
- The main GUI for module editor. \r
\r
- Copyright (c) 2006, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution.  The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- **/\r
-\r
-package org.tianocore.frameworkwizard;\r
-\r
-import java.awt.event.ActionEvent;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.KeyEvent;\r
-import java.awt.event.KeyListener;\r
-import java.awt.event.MouseEvent;\r
-import java.awt.event.MouseListener;\r
-import java.awt.event.WindowEvent;\r
-import java.io.BufferedWriter;\r
-import java.io.File;\r
-import java.io.FileWriter;\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
-import javax.swing.JCheckBoxMenuItem;\r
-import javax.swing.JDesktopPane;\r
-import javax.swing.JFileChooser;\r
-import javax.swing.JFrame;\r
-import javax.swing.JInternalFrame;\r
-import javax.swing.JMenu;\r
-import javax.swing.JMenuBar;\r
-import javax.swing.JMenuItem;\r
-import javax.swing.JOptionPane;\r
-import javax.swing.JPanel;\r
-import javax.swing.JScrollPane;\r
-import javax.swing.JSplitPane;\r
-import javax.swing.JTabbedPane;\r
-import javax.swing.event.MenuEvent;\r
-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
-import org.tianocore.frameworkwizard.common.DataType;\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.SaveFile;\r
-import org.tianocore.frameworkwizard.common.Tools;\r
-import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
-import org.tianocore.frameworkwizard.common.find.FindResult;\r
-import org.tianocore.frameworkwizard.common.ui.IDefaultMutableTreeNode;\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
-import org.tianocore.frameworkwizard.module.ui.ModuleEvents;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleExterns;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleGuids;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleHiiPackages;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleHobs;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleLibraryClassDefinitions;\r
-import org.tianocore.frameworkwizard.module.ui.ModulePCDs;\r
-import org.tianocore.frameworkwizard.module.ui.ModulePackageDependencies;\r
-import org.tianocore.frameworkwizard.module.ui.ModulePpis;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleProtocols;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleSourceFiles;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleSystemTables;\r
-import org.tianocore.frameworkwizard.module.ui.ModuleVariables;\r
-import org.tianocore.frameworkwizard.module.ui.MsaHeader;\r
-import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdGuidDecls;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdHeader;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdLibClassDecls;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdMsaFiles;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdPackageHeaders;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdPcdDefs;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdPpiDecls;\r
-import org.tianocore.frameworkwizard.packaging.ui.SpdProtocolDecls;\r
-import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdBuildOptions;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdDynamicPcdBuildDefinitions;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdFlash;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdFrameworkModules;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdHeader;\r
-import org.tianocore.frameworkwizard.platform.ui.FpdPlatformDefs;\r
-import org.tianocore.frameworkwizard.workspace.Workspace;\r
-import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
-import org.tianocore.frameworkwizard.workspace.ui.SwitchWorkspace;\r
-import org.tianocore.frameworkwizard.toolchain.Preferences;\r
-\r
-/**\r
- The class is used to show main GUI of FrameworkWizard\r
- It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener\r
-\r
- **/\r
-public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListener, TreeSelectionListener,\r
-                                             MenuListener {\r
-    ///\r
-    /// Define class Serial Version UID\r
-    ///\r
-    private static final long serialVersionUID = -7103240960573031772L;\r
-\r
-    ///\r
-    /// Used to record current operation target\r
-    ///\r
-    private int currentOpeningModuleIndex = -1;\r
-\r
-    private int currentOpeningPackageIndex = -1;\r
-\r
-    private int currentOpeningPlatformIndex = -1;\r
-\r
-    ///\r
-    /// Used to generate tree structure\r
-    ///\r
-    private IDefaultMutableTreeNode dmtnRoot = null;\r
-\r
-    private IDefaultMutableTreeNode dmtnModuleDescription = null;\r
-\r
-    private IDefaultMutableTreeNode dmtnPackageDescription = null;\r
-\r
-    private IDefaultMutableTreeNode dmtnPlatformDescription = null;\r
-\r
-    ///\r
-    /// Used for UI\r
-    ///\r
-    private JPanel jContentPane = null;\r
-\r
-    private JMenuBar jMenuBar = null;\r
-\r
-    private JMenu jMenuFile = null;\r
-\r
-    private JMenuItem jMenuItemFileNew = null;\r
-\r
-    private JMenuItem jMenuItemFileRefresh = null;\r
-\r
-    private JMenuItem jMenuItemFileSaveAs = null;\r
-\r
-    private JMenuItem jMenuItemFileExit = null;\r
-\r
-    private JMenu jMenuEdit = null;\r
-\r
-    private JDesktopPane jDesktopPaneModule = null;\r
-\r
-    private JDesktopPane jDesktopPanePackage = null;\r
-\r
-    private JDesktopPane jDesktopPanePlatform = null;\r
-\r
-    private JTabbedPane jTabbedPaneTree = null;\r
-\r
-    private JTabbedPane jTabbedPaneEditor = null;\r
-\r
-    private IDesktopManager iDesktopManager = new IDesktopManager();\r
-\r
-    private JScrollPane jScrollPaneTree = null;\r
-\r
-    private ITree iTree = null;\r
-\r
-    private JMenu jMenuHelp = null;\r
-\r
-    private JMenuItem jMenuItemHelpAbout = null;\r
-\r
-    private JMenuItem jMenuItemEditDelete = null;\r
-\r
-    private WorkspaceTools wt = new WorkspaceTools();\r
-\r
-    private JMenuItem jMenuItemFileSave = null;\r
-\r
-    private JMenuItem jMenuItemFileClose = null;\r
-\r
-    private JMenu jMenuTools = null;\r
-\r
-    private JMenu jMenuWindow = null;\r
-\r
-    private JPanel jPanelOperation = null;\r
-\r
-    private JButton jButtonOk = null;\r
-\r
-    private JButton jButtonCancel = null;\r
-\r
-    private JMenuItem jMenuItemFileOpen = null;\r
-\r
-    private JMenuItem jMenuItemFileCloseAll = null;\r
-\r
-    private JMenuItem jMenuItemFileSaveAll = null;\r
-\r
-    private JMenuItem jMenuItemFilePageSetup = null;\r
-\r
-    private JMenuItem jMenuItemFilePrint = null;\r
-\r
-    private JMenuItem jMenuItemFileImport = null;\r
-\r
-    private JMenuItem jMenuItemFileProperties = null;\r
-\r
-    private JMenu jMenuFileRecentFiles = null;\r
-\r
-    private JSplitPane jSplitPane = null;\r
-\r
-    private JMenuItem jMenuItemEditUndo = null;\r
-\r
-    private JMenuItem jMenuItemEditRedo = null;\r
-\r
-    private JMenuItem jMenuItemEditCut = null;\r
-\r
-    private JMenuItem jMenuItemEditCopy = null;\r
-\r
-    private JMenuItem jMenuItemEditPaste = null;\r
-\r
-    private JMenuItem jMenuItemEditSelectAll = null;\r
-\r
-    private JMenuItem jMenuItemEditFindNext = null;\r
-\r
-    private JMenu jMenuView = null;\r
-\r
-    private JMenu jMenuViewToolbars = null;\r
-\r
-    private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile = null;\r
-\r
-    private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit = null;\r
-\r
-    private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow = null;\r
-\r
-    private JMenuItem jMenuItemViewStandard = null;\r
-\r
-    private JMenuItem jMenuItemViewAdvanced = null;\r
-\r
-    private JMenu jMenuProject = null;\r
-\r
-    private JMenuItem jMenuItemProjectAdmin = null;\r
-\r
-    private JMenuItem jMenuItemProjectChangeWorkspace = null;\r
-\r
-    private JMenuItem jMenuItemToolsBuildPreferences = null;\r
-\r
-    //    private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;\r
-\r
-    //    private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;\r
-\r
-    private JMenuItem jMenuItemToolsToolChainConfiguration = null;\r
-\r
-    private JMenuItem jMenuItemToolsClone = null;\r
-\r
-    private JMenuItem jMenuItemToolsCodeScan = null;\r
-\r
-    private JMenuItem jMenuItemWindowDisplaySide = null;\r
-\r
-    private JMenuItem jMenuItemWindowDisplayTopBottom = null;\r
-\r
-    private JMenuItem jMenuItemViewXML = null;\r
-\r
-    private JMenuItem jMenuItemWindowTabView = null;\r
-\r
-    private JMenuItem jMenuItemWindowSource = null;\r
-\r
-    private JMenuItem jMenuItemWindowXML = null;\r
-\r
-    private JMenuItem jMenuItemWindowPreferences = null;\r
-\r
-    private JMenuItem jMenuItemHelpContents = null;\r
-\r
-    private JMenuItem jMenuItemHelpIndex = null;\r
-\r
-    private JMenuItem jMenuItemHelpSearch = null;\r
-\r
-    private JMenuItem jMenuItemProjectInstallFar = null;\r
-\r
-    private JMenuItem jMenuItemProjectUpdateFar = null;\r
-\r
-    private JMenuItem jMenuItemProjectRemoveFar = null;\r
-\r
-    private JMenuItem jMenuItemProjectCreateFar = null;\r
-\r
-    private JMenu jMenuEditFind = null;\r
-\r
-    private JMenuItem jMenuItemEditFindPcd = null;\r
-\r
-    private JMenuItem jMenuItemEditFindLibraryClass = null;\r
-\r
-    private JMenuItem jMenuItemEditFindPpi = null;\r
-\r
-    private JMenuItem jMenuItemEditFindProtocol = null;\r
-\r
-    private JMenuItem jMenuItemEditFindGuid = null;\r
-\r
-    private JMenuItem jMenuItemEditFindLibraryInstance = null;\r
-\r
-    ///\r
-    /// A static definition for this class itself\r
-    ///\r
-    private static FrameworkWizardUI fwui = null;\r
-\r
-    private JMenuItem jMenuItemToolsGenerateGuidsXref = null;\r
-\r
-    /**\r
-     If the class hasn't an instnace, new one.\r
-     \r
-     @return FrameworkWizardUI The instance of this class\r
-     \r
-     **/\r
-    public static FrameworkWizardUI getInstance() {\r
-        if (fwui == null) {\r
-            fwui = new FrameworkWizardUI();\r
-        }\r
-        return fwui;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuBar \r
-     \r
-     @return javax.swing.JMenuBar Main menu bar for the entire GUI\r
-     \r
-     **/\r
-    private JMenuBar getjJMenuBar() {\r
-        if (jMenuBar == null) {\r
-            jMenuBar = new JMenuBar();\r
-            jMenuBar.setPreferredSize(new java.awt.Dimension(0, 18));\r
-            jMenuBar.add(getJMenuFile());\r
-            jMenuBar.add(getJMenuEdit());\r
-            jMenuBar.add(getJMenuView());\r
-            jMenuBar.add(getJMenuProject());\r
-            jMenuBar.add(getJMenuTools());\r
-            jMenuBar.add(getJMenuWindow());\r
-            jMenuBar.add(getJMenuHelp());\r
-        }\r
-        return jMenuBar;\r
-    }\r
-\r
-    /**\r
-     This method initializes jSplitPane\r
-     \r
-     @return javax.swing.JSplitPane\r
-     \r
-     **/\r
-    private JSplitPane getJSplitPane() {\r
-        if (jSplitPane == null) {\r
-            jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, getJTabbedPaneTree(), getJTabbedPaneEditor());\r
-            jSplitPane.setBounds(new java.awt.Rectangle(0, 1, DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                        DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jSplitPane.addComponentListener(this);\r
-        }\r
-        return jSplitPane;\r
-    }\r
-\r
-    /**\r
-     This method initializes jTabbedPaneEditor \r
-     \r
-     @return javax.swing.JTabbedPane   \r
-     \r
-     **/\r
-    private JTabbedPane getJTabbedPaneEditor() {\r
-        if (jTabbedPaneEditor == null) {\r
-            jTabbedPaneEditor = new JTabbedPane();\r
-            jTabbedPaneEditor.setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
-                                                               DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
-                                                               DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                               DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jTabbedPaneEditor\r
-                             .setMinimumSize(new java.awt.Dimension(\r
-                                                                    DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                    DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jTabbedPaneEditor.addTab("Module", null, getJDesktopPaneModule(), null);\r
-            jTabbedPaneEditor.addTab("Package", null, getJDesktopPanePackage(), null);\r
-            jTabbedPaneEditor.addTab("Platform", null, getJDesktopPanePlatform(), null);\r
-        }\r
-        return jTabbedPaneEditor;\r
-    }\r
-\r
-    /**\r
-     This method initializes jTabbedPaneTree\r
-     \r
-     @return javax.swing.JTabbedPane   \r
-     \r
-     **/\r
-    private JTabbedPane getJTabbedPaneTree() {\r
-        if (jTabbedPaneTree == null) {\r
-            jTabbedPaneTree = new JTabbedPane();\r
-            jTabbedPaneTree\r
-                           .setPreferredSize(new java.awt.Dimension(\r
-                                                                    DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                    DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jTabbedPaneTree\r
-                           .setMinimumSize(new java.awt.Dimension(DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                  DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jTabbedPaneTree.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);\r
-        }\r
-        return jTabbedPaneTree;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuFile \r
-     \r
-     @return javax.swing.JMenu jMenuModule\r
-     \r
-     **/\r
-    private JMenu getJMenuFile() {\r
-        if (jMenuFile == null) {\r
-            //\r
-            // Set jMenuFile's attributes\r
-            //\r
-            jMenuFile = new JMenu();\r
-            jMenuFile.setText("File");\r
-            jMenuFile.setMnemonic('F');\r
-            jMenuFile.addMenuListener(this);\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuFile.add(getJMenuItemFileNew());\r
-            jMenuFile.add(getJMenuItemFileOpen());\r
-            jMenuFile.add(getJMenuItemFileClose());\r
-            jMenuFile.add(getJMenuItemFileCloseAll());\r
-            jMenuFile.addSeparator();\r
-\r
-            jMenuFile.add(getJMenuFileRecentFiles());\r
-            jMenuFile.add(getJMenuItemFileSave());\r
-            jMenuFile.add(getJMenuItemFileSaveAs());\r
-            jMenuFile.add(getJMenuItemFileSaveAll());\r
-            jMenuFile.addSeparator();\r
-\r
-            jMenuFile.add(getJMenuItemFileRefresh());\r
-            jMenuFile.addSeparator();\r
-\r
-            jMenuFile.add(getJMenuItemFilePageSetup());\r
-            jMenuFile.add(getJMenuItemFilePrint());\r
-            jMenuFile.add(getJMenuItemFileImport());\r
-            jMenuFile.add(getJMenuItemFileProperties());\r
-\r
-            jMenuFile.add(getJMenuItemFileExit());\r
-        }\r
-        return jMenuFile;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileSaveAs \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemFileSaveAs\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileSaveAs() {\r
-        if (jMenuItemFileSaveAs == null) {\r
-            jMenuItemFileSaveAs = new JMenuItem();\r
-            jMenuItemFileSaveAs.setText("Save As...");\r
-            jMenuItemFileSaveAs.setMnemonic('a');\r
-            jMenuItemFileSaveAs.addActionListener(this);\r
-            jMenuItemFileSaveAs.setEnabled(false);\r
-            jMenuItemFileSaveAs.setVisible(false);\r
-        }\r
-        return jMenuItemFileSaveAs;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileRefresh \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemFileRefresh\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileRefresh() {\r
-        if (jMenuItemFileRefresh == null) {\r
-            jMenuItemFileRefresh = new JMenuItem();\r
-            jMenuItemFileRefresh.setText("Refresh");\r
-            jMenuItemFileRefresh.setMnemonic('R');\r
-            jMenuItemFileRefresh.addActionListener(this);\r
-            jMenuItemFileRefresh.setVisible(true);\r
-        }\r
-        return jMenuItemFileRefresh;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemModuleExit \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemModuleExit\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileExit() {\r
-        if (jMenuItemFileExit == null) {\r
-            jMenuItemFileExit = new JMenuItem();\r
-            jMenuItemFileExit.setText("Exit");\r
-            jMenuItemFileExit.setMnemonic('x');\r
-            jMenuItemFileExit.addActionListener(this);\r
-        }\r
-        return jMenuItemFileExit;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuEdit \r
-     \r
-     @return javax.swing.JMenu jMenuEdit\r
-     \r
-     **/\r
-    private JMenu getJMenuEdit() {\r
-        if (jMenuEdit == null) {\r
-            //\r
-            // Set jMenuEdit's attributes\r
-            //\r
-            jMenuEdit = new JMenu();\r
-            jMenuEdit.setText("Edit");\r
-            jMenuEdit.setMnemonic('E');\r
-            jMenuEdit.setVisible(true);\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuEdit.add(getJMenuItemEditUndo());\r
-            jMenuEdit.add(getJMenuItemEditRedo());\r
-            //jMenuEdit.addSeparator();\r
-\r
-            jMenuEdit.add(getJMenuItemEditCut());\r
-            jMenuEdit.add(getJMenuItemEditCopy());\r
-            jMenuEdit.add(getJMenuItemEditPaste());\r
-            jMenuEdit.add(getJMenuItemEditDelete());\r
-            //jMenuEdit.addSeparator();\r
-\r
-            jMenuEdit.add(getJMenuItemEditSelectAll());\r
-            jMenuEdit.add(getJMenuEditFind());\r
-            jMenuEdit.add(getJMenuItemEditFindNext());\r
-            //jMenuEdit.addSeparator();\r
-        }\r
-        return jMenuEdit;\r
-    }\r
-\r
-    /**\r
-     This method initializes jDesktopPane \r
-     \r
-     @return javax.swing.JDesktopPane jDesktopPane\r
-     \r
-     **/\r
-    private JDesktopPane getJDesktopPaneModule() {\r
-        if (jDesktopPaneModule == null) {\r
-            jDesktopPaneModule = new JDesktopPane();\r
-            jDesktopPaneModule\r
-                              .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
-                                                                DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
-                                                                DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPaneModule\r
-                              .setMinimumSize(new java.awt.Dimension(\r
-                                                                     DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                     DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPaneModule.setDesktopManager(iDesktopManager);\r
-            jDesktopPaneModule.addComponentListener(this);\r
-        }\r
-        return jDesktopPaneModule;\r
-    }\r
-\r
-    /**\r
-     This method initializes jDesktopPane \r
-     \r
-     @return javax.swing.JDesktopPane jDesktopPane\r
-     \r
-     **/\r
-    private JDesktopPane getJDesktopPanePackage() {\r
-        if (jDesktopPanePackage == null) {\r
-            jDesktopPanePackage = new JDesktopPane();\r
-            jDesktopPanePackage\r
-                               .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
-                                                                 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
-                                                                 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPanePackage\r
-                               .setMinimumSize(new java.awt.Dimension(\r
-                                                                      DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                      DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPanePackage.setDesktopManager(iDesktopManager);\r
-            jDesktopPanePackage.addComponentListener(this);\r
-        }\r
-        return jDesktopPanePackage;\r
-    }\r
-\r
-    /**\r
-     This method initializes jDesktopPane \r
-     \r
-     @return javax.swing.JDesktopPane jDesktopPane\r
-     \r
-     **/\r
-    private JDesktopPane getJDesktopPanePlatform() {\r
-        if (jDesktopPanePlatform == null) {\r
-            jDesktopPanePlatform = new JDesktopPane();\r
-            jDesktopPanePlatform\r
-                                .setBounds(new java.awt.Rectangle(\r
-                                                                  DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
-                                                                  DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
-                                                                  DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                  DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPanePlatform\r
-                                .setMinimumSize(new java.awt.Dimension(\r
-                                                                       DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                       DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jDesktopPanePlatform.setDesktopManager(iDesktopManager);\r
-            jDesktopPanePlatform.addComponentListener(this);\r
-        }\r
-        return jDesktopPanePlatform;\r
-    }\r
-\r
-    /**\r
-     This method initializes jScrollPaneTree \r
-     \r
-     @return javax.swing.JScrollPane jScrollPaneTree\r
-     \r
-     **/\r
-    private JScrollPane getJScrollPaneTree() {\r
-        if (jScrollPaneTree == null) {\r
-            jScrollPaneTree = new JScrollPane();\r
-            jScrollPaneTree\r
-                           .setPreferredSize(new java.awt.Dimension(\r
-                                                                    DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
-                                                                    DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jScrollPaneTree\r
-                           .setMinimumSize(new java.awt.Dimension(\r
-                                                                  DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH / 2,\r
-                                                                  DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
-            jScrollPaneTree.setViewportView(getITree());\r
-        }\r
-        return jScrollPaneTree;\r
-    }\r
-\r
-    /**\r
-     This method initializes iTree \r
-     \r
-     @return org.tianocore.packaging.common.ui.ITree iTree\r
-     \r
-     **/\r
-    private ITree getITree() {\r
-        //\r
-        //Before open a real module, use an empty root node for the tree\r
-        //\r
-        makeEmptyTree();\r
-        return iTree;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuHelp \r
-     \r
-     @return javax.swing.JMenu jMenuHelp\r
-     \r
-     **/\r
-    private JMenu getJMenuHelp() {\r
-        if (jMenuHelp == null) {\r
-            //\r
-            // Set jMenuHelp's attributes\r
-            //\r
-            jMenuHelp = new JMenu();\r
-            jMenuHelp.setText("Help");\r
-            jMenuHelp.setMnemonic('H');\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuHelp.add(getJMenuItemHelpContents());\r
-            jMenuHelp.add(getJMenuItemHelpIndex());\r
-            jMenuHelp.add(getJMenuItemHelpSearch());\r
-\r
-            jMenuHelp.add(getJMenuItemHelpAbout());\r
-        }\r
-        return jMenuHelp;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemHelpAbout \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemHelpAbout\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemHelpAbout() {\r
-        if (jMenuItemHelpAbout == null) {\r
-            jMenuItemHelpAbout = new JMenuItem();\r
-            jMenuItemHelpAbout.setText("About...");\r
-            jMenuItemHelpAbout.setMnemonic('A');\r
-            jMenuItemHelpAbout.addActionListener(this);\r
-        }\r
-        return jMenuItemHelpAbout;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditDelete \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemEditDelete\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditDelete() {\r
-        if (jMenuItemEditDelete == null) {\r
-            jMenuItemEditDelete = new JMenuItem();\r
-            jMenuItemEditDelete.setText("Delete");\r
-            jMenuItemEditDelete.setMnemonic('D');\r
-            jMenuItemEditDelete.setVisible(false);\r
-            jMenuItemEditDelete.setEnabled(false);\r
-            jMenuItemEditDelete.addActionListener(this);\r
-            //\r
-            //Disabled first when no module is open\r
-            //\r
-            jMenuItemEditDelete.setEnabled(false);\r
-        }\r
-        return jMenuItemEditDelete;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuFileNew \r
-     \r
-     @return javax.swing.JMenuItem jMenuFileNew\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileNew() {\r
-        if (jMenuItemFileNew == null) {\r
-            jMenuItemFileNew = new JMenuItem();\r
-            jMenuItemFileNew.setText("New...");\r
-            jMenuItemFileNew.setMnemonic('N');\r
-            jMenuItemFileNew.addActionListener(this);\r
-        }\r
-        return jMenuItemFileNew;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileSave \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemModuleSave\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileSave() {\r
-        if (jMenuItemFileSave == null) {\r
-            jMenuItemFileSave = new JMenuItem();\r
-            jMenuItemFileSave.setText("Save");\r
-            jMenuItemFileSave.setMnemonic('S');\r
-            jMenuItemFileSave.addActionListener(this);\r
-            jMenuItemFileSave.setEnabled(true);\r
-        }\r
-        return jMenuItemFileSave;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemModuleClose \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemModuleClose\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileClose() {\r
-        if (jMenuItemFileClose == null) {\r
-            jMenuItemFileClose = new JMenuItem();\r
-            jMenuItemFileClose.setText("Close");\r
-            jMenuItemFileClose.setMnemonic('C');\r
-            jMenuItemFileClose.setEnabled(true);\r
-            jMenuItemFileClose.addActionListener(this);\r
-        }\r
-        return jMenuItemFileClose;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuTools\r
-     Reserved \r
-     \r
-     @return javax.swing.JMenu jMenuTools\r
-     \r
-     **/\r
-    private JMenu getJMenuTools() {\r
-        if (jMenuTools == null) {\r
-            //\r
-            // Set jMenuTools's attributes\r
-            //\r
-            jMenuTools = new JMenu();\r
-            jMenuTools.setText("Tools");\r
-            jMenuTools.setMnemonic('T');\r
-            jMenuTools.addMenuListener(this);\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-\r
-            jMenuTools.add(getJMenuItemToolsClone());\r
-            jMenuTools.add(getJMenuItemToolsCodeScan());\r
-            jMenuTools.addSeparator();\r
-\r
-            jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
-            jMenuTools.add(getJMenuItemToolsBuildPreferences());\r
-            jMenuTools.addSeparator();\r
-\r
-            jMenuTools.add(getJMenuItemToolsGenerateGuidsXref());\r
-        }\r
-        return jMenuTools;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuWindow \r
-     Reserved\r
-     \r
-     @return javax.swing.JMenu jMenuWindow\r
-     \r
-     **/\r
-    private JMenu getJMenuWindow() {\r
-        if (jMenuWindow == null) {\r
-            //\r
-            // Set jMenuWindow's attribute\r
-            //\r
-            jMenuWindow = new JMenu();\r
-            jMenuWindow.setText("Window");\r
-            jMenuWindow.setMnemonic('W');\r
-            jMenuWindow.setVisible(false);\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuWindow.add(getJMenuItemWindowDisplaySide());\r
-            jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());\r
-            jMenuWindow.addSeparator();\r
-\r
-            jMenuWindow.add(getJMenuItemWindowTabView());\r
-            jMenuWindow.addSeparator();\r
-\r
-            jMenuWindow.add(getJMenuItemWindowSource());\r
-            jMenuWindow.add(getJMenuItemWindowXML());\r
-            jMenuWindow.addSeparator();\r
-\r
-            jMenuWindow.add(getJMenuItemWindowPreferences());\r
-        }\r
-        return jMenuWindow;\r
-    }\r
-\r
-    /**\r
-     This method initializes jPanelOperation\r
-     Reserved\r
-     \r
-     @return javax.swing.JPanel jPanelOperation\r
-     \r
-     **/\r
-    private JPanel getJPanelOperation() {\r
-        if (jPanelOperation == null) {\r
-            jPanelOperation = new JPanel();\r
-            jPanelOperation.setLayout(null);\r
-            jPanelOperation.setBounds(new java.awt.Rectangle(295, 520, 500, 25));\r
-            jPanelOperation.add(getJButtonOk(), null);\r
-            jPanelOperation.add(getJButtonCancel(), null);\r
-            jPanelOperation.setVisible(false);\r
-        }\r
-        return jPanelOperation;\r
-    }\r
-\r
-    /**\r
-     This method initializes jButtonOk\r
-     Reserved\r
-     \r
-     @return javax.swing.JButton jButtonOk\r
-     \r
-     **/\r
-    private JButton getJButtonOk() {\r
-        if (jButtonOk == null) {\r
-            jButtonOk = new JButton();\r
-            jButtonOk.setBounds(new java.awt.Rectangle(395, 2, 90, 20));\r
-            jButtonOk.setText("Ok");\r
-            jButtonOk.setEnabled(false);\r
-            jButtonOk.addActionListener(this);\r
-        }\r
-        return jButtonOk;\r
-    }\r
-\r
-    /**\r
-     This method initializes jButtonCancel\r
-     Reserved\r
-     \r
-     @return javax.swing.JButton jButtonCancel\r
-     \r
-     **/\r
-    private JButton getJButtonCancel() {\r
-        if (jButtonCancel == null) {\r
-            jButtonCancel = new JButton();\r
-            jButtonCancel.setBounds(new java.awt.Rectangle(395, 2, 90, 20));\r
-            jButtonCancel.setText("Cancel");\r
-            jButtonCancel.setEnabled(false);\r
-            jButtonCancel.addActionListener(this);\r
-            jButtonCancel.setVisible(false);\r
-        }\r
-        return jButtonCancel;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileOpen \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemFileOpen\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileOpen() {\r
-        if (jMenuItemFileOpen == null) {\r
-            jMenuItemFileOpen = new JMenuItem();\r
-            jMenuItemFileOpen.setText("Open...");\r
-            jMenuItemFileOpen.setMnemonic('O');\r
-            jMenuItemFileOpen.addActionListener(this);\r
-        }\r
-        return jMenuItemFileOpen;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileCloseAll     \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemFileOpen\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileCloseAll() {\r
-        if (jMenuItemFileCloseAll == null) {\r
-            jMenuItemFileCloseAll = new JMenuItem();\r
-            jMenuItemFileCloseAll.setText("Close All");\r
-            jMenuItemFileCloseAll.setMnemonic('A');\r
-            jMenuItemFileCloseAll.setEnabled(true);\r
-            jMenuItemFileCloseAll.addActionListener(this);\r
-        }\r
-        return jMenuItemFileCloseAll;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileSaveAll      \r
-     \r
-     @return javax.swing.JMenuItem jMenuItemFileSaveAll\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileSaveAll() {\r
-        if (jMenuItemFileSaveAll == null) {\r
-            jMenuItemFileSaveAll = new JMenuItem();\r
-            jMenuItemFileSaveAll.setText("Save All");\r
-            jMenuItemFileSaveAll.setMnemonic('v');\r
-            jMenuItemFileSaveAll.setEnabled(true);\r
-            jMenuItemFileSaveAll.addActionListener(this);\r
-        }\r
-        return jMenuItemFileSaveAll;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFilePageSetup    \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFilePageSetup() {\r
-        if (jMenuItemFilePageSetup == null) {\r
-            jMenuItemFilePageSetup = new JMenuItem();\r
-            jMenuItemFilePageSetup.setText("Page Setup");\r
-            jMenuItemFilePageSetup.setMnemonic('u');\r
-            jMenuItemFilePageSetup.setEnabled(false);\r
-            jMenuItemFilePageSetup.addActionListener(this);\r
-            jMenuItemFilePageSetup.setVisible(false);\r
-        }\r
-        return jMenuItemFilePageSetup;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFilePrint        \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFilePrint() {\r
-        if (jMenuItemFilePrint == null) {\r
-            jMenuItemFilePrint = new JMenuItem();\r
-            jMenuItemFilePrint.setText("Print");\r
-            jMenuItemFilePrint.setMnemonic('P');\r
-            jMenuItemFilePrint.setEnabled(false);\r
-            jMenuItemFilePrint.addActionListener(this);\r
-            jMenuItemFilePrint.setVisible(false);\r
-        }\r
-        return jMenuItemFilePrint;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileImport       \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileImport() {\r
-        if (jMenuItemFileImport == null) {\r
-            jMenuItemFileImport = new JMenuItem();\r
-            jMenuItemFileImport.setText("Import");\r
-            jMenuItemFileImport.setMnemonic('I');\r
-            jMenuItemFileImport.setEnabled(false);\r
-            jMenuItemFileImport.addActionListener(this);\r
-            jMenuItemFileImport.setVisible(false);\r
-        }\r
-        return jMenuItemFileImport;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemFileProperties   \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemFileProperties() {\r
-        if (jMenuItemFileProperties == null) {\r
-            jMenuItemFileProperties = new JMenuItem();\r
-            jMenuItemFileProperties.setText("Properties");\r
-            jMenuItemFileProperties.setMnemonic('t');\r
-            jMenuItemFileProperties.setEnabled(false);\r
-            jMenuItemFileProperties.addActionListener(this);\r
-            jMenuItemFileProperties.setVisible(false);\r
-        }\r
-        return jMenuItemFileProperties;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuFileRecentFiles      \r
-     \r
-     @return javax.swing.JMenu \r
-     \r
-     **/\r
-    private JMenu getJMenuFileRecentFiles() {\r
-        if (jMenuFileRecentFiles == null) {\r
-            jMenuFileRecentFiles = new JMenu();\r
-            jMenuFileRecentFiles.setText("Recent Files");\r
-            jMenuFileRecentFiles.setMnemonic('F');\r
-            jMenuFileRecentFiles.setEnabled(false);\r
-            jMenuFileRecentFiles.addActionListener(this);\r
-            jMenuFileRecentFiles.setVisible(false);\r
-        }\r
-        return jMenuFileRecentFiles;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditUndo \r
-     \r
-     @return javax.swing.JMenuItem\r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditUndo() {\r
-        if (jMenuItemEditUndo == null) {\r
-            jMenuItemEditUndo = new JMenuItem();\r
-            jMenuItemEditUndo.setText("Undo");\r
-            jMenuItemEditUndo.setMnemonic('U');\r
-            jMenuItemEditUndo.setEnabled(false);\r
-            jMenuItemEditUndo.setVisible(false);\r
-            jMenuItemEditUndo.addActionListener(this);\r
-        }\r
-        return jMenuItemEditUndo;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditRedo \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditRedo() {\r
-        if (jMenuItemEditRedo == null) {\r
-            jMenuItemEditRedo = new JMenuItem();\r
-            jMenuItemEditRedo.setText("Redo");\r
-            jMenuItemEditRedo.setMnemonic('R');\r
-            jMenuItemEditRedo.setEnabled(false);\r
-            jMenuItemEditRedo.setVisible(false);\r
-            jMenuItemEditRedo.addActionListener(this);\r
-        }\r
-        return jMenuItemEditRedo;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditCut  \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditCut() {\r
-        if (jMenuItemEditCut == null) {\r
-            jMenuItemEditCut = new JMenuItem();\r
-            jMenuItemEditCut.setText("Cut");\r
-            jMenuItemEditCut.setMnemonic('t');\r
-            jMenuItemEditCut.setEnabled(false);\r
-            jMenuItemEditCut.setVisible(false);\r
-            jMenuItemEditCut.addActionListener(this);\r
-        }\r
-        return jMenuItemEditCut;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditCopy \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditCopy() {\r
-        if (jMenuItemEditCopy == null) {\r
-            jMenuItemEditCopy = new JMenuItem();\r
-            jMenuItemEditCopy.setText("Copy");\r
-            jMenuItemEditCopy.setMnemonic('C');\r
-            jMenuItemEditCopy.setEnabled(false);\r
-            jMenuItemEditCopy.setVisible(false);\r
-            jMenuItemEditCopy.addActionListener(this);\r
-        }\r
-        return jMenuItemEditCopy;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditPaste        \r
-     \r
-     return javax.swing.JMenuItem      \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditPaste() {\r
-        if (jMenuItemEditPaste == null) {\r
-            jMenuItemEditPaste = new JMenuItem();\r
-            jMenuItemEditPaste.setText("Paste");\r
-            jMenuItemEditPaste.setMnemonic('P');\r
-            jMenuItemEditPaste.setEnabled(false);\r
-            jMenuItemEditPaste.setVisible(false);\r
-            jMenuItemEditPaste.addActionListener(this);\r
-        }\r
-        return jMenuItemEditPaste;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItem \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditSelectAll() {\r
-        if (jMenuItemEditSelectAll == null) {\r
-            jMenuItemEditSelectAll = new JMenuItem();\r
-            jMenuItemEditSelectAll.setText("Select All");\r
-            jMenuItemEditSelectAll.setMnemonic('A');\r
-            jMenuItemEditSelectAll.setEnabled(false);\r
-            jMenuItemEditSelectAll.setVisible(false);\r
-            jMenuItemEditSelectAll.addActionListener(this);\r
-        }\r
-        return jMenuItemEditSelectAll;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemEditFindNext     \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemEditFindNext() {\r
-        if (jMenuItemEditFindNext == null) {\r
-            jMenuItemEditFindNext = new JMenuItem();\r
-            jMenuItemEditFindNext.setText("Find Next");\r
-            jMenuItemEditFindNext.setMnemonic('n');\r
-            jMenuItemEditFindNext.setEnabled(false);\r
-            jMenuItemEditFindNext.setVisible(false);\r
-            jMenuItemEditFindNext.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindNext;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuView \r
-     \r
-     @return javax.swing.JMenu \r
-     \r
-     **/\r
-    private JMenu getJMenuView() {\r
-        if (jMenuView == null) {\r
-            //\r
-            // Set jMenuView's attributes\r
-            //\r
-            jMenuView = new JMenu();\r
-            jMenuView.setText("View");\r
-            jMenuView.setMnemonic('V');\r
-            jMenuView.setVisible(false);\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuView.add(getJMenuViewToolbars());\r
-            jMenuView.add(getJMenuItemViewAdvanced());\r
-            jMenuView.add(getJMenuItemViewStandard());\r
-            jMenuView.add(getJMenuItemViewXML());\r
-        }\r
-        return jMenuView;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuViewToolbars \r
-     \r
-     @return javax.swing.JMenu \r
-     \r
-     **/\r
-    private JMenu getJMenuViewToolbars() {\r
-        if (jMenuViewToolbars == null) {\r
-            jMenuViewToolbars = new JMenu();\r
-            jMenuViewToolbars.setText("Toolbars");\r
-            jMenuViewToolbars.setMnemonic('T');\r
-\r
-            jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsFile());\r
-            jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsEdit());\r
-            jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsWindow());\r
-        }\r
-        return jMenuViewToolbars;\r
-    }\r
-\r
-    /**\r
-     This method initializes jCheckBoxMenuItemViewToolbarsFile \r
-     \r
-     @return javax.swing.JCheckBoxMenuItem     \r
-     \r
-     **/\r
-    private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsFile() {\r
-        if (jCheckBoxMenuItemViewToolbarsFile == null) {\r
-            jCheckBoxMenuItemViewToolbarsFile = new JCheckBoxMenuItem();\r
-            jCheckBoxMenuItemViewToolbarsFile.setText("File");\r
-            jCheckBoxMenuItemViewToolbarsFile.setEnabled(false);\r
-            jCheckBoxMenuItemViewToolbarsFile.addActionListener(this);\r
-        }\r
-        return jCheckBoxMenuItemViewToolbarsFile;\r
-    }\r
-\r
-    /**\r
-     This method initializes jCheckBoxMenuItemViewToolbarsEdit \r
-     \r
-     @return javax.swing.JCheckBoxMenuItem     \r
-     \r
-     **/\r
-    private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsEdit() {\r
-        if (jCheckBoxMenuItemViewToolbarsEdit == null) {\r
-            jCheckBoxMenuItemViewToolbarsEdit = new JCheckBoxMenuItem();\r
-            jCheckBoxMenuItemViewToolbarsEdit.setText("Edit");\r
-            jCheckBoxMenuItemViewToolbarsEdit.setEnabled(false);\r
-            jCheckBoxMenuItemViewToolbarsEdit.addActionListener(this);\r
-        }\r
-        return jCheckBoxMenuItemViewToolbarsEdit;\r
-    }\r
-\r
-    /**\r
-     This method initializes jCheckBoxMenuItemViewToolbarsWindow       \r
-     \r
-     @return javax.swing.JCheckBoxMenuItem     \r
-     \r
-     **/\r
-    private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsWindow() {\r
-        if (jCheckBoxMenuItemViewToolbarsWindow == null) {\r
-            jCheckBoxMenuItemViewToolbarsWindow = new JCheckBoxMenuItem();\r
-            jCheckBoxMenuItemViewToolbarsWindow.setText("Window");\r
-            jCheckBoxMenuItemViewToolbarsWindow.setEnabled(false);\r
-            jCheckBoxMenuItemViewToolbarsWindow.addActionListener(this);\r
-        }\r
-        return jCheckBoxMenuItemViewToolbarsWindow;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemStandard \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemViewStandard() {\r
-        if (jMenuItemViewStandard == null) {\r
-            jMenuItemViewStandard = new JMenuItem();\r
-            jMenuItemViewStandard.setText("Standard");\r
-            jMenuItemViewStandard.setMnemonic('S');\r
-            jMenuItemViewStandard.setEnabled(false);\r
-            jMenuItemViewStandard.addActionListener(this);\r
-        }\r
-        return jMenuItemViewStandard;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemAdvanced \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemViewAdvanced() {\r
-        if (jMenuItemViewAdvanced == null) {\r
-            jMenuItemViewAdvanced = new JMenuItem();\r
-            jMenuItemViewAdvanced.setText("Advanced");\r
-            jMenuItemViewAdvanced.setMnemonic('A');\r
-            jMenuItemViewAdvanced.setEnabled(false);\r
-            jMenuItemViewAdvanced.addActionListener(this);\r
-        }\r
-        return jMenuItemViewAdvanced;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuProject      \r
-     \r
-     @return javax.swing.JMenu \r
-     \r
-     **/\r
-    private JMenu getJMenuProject() {\r
-        if (jMenuProject == null) {\r
-            //\r
-            // Set jMenuProject's attributes\r
-            //\r
-            jMenuProject = new JMenu();\r
-            jMenuProject.setText("Project");\r
-            jMenuProject.setMnemonic('P');\r
-\r
-            //\r
-            // Add sub menu items\r
-            //\r
-            jMenuProject.add(getJMenuItemProjectAdmin());\r
-\r
-            jMenuProject.add(getJMenuItemProjectChangeWorkspace());\r
-            jMenuProject.addSeparator();\r
-\r
-            jMenuProject.add(getJMenuItemProjectCreateFar());\r
-            jMenuProject.add(getJMenuItemProjectInstallFar());\r
-            jMenuProject.add(getJMenuItemProjectUpdateFar());\r
-            jMenuProject.add(getJMenuItemProjectRemoveFar());\r
-\r
-        }\r
-        return jMenuProject;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemProjectAdmin     \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemProjectAdmin() {\r
-        if (jMenuItemProjectAdmin == null) {\r
-            jMenuItemProjectAdmin = new JMenuItem();\r
-            jMenuItemProjectAdmin.setText("Admin...");\r
-            jMenuItemProjectAdmin.setMnemonic('A');\r
-            jMenuItemProjectAdmin.setEnabled(false);\r
-            jMenuItemProjectAdmin.addActionListener(this);\r
-            jMenuItemProjectAdmin.setVisible(false);\r
-        }\r
-        return jMenuItemProjectAdmin;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemProjectChangeWorkspace   \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemProjectChangeWorkspace() {\r
-        if (jMenuItemProjectChangeWorkspace == null) {\r
-            jMenuItemProjectChangeWorkspace = new JMenuItem();\r
-            jMenuItemProjectChangeWorkspace.setText("Change WORKSPACE...");\r
-            jMenuItemProjectChangeWorkspace.setMnemonic('W');\r
-            jMenuItemProjectChangeWorkspace.setEnabled(true);\r
-            jMenuItemProjectChangeWorkspace.addActionListener(this);\r
-        }\r
-        return jMenuItemProjectChangeWorkspace;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuProjectBuildPreferences      \r
-     \r
-     @return javax.swing.JMenu \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemToolsBuildPreferences() {\r
-        if (jMenuItemToolsBuildPreferences == null) {\r
-            jMenuItemToolsBuildPreferences = new JMenuItem();\r
-            jMenuItemToolsBuildPreferences.setText("Build Preferences");\r
-            jMenuItemToolsBuildPreferences.setMnemonic('P');\r
-            jMenuItemToolsBuildPreferences.setEnabled(true);\r
-            jMenuItemToolsBuildPreferences.addActionListener(this);\r
-        }\r
-        return jMenuItemToolsBuildPreferences;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemToolsToolChainConfiguration      \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemToolsToolChainConfiguration() {\r
-        if (jMenuItemToolsToolChainConfiguration == null) {\r
-            jMenuItemToolsToolChainConfiguration = new JMenuItem();\r
-            jMenuItemToolsToolChainConfiguration.setText("Tool Chain Configuration...");\r
-            jMenuItemToolsToolChainConfiguration.setMnemonic('C');\r
-            jMenuItemToolsToolChainConfiguration.addActionListener(this);\r
-        }\r
-        return jMenuItemToolsToolChainConfiguration;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemToolsClone       \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemToolsClone() {\r
-        if (jMenuItemToolsClone == null) {\r
-            jMenuItemToolsClone = new JMenuItem();\r
-            jMenuItemToolsClone.setText("Clone...");\r
-            jMenuItemToolsClone.setMnemonic('l');\r
-            jMenuItemToolsClone.setEnabled(true);\r
-            jMenuItemToolsClone.addActionListener(this);\r
-        }\r
-        return jMenuItemToolsClone;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemToolsCodeScan    \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemToolsCodeScan() {\r
-        if (jMenuItemToolsCodeScan == null) {\r
-            jMenuItemToolsCodeScan = new JMenuItem();\r
-            jMenuItemToolsCodeScan.setText("Code Scan...");\r
-            jMenuItemToolsCodeScan.setMnemonic('S');\r
-            jMenuItemToolsCodeScan.setEnabled(false);\r
-            jMenuItemToolsCodeScan.addActionListener(this);\r
-            jMenuItemToolsCodeScan.setVisible(false);\r
-        }\r
-        return jMenuItemToolsCodeScan;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowSplitVertical      \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowDisplaySide() {\r
-        if (jMenuItemWindowDisplaySide == null) {\r
-            jMenuItemWindowDisplaySide = new JMenuItem();\r
-            jMenuItemWindowDisplaySide.setText("Display Side by Side");\r
-            jMenuItemWindowDisplaySide.setMnemonic('S');\r
-            jMenuItemWindowDisplaySide.setEnabled(false);\r
-            jMenuItemWindowDisplaySide.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowDisplaySide;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowSplitHorizontal    \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowDisplayTopBottom() {\r
-        if (jMenuItemWindowDisplayTopBottom == null) {\r
-            jMenuItemWindowDisplayTopBottom = new JMenuItem();\r
-            jMenuItemWindowDisplayTopBottom.setText("Display Top and Bottom");\r
-            jMenuItemWindowDisplayTopBottom.setMnemonic('B');\r
-            jMenuItemWindowDisplayTopBottom.setEnabled(false);\r
-            jMenuItemWindowDisplayTopBottom.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowDisplayTopBottom;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemViewXML  \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemViewXML() {\r
-        if (jMenuItemViewXML == null) {\r
-            jMenuItemViewXML = new JMenuItem();\r
-            jMenuItemViewXML.setText("XML");\r
-            jMenuItemViewXML.setMnemonic('X');\r
-            jMenuItemViewXML.setEnabled(false);\r
-            jMenuItemViewXML.addActionListener(this);\r
-        }\r
-        return jMenuItemViewXML;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowTabView    \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowTabView() {\r
-        if (jMenuItemWindowTabView == null) {\r
-            jMenuItemWindowTabView = new JMenuItem();\r
-            jMenuItemWindowTabView.setText("Tab View");\r
-            jMenuItemWindowTabView.setMnemonic('T');\r
-            jMenuItemWindowTabView.setEnabled(false);\r
-            jMenuItemWindowTabView.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowTabView;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowSource     \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowSource() {\r
-        if (jMenuItemWindowSource == null) {\r
-            jMenuItemWindowSource = new JMenuItem();\r
-            jMenuItemWindowSource.setText("Source");\r
-            jMenuItemWindowSource.setMnemonic('S');\r
-            jMenuItemWindowSource.setEnabled(false);\r
-            jMenuItemWindowSource.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowSource;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowXML        \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowXML() {\r
-        if (jMenuItemWindowXML == null) {\r
-            jMenuItemWindowXML = new JMenuItem();\r
-            jMenuItemWindowXML.setText("XML");\r
-            jMenuItemWindowXML.setMnemonic('X');\r
-            jMenuItemWindowXML.setEnabled(false);\r
-            jMenuItemWindowXML.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowXML;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemWindowPreferences        \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemWindowPreferences() {\r
-        if (jMenuItemWindowPreferences == null) {\r
-            jMenuItemWindowPreferences = new JMenuItem();\r
-            jMenuItemWindowPreferences.setText("Preferences");\r
-            jMenuItemWindowPreferences.setMnemonic('P');\r
-            jMenuItemWindowPreferences.setEnabled(false);\r
-            jMenuItemWindowPreferences.addActionListener(this);\r
-        }\r
-        return jMenuItemWindowPreferences;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemHelpContents     \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemHelpContents() {\r
-        if (jMenuItemHelpContents == null) {\r
-            jMenuItemHelpContents = new JMenuItem();\r
-            jMenuItemHelpContents.setText("Contents");\r
-            jMenuItemHelpContents.setMnemonic('C');\r
-            jMenuItemHelpContents.setEnabled(false);\r
-            jMenuItemHelpContents.addActionListener(this);\r
-            jMenuItemHelpContents.setVisible(false);\r
-        }\r
-        return jMenuItemHelpContents;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemHelpIndex        \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     **/\r
-    private JMenuItem getJMenuItemHelpIndex() {\r
-        if (jMenuItemHelpIndex == null) {\r
-            jMenuItemHelpIndex = new JMenuItem();\r
-            jMenuItemHelpIndex.setText("Index");\r
-            jMenuItemHelpIndex.setMnemonic('I');\r
-            jMenuItemHelpIndex.setEnabled(false);\r
-            jMenuItemHelpIndex.addActionListener(this);\r
-            jMenuItemHelpIndex.setVisible(false);\r
-        }\r
-        return jMenuItemHelpIndex;\r
-    }\r
-\r
-    /**\r
-     This method initializes jMenuItemHelpSearch       \r
-     \r
-     @return javax.swing.JMenuItem     \r
-     \r
-     */\r
-    private JMenuItem getJMenuItemHelpSearch() {\r
-        if (jMenuItemHelpSearch == null) {\r
-            jMenuItemHelpSearch = new JMenuItem();\r
-            jMenuItemHelpSearch.setText("Search");\r
-            jMenuItemHelpSearch.setMnemonic('S');\r
-            jMenuItemHelpSearch.setEnabled(false);\r
-            jMenuItemHelpSearch.addActionListener(this);\r
-            jMenuItemHelpSearch.setVisible(false);\r
-        }\r
-        return jMenuItemHelpSearch;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemToolsInstallPackage    \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\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 jMenuItemProjectInstallFar;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemToolsUpdatePackage     \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\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 jMenuItemProjectUpdateFar;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemRemovePackage  \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\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 jMenuItemProjectCreateFar;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuEditFind   \r
-     *         \r
-     * @return javax.swing.JMenu       \r
-     */\r
-    private JMenu getJMenuEditFind() {\r
-        if (jMenuEditFind == null) {\r
-            jMenuEditFind = new JMenu();\r
-            jMenuEditFind.setText("Find");\r
-            jMenuEditFind.setMnemonic('F');\r
-\r
-            jMenuEditFind.add(getJMenuItemEditFindPpi());\r
-            jMenuEditFind.add(getJMenuItemEditFindProtocol());\r
-            jMenuEditFind.add(getJMenuItemEditFindGuid());\r
-            jMenuEditFind.add(getJMenuItemEditFindPcd());\r
-            jMenuEditFind.add(getJMenuItemEditFindLibraryClass());\r
-            jMenuEditFind.add(getJMenuItemEditFindLibraryInstance());\r
-        }\r
-        return jMenuEditFind;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindPcd    \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindPcd() {\r
-        if (jMenuItemEditFindPcd == null) {\r
-            jMenuItemEditFindPcd = new JMenuItem();\r
-            jMenuItemEditFindPcd.setText("All PCD entries");\r
-            jMenuItemEditFindPcd.setMnemonic('P');\r
-            jMenuItemEditFindPcd.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindPcd;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindLibraryClass   \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindLibraryClass() {\r
-        if (jMenuItemEditFindLibraryClass == null) {\r
-            jMenuItemEditFindLibraryClass = new JMenuItem();\r
-            jMenuItemEditFindLibraryClass.setText("All Library Classes");\r
-            jMenuItemEditFindLibraryClass.setMnemonic('C');\r
-            jMenuItemEditFindLibraryClass.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindLibraryClass;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindPpi    \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindPpi() {\r
-        if (jMenuItemEditFindPpi == null) {\r
-            jMenuItemEditFindPpi = new JMenuItem();\r
-            jMenuItemEditFindPpi.setText("All PPIs");\r
-            jMenuItemEditFindPpi.setMnemonic('I');\r
-            jMenuItemEditFindPpi.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindPpi;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindProtocol       \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindProtocol() {\r
-        if (jMenuItemEditFindProtocol == null) {\r
-            jMenuItemEditFindProtocol = new JMenuItem();\r
-            jMenuItemEditFindProtocol.setText("All Protocols");\r
-            jMenuItemEditFindProtocol.setMnemonic('r');\r
-            jMenuItemEditFindProtocol.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindProtocol;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindGuid   \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindGuid() {\r
-        if (jMenuItemEditFindGuid == null) {\r
-            jMenuItemEditFindGuid = new JMenuItem();\r
-            jMenuItemEditFindGuid.setText("All GUIDs");\r
-            jMenuItemEditFindGuid.setMnemonic('G');\r
-            jMenuItemEditFindGuid.addActionListener(this);\r
-        }\r
-        return jMenuItemEditFindGuid;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemEditFindLibraryInstance        \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemEditFindLibraryInstance() {\r
-        if (jMenuItemEditFindLibraryInstance == null) {\r
-            jMenuItemEditFindLibraryInstance = new JMenuItem();\r
-            jMenuItemEditFindLibraryInstance.setText("All Library Instances");\r
-            jMenuItemEditFindLibraryInstance.setMnemonic('n');\r
-            jMenuItemEditFindLibraryInstance.addActionListener(this);\r
-            jMenuItemEditFindLibraryInstance.setVisible(false);\r
-        }\r
-        return jMenuItemEditFindLibraryInstance;\r
-    }\r
-\r
-    /**\r
-     * This method initializes jMenuItemProjectGenerateGuidsXref       \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
-    private JMenuItem getJMenuItemToolsGenerateGuidsXref() {\r
-        if (jMenuItemToolsGenerateGuidsXref == null) {\r
-            jMenuItemToolsGenerateGuidsXref = new JMenuItem();\r
-            jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref");\r
-            jMenuItemToolsGenerateGuidsXref.setMnemonic('G');\r
-            jMenuItemToolsGenerateGuidsXref.addActionListener(this);\r
-        }\r
-        return jMenuItemToolsGenerateGuidsXref;\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])\r
-     *\r
-     * Main class, start the GUI\r
-     * \r
-     */\r
-    public static void main(String[] args) {\r
-        FrameworkWizardUI module = FrameworkWizardUI.getInstance();\r
-        module.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     This is the default constructor\r
-     \r
-     **/\r
-    public FrameworkWizardUI() {\r
-        super();\r
-        init();\r
-    }\r
-\r
-    /**\r
-     This method initializes this\r
-     \r
-     \r
-     **/\r
-    private void init() {\r
-        //\r
-        // Set current workspace and check\r
-        // Check if exists WORKSPACE\r
-        //\r
-        Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));\r
-        this.checkWorkspace();\r
-\r
-        //\r
-        // Show splash screen\r
-        //\r
-        SplashScreen ss = new SplashScreen();\r
-        ss.setVisible(true);\r
-        \r
-        //\r
-        // Init Global Data\r
-        //\r
-        GlobalData.init();\r
-\r
-        //\r
-        // Close splash screen\r
-        //\r
-        ss.dispose();\r
-\r
-        //\r
-        // Init the frame\r
-        //\r
-        this.setSize(DataType.MAIN_FRAME_PREFERRED_SIZE_WIDTH, DataType.MAIN_FRAME_PREFERRED_SIZE_HEIGHT);\r
-        this.setResizable(true);\r
-        this.setJMenuBar(getjJMenuBar());\r
-        this.setContentPane(getJContentPane());\r
-        this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
-                      + Workspace.getCurrentWorkspace() + "]");\r
-        this.setExitType(1);\r
-\r
-        //\r
-        // max the window\r
-        //\r
-        this.setExtendedState(JFrame.MAXIMIZED_BOTH);\r
-    }\r
-\r
-    /**\r
-     This method initializes jContentPane\r
-     \r
-     @return javax.swing.JPanel jContentPane\r
-     \r
-     **/\r
-    private JPanel getJContentPane() {\r
-        if (jContentPane == null) {\r
-            jContentPane = new JPanel();\r
-            jContentPane.setLayout(null);\r
-            jContentPane.add(getJPanelOperation(), null);\r
-            jContentPane.add(getJSplitPane(), null);\r
-        }\r
-        return jContentPane;\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
-     *\r
-     * Override actionPerformed to listen all actions\r
-     *\r
-     */\r
-    public void actionPerformed(ActionEvent arg0) {\r
-        //\r
-        // Operations of Menu\r
-        //\r
-        if (arg0.getSource() == this.jMenuItemFileNew) {\r
-            this.fileNew();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileOpen) {\r
-            this.open();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileClose) {\r
-            this.close();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileCloseAll) {\r
-            this.closeAll();\r
-            this.makeEmptyTree();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileSave) {\r
-            this.save();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileSaveAs) {\r
-            this.saveAs();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileSaveAll) {\r
-            this.saveAll();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileRefresh) {\r
-            this.closeAll();\r
-            this.refresh();\r
-            this.makeEmptyTree();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemFileExit) {\r
-            this.exit();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindPpi) {\r
-            this.findPpi();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindProtocol) {\r
-            this.findProtocol();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindGuid) {\r
-            this.findGuid();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindPcd) {\r
-            this.findPcd();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindLibraryClass) {\r
-            this.findLibraryClass();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemEditFindLibraryInstance) {\r
-            this.findLibraryInstance();\r
-        }\r
-\r
-        if (arg0.getSource() == jMenuItemToolsBuildPreferences) {\r
-            configBuildPreferences();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemProjectChangeWorkspace) {\r
-            this.changeWorkspace();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemProjectCreateFar) {\r
-            this.createFar();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemProjectInstallFar) {\r
-            this.installFar();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemProjectRemoveFar) {\r
-            this.removeFar();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemProjectUpdateFar) {\r
-            this.updateFar();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemToolsClone) {\r
-            this.cloneItem();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemToolsToolChainConfiguration) {\r
-            this.setupToolChainConfiguration();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemToolsGenerateGuidsXref) {\r
-            this.generateGuidsXref();\r
-        }\r
-\r
-        if (arg0.getSource() == this.jMenuItemHelpAbout) {\r
-            About a = new About(this, true);\r
-            int result = a.showDialog();\r
-            if (result == DataType.RETURN_TYPE_OK) {\r
-                a.dispose();\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Create an empty tree if no file is open\r
-     \r
-     **/\r
-    private void makeEmptyTree() {\r
-        //\r
-        // Make root\r
-        //\r
-        dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, false, null, null);\r
-\r
-        //\r
-        // Make Module Description\r
-        //\r
-        dmtnModuleDescription = new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode.MODULE_DESCRIPTION,\r
-                                                            false, null, dmtnRoot);\r
-\r
-        //\r
-        // First add package\r
-        //\r
-        if (GlobalData.vPackageList.size() > 0) {\r
-            for (int index = 0; index < GlobalData.vPackageList.size(); index++) {\r
-                IDefaultMutableTreeNode dmtnModulePackage = null;\r
-                IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
-                IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
-\r
-                dmtnModulePackage = new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index).getName(),\r
-                                                                IDefaultMutableTreeNode.MODULE_PACKAGE, false,\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
-                                                                       this.dmtnModuleDescription);\r
-                dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",\r
-                                                                      IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
-                                                                      false, GlobalData.vPackageList.elementAt(index),\r
-                                                                      this.dmtnModuleDescription);\r
-                //\r
-                // And then add each module in its package\r
-                //\r
-                Vector<ModuleIdentification> vModule = wt.getAllModules(GlobalData.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.MODULE, false,\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
-                                                                                this.dmtnModuleDescription));\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
-        //\r
-        // Make Package Description\r
-        //\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
-                                                                       this.dmtnPackageDescription));\r
-            }\r
-        }\r
-\r
-        //\r
-        // Make Platform Description\r
-        //\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
-                                                                        this.dmtnPlatformDescription));\r
-            }\r
-        }\r
-\r
-        //\r
-        // Add sub nodes to root node\r
-        //\r
-        dmtnRoot.add(dmtnModuleDescription);\r
-        dmtnRoot.add(dmtnPackageDescription);\r
-        dmtnRoot.add(dmtnPlatformDescription);\r
-        iTree = new ITree(dmtnRoot);\r
-        iTree.addMouseListener(this);\r
-        iTree.addKeyListener(this);\r
-        jScrollPaneTree.setViewportView(iTree);\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)\r
-     *\r
-     * Override windowClosing to popup warning message to confirm quit\r
-     * \r
-     */\r
-    public void windowClosing(WindowEvent arg0) {\r
-        this.exit();\r
-    }\r
-\r
-    /* (non-Javadoc)\r
-     * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
-     * \r
-     * Override mouseClicked to check if need display popup menu\r
-     * \r
-     */\r
-    public void mouseClicked(MouseEvent arg0) {\r
-        //\r
-        // When double click\r
-        //\r
-        if (arg0.getClickCount() == 2) {\r
-            doubleClickModuleTreeNode();\r
-        }\r
-    }\r
-\r
-    public void mouseEntered(MouseEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-    }\r
-\r
-    public void mouseExited(MouseEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-    }\r
-\r
-    public void mousePressed(MouseEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-    }\r
-\r
-    public void mouseReleased(MouseEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-    }\r
-\r
-    /**\r
-     Remove all Internal Frame of Module Desktop Pane\r
-     \r
-     **/\r
-    private void cleanDesktopPaneModule() {\r
-        if (jDesktopPaneModule != null) {\r
-            JInternalFrame[] iif = this.jDesktopPaneModule.getAllFrames();\r
-            for (int index = 0; index < iif.length; index++) {\r
-                iif[index].dispose();\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Remove all Internal Frame of package Desktop Pane\r
-     \r
-     **/\r
-    private void cleanDesktopPanePackage() {\r
-        if (jDesktopPanePlatform != null) {\r
-            JInternalFrame[] iif = this.jDesktopPanePackage.getAllFrames();\r
-            for (int index = 0; index < iif.length; index++) {\r
-                iif[index].dispose();\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Remove all Internal Frame of platform Desktop Pane\r
-     \r
-     **/\r
-    private void cleanDesktopPanePlatform() {\r
-        if (jDesktopPanePlatform != null) {\r
-            JInternalFrame[] iif = this.jDesktopPanePlatform.getAllFrames();\r
-            for (int index = 0; index < iif.length; index++) {\r
-                iif[index].dispose();\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Remove all Internal Frame of all Desktop Panes\r
-     \r
-     **/\r
-    private void cleanDesktopPane() {\r
-        cleanDesktopPaneModule();\r
-        cleanDesktopPanePackage();\r
-        cleanDesktopPanePlatform();\r
-    }\r
-\r
-    /**\r
-     Set file filter as input ext\r
-     \r
-     @param ext\r
-     @return\r
-     \r
-     **/\r
-    private int getNewFilePath(String ext) {\r
-        JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
-        fc.setAcceptAllFileFilterUsed(false);\r
-        fc.addChoosableFileFilter(new IFileFilter(ext));\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.MODULE,\r
-                                                                   false, mid, this.dmtnModuleDescription);\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(), this.dmtnModuleDescription);\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(), this.dmtnModuleDescription);\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, IDefaultMutableTreeNode belongNode) {\r
-        ModuleIdentification id = GlobalData.openingModuleList.getIdByPath(path);\r
-        if (id == null) {\r
-            //\r
-            // The module is not in existing packages\r
-            //\r
-            Log.wrn("Open Module", "The module does not belong to any package in the current workspace!");\r
-            return;\r
-        }\r
-\r
-        //\r
-        // Make the node selected\r
-        //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(belongNode, id, IDefaultMutableTreeNode.MODULE)));\r
-\r
-        //\r
-        // Update opening Module list information\r
-        //\r
-        if (!iTree.getSelectNode().isOpening()) {\r
-            //\r
-            // Insert sub node of module\r
-            //\r
-            insertModuleTreeNode(id, belongNode);\r
-            iTree.getSelectNode().setOpening(true);\r
-\r
-            //\r
-            // Update opening module list\r
-            //\r
-            GlobalData.openingModuleList.setModuleOpen(id, true);\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\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
-\r
-    /**\r
-     Open Package\r
-\r
-     @param path input file path\r
-     \r
-     **/\r
-    private void openPackage(String path) {\r
-        PackageIdentification id = GlobalData.openingPackageList.getIdByPath(path);\r
-        if (id == null) {\r
-            //\r
-            // The package is not in current workspace\r
-            //\r
-            Log.wrn("Open Package", "The package has not been installed in the current workspace!");\r
-            return;\r
-        }\r
-\r
-        //\r
-        // Make the node selected\r
-        //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
-                                                                     IDefaultMutableTreeNode.PACKAGE)));\r
-        //\r
-        // Update opening package list information\r
-        //\r
-        if (!GlobalData.openingPackageList.getPackageOpen(id)) {\r
-            //\r
-            // Insert sub node of module\r
-            //\r
-            insertPackageTreeNode(id);\r
-            iTree.getSelectNode().setOpening(true);\r
-\r
-            //\r
-            // Update opening module list\r
-            //\r
-            GlobalData.openingPackageList.setPackageOpen(id, true);\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
-        //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
-                                                                     IDefaultMutableTreeNode.SPD_HEADER)));\r
-        showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, GlobalData.openingPackageList.getOpeningPackageById(id));\r
-        this.currentOpeningPackageIndex = GlobalData.openingPackageList.findIndexOfListById(id);\r
-    }\r
-\r
-    /**\r
-     Open Package\r
-\r
-     @param path input file path\r
-     \r
-     **/\r
-    private void openPlatform(String path) {\r
-        PlatformIdentification id = GlobalData.openingPlatformList.getIdByPath(path);\r
-        if (id == null) {\r
-            //\r
-            // The platform is not in current workspace\r
-            //\r
-            Log.wrn("Open Platform", "The platform has not been installed in the current workspace!");\r
-            return;\r
-        }\r
-\r
-        //\r
-        // Make the node selected\r
-        //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
-                                                                     IDefaultMutableTreeNode.PLATFORM)));\r
-        //\r
-        // Update opening package list information\r
-        //\r
-        if (!GlobalData.openingPlatformList.getPlatformOpen(id)) {\r
-            //\r
-            // Insert sub node of module\r
-            //\r
-            insertPlatformTreeNode(id);\r
-            iTree.getSelectNode().setOpening(true);\r
-\r
-            //\r
-            // Update opening module list\r
-            //\r
-            GlobalData.openingPlatformList.setPlatformOpen(id, true);\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
-        //\r
-        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
-                                                                     IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));\r
-        showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
-                            GlobalData.openingPlatformList.getOpeningPlatformById(id));\r
-        this.currentOpeningPlatformIndex = GlobalData.openingPlatformList.findIndexOfListById(id);\r
-    }\r
-\r
-    /**\r
-     Save module \r
-     \r
-     **/\r
-    private void saveModule(int index) {\r
-        OpeningModuleType omt = GlobalData.openingModuleList.getOpeningModuleByIndex(index);\r
-        if (omt.isNew()) {\r
-            if (getNewFilePath(DataType.MODULE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
-                return;\r
-            }\r
-        }\r
-        try {\r
-            SaveFile.saveMsaFile(omt.getId().getPath(), omt.getXmlMsa());\r
-            GlobalData.openingModuleList.setNew(omt.getId(), false);\r
-            GlobalData.openingModuleList.setModuleSaved(omt.getId(), true);\r
-        } catch (Exception e) {\r
-            Log.wrn("Save Module", e.getMessage());\r
-            Log.err("Save Module", e.getMessage());\r
-        }\r
-    }\r
-\r
-    /**\r
-     Save package \r
-     \r
-     **/\r
-    private void savePackage(int index) {\r
-        OpeningPackageType opt = GlobalData.openingPackageList.getOpeningPackageByIndex(index);\r
-        if (opt.isNew()) {\r
-            if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
-                return;\r
-            }\r
-        }\r
-        try {\r
-            SaveFile.saveSpdFile(opt.getId().getPath(), opt.getXmlSpd());\r
-            GlobalData.openingPackageList.setNew(opt.getId(), false);\r
-            GlobalData.openingPackageList.setPackageSaved(opt.getId(), true);\r
-        } catch (Exception e) {\r
-            Log.wrn("Save Package", e.getMessage());\r
-            Log.err("Save Package", e.getMessage());\r
-        }\r
-    }\r
-\r
-    /**\r
-     Save platform \r
-     \r
-     **/\r
-    private void savePlatform(int index) {\r
-        OpeningPlatformType opt = GlobalData.openingPlatformList.getOpeningPlatformByIndex(index);\r
-        if (opt.isNew()) {\r
-            if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
-                return;\r
-            }\r
-        }\r
-        try {\r
-            SaveFile.saveFpdFile(opt.getId().getPath(), opt.getXmlFpd());\r
-            GlobalData.openingPlatformList.setNew(opt.getId(), false);\r
-            GlobalData.openingPlatformList.setPlatformSaved(opt.getId(), true);\r
-        } catch (Exception e) {\r
-            Log.wrn("Save Package", e.getMessage());\r
-            Log.err("Save Package", e.getMessage());\r
-        }\r
-    }\r
-\r
-    public void componentResized(ComponentEvent arg0) {\r
-        if (this.jSplitPane != null) {\r
-            this.jSplitPane.setSize(this.getWidth() - DataType.MAIN_FRAME_WIDTH_SPACING,\r
-                                    this.getHeight() - DataType.MAIN_FRAME_HEIGHT_SPACING);\r
-            this.jSplitPane.validate();\r
-            resizeDesktopPanel();\r
-        }\r
-    }\r
-\r
-    /**\r
-     Resize JDesktopPanel\r
-     \r
-     */\r
-    private void resizeDesktopPanel() {\r
-        resizeDesktopPanel(this.jDesktopPaneModule);\r
-        resizeDesktopPanel(this.jDesktopPanePackage);\r
-        resizeDesktopPanel(this.jDesktopPanePlatform);\r
-    }\r
-\r
-    /**\r
-     Resize JDesktopPanel\r
-     \r
-     */\r
-    private void resizeDesktopPanel(JDesktopPane jdk) {\r
-        JInternalFrame[] iif = jdk.getAllFrames();\r
-        for (int index = 0; index < iif.length; index++) {\r
-            iif[index].setSize(jdk.getWidth(), jdk.getHeight());\r
-        }\r
-    }\r
-\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
-                                                  belongNode));\r
-        iTree\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
-        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
-                                                  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, idmtTemp));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,\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, idmtTemp));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,\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, idmtTemp));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",\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, idmtTemp));\r
-        iTree.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",\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
-     Operate when double click a tree node\r
-     \r
-     **/\r
-    private void doubleClickModuleTreeNode() {\r
-        Identification id = null;\r
-        int intCategory = -1;\r
-        String path = null;\r
-        IDefaultMutableTreeNode belongNode = null;\r
-\r
-        try {\r
-            //\r
-            // Get selected tree node\r
-            //\r
-            if (iTree.getSelectNode() != null) {\r
-                id = iTree.getSelectNode().getId();\r
-            }\r
-\r
-            //\r
-            // If id is null, return directly\r
-            //\r
-            if (id == null) {\r
-                return;\r
-            }\r
-\r
-            intCategory = iTree.getSelectCategory();\r
-            belongNode = iTree.getSelectNode().getBelongNode();\r
-\r
-            //              \r
-            // If the node is not opened yet\r
-            // Insert top level elements first\r
-            //\r
-            if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
-                path = iTree.getSelectNode().getId().getPath();\r
-                openModule(path, belongNode);\r
-                return;\r
-            }\r
-            if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
-                path = iTree.getSelectNode().getId().getPath();\r
-                openPackage(path);\r
-                return;\r
-            }\r
-            if (intCategory == IDefaultMutableTreeNode.PLATFORM) {\r
-                path = iTree.getSelectNode().getId().getPath();\r
-                openPlatform(path);\r
-                return;\r
-            }\r
-\r
-            //\r
-            // Show editor panel\r
-            //\r
-            if (intCategory >= IDefaultMutableTreeNode.MSA_HEADER && intCategory < IDefaultMutableTreeNode.SPD_HEADER) {\r
-                showModuleElement(intCategory,\r
-                                  GlobalData.openingModuleList.getOpeningModuleById(new ModuleIdentification(id)));\r
-                this.currentOpeningModuleIndex = GlobalData.openingModuleList\r
-                                                                             .findIndexOfListById(new ModuleIdentification(\r
-                                                                                                                           id));\r
-            }\r
-            if (intCategory >= IDefaultMutableTreeNode.SPD_HEADER\r
-                && intCategory < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
-                showPackageElement(intCategory,\r
-                                   GlobalData.openingPackageList.getOpeningPackageById(new PackageIdentification(id)));\r
-                this.currentOpeningPackageIndex = GlobalData.openingPackageList\r
-                                                                               .findIndexOfListById(new PackageIdentification(\r
-                                                                                                                              id));\r
-            }\r
-            if (intCategory >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
-                showPlatformElement(\r
-                                    intCategory,\r
-                                    GlobalData.openingPlatformList\r
-                                                                  .getOpeningPlatformById(new PlatformIdentification(id)));\r
-                this.currentOpeningPlatformIndex = GlobalData.openingPlatformList\r
-                                                                                 .findIndexOfListById(new PlatformIdentification(\r
-                                                                                                                                 id));\r
-            }\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
-    }\r
-\r
-    /**\r
-     Show content of editor panel via selected element\r
-     \r
-     @param elementType\r
-     @param fpd\r
-     \r
-     **/\r
-    private void showPlatformElement(int elementType, OpeningPlatformType fpd) {\r
-        this.cleanDesktopPanePlatform();\r
-\r
-        switch (elementType) {\r
-        case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:\r
-            FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdPlatformDefs, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.FPD_PLATFORMHEADER:\r
-            FpdHeader frmFpdHeader = new FpdHeader(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdHeader, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.FPD_FLASH:\r
-            FpdFlash frmFpdFlash = new FpdFlash(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdFlash, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES:\r
-            FpdFrameworkModules frmFpdFrameworkModules = new FpdFrameworkModules(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdFrameworkModules, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS:\r
-            FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions = new FpdDynamicPcdBuildDefinitions(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.FPD_BUILDOPTIONS:\r
-            FpdBuildOptions frmFpdBuildOptions = new FpdBuildOptions(fpd);\r
-            getJDesktopPanePlatform().add(frmFpdBuildOptions, 1);\r
-            break;\r
-        }\r
-        this.jTabbedPaneEditor.setSelectedIndex(2);\r
-        resizeDesktopPanel();\r
-    }\r
-\r
-    /**\r
-     Show content of editor panel via selected element\r
-     \r
-     @param elementType\r
-     @param spd\r
-     \r
-     */\r
-    private void showPackageElement(int elementType, OpeningPackageType spd) {\r
-        this.cleanDesktopPanePackage();\r
-        Tools.dirForNewSpd = spd.getId().getPath();\r
-        switch (elementType) {\r
-        case IDefaultMutableTreeNode.SPD_HEADER:\r
-            SpdHeader frmSpdHeader = new SpdHeader(spd);\r
-            getJDesktopPanePackage().add(frmSpdHeader, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:\r
-            SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd);\r
-            getJDesktopPanePackage().add(frmSlcd, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_MSAFILES:\r
-            SpdMsaFiles frmSmf = new SpdMsaFiles(spd);\r
-            getJDesktopPanePackage().add(frmSmf, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_PACKAGEHEADERS:\r
-            SpdPackageHeaders frmSph = new SpdPackageHeaders(spd);\r
-            getJDesktopPanePackage().add(frmSph, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS:\r
-            SpdGuidDecls frmSgd = new SpdGuidDecls(spd);\r
-            getJDesktopPanePackage().add(frmSgd, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS:\r
-            SpdProtocolDecls frmSprod = new SpdProtocolDecls(spd);\r
-            getJDesktopPanePackage().add(frmSprod, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_PPIDECLARATIONS:\r
-            SpdPpiDecls frmSppid = new SpdPpiDecls(spd);\r
-            getJDesktopPanePackage().add(frmSppid, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.SPD_PCDDECLARATIONS:\r
-            SpdPcdDefs frmSpcdd = new SpdPcdDefs(spd);\r
-            getJDesktopPanePackage().add(frmSpcdd, 1);\r
-            break;\r
-        }\r
-        this.jTabbedPaneEditor.setSelectedIndex(1);\r
-        resizeDesktopPanel();\r
-    }\r
-\r
-    /**\r
-     Show content of editor panel via selected element\r
-     \r
-     @param elementType\r
-     @param msa\r
-     \r
-     */\r
-    private void showModuleElement(int elementType, OpeningModuleType msa) {\r
-        this.cleanDesktopPaneModule();\r
-        switch (elementType) {\r
-        case IDefaultMutableTreeNode.MSA_HEADER:\r
-            MsaHeader frmMsaHeader = new MsaHeader(msa);\r
-            getJDesktopPaneModule().add(frmMsaHeader, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS:\r
-            ModuleLibraryClassDefinitions frmMlcd = new ModuleLibraryClassDefinitions(msa);\r
-            getJDesktopPaneModule().add(frmMlcd, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES:\r
-            ModulePackageDependencies frmMpd = new ModulePackageDependencies(msa);\r
-            getJDesktopPaneModule().add(frmMpd, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_SOURCEFILES:\r
-            ModuleSourceFiles frmMsf = new ModuleSourceFiles(msa);\r
-            getJDesktopPaneModule().add(frmMsf, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_PROTOCOLS:\r
-            ModuleProtocols frmMp = new ModuleProtocols(msa);\r
-            getJDesktopPaneModule().add(frmMp, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_EVENTS:\r
-            ModuleEvents frmMe = new ModuleEvents(msa);\r
-            getJDesktopPaneModule().add(frmMe, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_HOBS:\r
-            ModuleHobs frmMh = new ModuleHobs(msa);\r
-            getJDesktopPaneModule().add(frmMh, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_PPIS:\r
-            ModulePpis frmMpp = new ModulePpis(msa);\r
-            getJDesktopPaneModule().add(frmMpp, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_VARIABLES:\r
-            ModuleVariables frmMv = new ModuleVariables(msa);\r
-            getJDesktopPaneModule().add(frmMv, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_BOOTMODES:\r
-            ModuleBootModes frmMbm = new ModuleBootModes(msa);\r
-            getJDesktopPaneModule().add(frmMbm, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_SYSTEMTABLES:\r
-            ModuleSystemTables frmMst = new ModuleSystemTables(msa);\r
-            getJDesktopPaneModule().add(frmMst, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_DATAHUBS:\r
-            ModuleDataHubs frmMdh = new ModuleDataHubs(msa);\r
-            getJDesktopPaneModule().add(frmMdh, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_HIIPACKAGES:\r
-            ModuleHiiPackages frmMf = new ModuleHiiPackages(msa);\r
-            getJDesktopPaneModule().add(frmMf, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_GUIDS:\r
-            ModuleGuids frmGuid = new ModuleGuids(msa);\r
-            getJDesktopPaneModule().add(frmGuid, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_EXTERNS:\r
-            ModuleExterns frmMex = new ModuleExterns(msa);\r
-            getJDesktopPaneModule().add(frmMex, 1);\r
-            break;\r
-        case IDefaultMutableTreeNode.MSA_PCDS:\r
-            ModulePCDs frmPcd = new ModulePCDs(msa);\r
-            getJDesktopPaneModule().add(frmPcd, 1);\r
-            break;\r
-        }\r
-        this.jTabbedPaneEditor.setSelectedIndex(0);\r
-        resizeDesktopPanel();\r
-    }\r
-\r
-    //\r
-    // Define operations of menu\r
-    //\r
-    /**\r
-     New a file\r
-     \r
-     **/\r
-    private void fileNew() {\r
-        int result = -1;\r
-        //\r
-        // Selece new file type\r
-        //\r
-        NewFileChooser nfc = new NewFileChooser(this, true);\r
-        result = nfc.showDialog();\r
-\r
-        if (result == DataType.RETURN_TYPE_CANCEL) {\r
-            nfc.dispose();\r
-            return;\r
-        } else if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
-            //\r
-            // To new a module\r
-            //\r
-            SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
-            result = smb.showDialog();\r
-\r
-            if (result == DataType.RETURN_TYPE_CANCEL) {\r
-                nfc.dispose();\r
-                smb.dispose();\r
-                return;\r
-            } else if (result == DataType.RETURN_TYPE_OK) {\r
-                ModuleIdentification mid = smb.getMid();\r
-                if (mid != null) {\r
-                    //\r
-                    // Update package of workspace first\r
-                    //\r
-                    PackageSurfaceAreaDocument.PackageSurfaceArea psa = null;\r
-                    if (GlobalData.openingPackageList.existsPackage(mid.getPackageId())) {\r
-                        psa = GlobalData.openingPackageList.getPackageSurfaceAreaFromId(mid.getPackageId());\r
-                    }\r
-                    try {\r
-                        wt.addModuleToPackage(mid, psa);\r
-                    } catch (IOException e) {\r
-                        Log.wrn("Update MsaFiles in Package", e.getMessage());\r
-                        Log.err("Update MsaFiles in Package", e.getMessage());\r
-                        return;\r
-                    } catch (XmlException e) {\r
-                        Log.wrn("Update MsaFiles in Package", e.getMessage());\r
-                        Log.err("Update MsaFiles in Package", e.getMessage());\r
-                        return;\r
-                    } catch (Exception e) {\r
-                        Log.wrn("Update MsaFiles in Package", e.getMessage());\r
-                        Log.err("Update MsaFiles in Package", e.getMessage());\r
-                        return;\r
-                    }\r
-\r
-                    //\r
-                    // Update Global Data\r
-                    //\r
-                    GlobalData.openingModuleList.insertToOpeningModuleList(mid, smb.getMsa());\r
-                    GlobalData.vModuleList.addElement(mid);\r
-\r
-                    //\r
-                    // Create new node on the tree\r
-                    //\r
-                    addModuleToTree(mid);\r
-\r
-                    //\r
-                    // Open the node\r
-                    //\r
-                    this.openModule(mid.getPath(), this.dmtnModuleDescription);\r
-                }\r
-            }\r
-        } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
-            //\r
-            // To new a package\r
-            //\r
-            SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
-            result = smb.showDialog();\r
-\r
-            if (result == DataType.RETURN_TYPE_CANCEL) {\r
-                nfc.dispose();\r
-                smb.dispose();\r
-                return;\r
-            } else if (result == DataType.RETURN_TYPE_OK) {\r
-                PackageIdentification pid = smb.getPid();\r
-                if (pid != null) {\r
-                    try {\r
-                        wt.addPackageToDatabase(smb.getPid());\r
-                    } catch (Exception e) {\r
-                        Log.err("addPackageToDatabase", e.getMessage());\r
-                    }\r
-\r
-                    //\r
-                    // Update Global Data\r
-                    //\r
-                    GlobalData.openingPackageList.insertToOpeningPackageList(pid, smb.getSpd());\r
-                    GlobalData.vPackageList.addElement(pid);\r
-\r
-                    //\r
-                    // Add to Module Description node\r
-                    //\r
-                    IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(pid.getName(),\r
-                                                                               IDefaultMutableTreeNode.MODULE_PACKAGE,\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
-                                                       this.dmtnPackageDescription);\r
-                    iTree.addNode(dmtnPackageDescription, node);\r
-\r
-                    this.openPackage(pid.getPath());\r
-                }\r
-            }\r
-        } else if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
-            //\r
-            // To new a platform\r
-            //\r
-            SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
-            result = smb.showDialog();\r
-\r
-            if (result == DataType.RETURN_TYPE_CANCEL) {\r
-                nfc.dispose();\r
-                smb.dispose();\r
-                return;\r
-            } else if (result == DataType.RETURN_TYPE_OK) {\r
-                PlatformIdentification fid = smb.getFid();\r
-                if (fid != null) {\r
-                    try {\r
-                        wt.addPlatformToDatabase(fid);\r
-                    } catch (Exception e) {\r
-                        Log.err("addPlatformToDatabase", e.getMessage());\r
-                    }\r
-\r
-                    //\r
-                    // Update global data\r
-                    //\r
-                    GlobalData.openingPlatformList.insertToOpeningPlatformList(fid, smb.getFpd());\r
-                    GlobalData.vPlatformList.addElement(fid);\r
-                    //\r
-                    // Add new SpdHeader node to the tree\r
-                    //\r
-                    IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(fid.getName(),\r
-                                                                               IDefaultMutableTreeNode.PLATFORM, true,\r
-                                                                               fid, this.dmtnPlatformDescription);\r
-                    iTree.addNode(dmtnPlatformDescription, node);\r
-                    this.openPlatform(fid.getPath());\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Open a file\r
-     \r
-     **/\r
-    private void open() {\r
-        JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
-        fc.setAcceptAllFileFilterUsed(false);\r
-        IFileFilter iffM = new IFileFilter(DataType.MODULE_SURFACE_AREA_EXT);\r
-        IFileFilter iffP = new IFileFilter(DataType.PACKAGE_SURFACE_AREA_EXT);\r
-        IFileFilter iffF = new IFileFilter(DataType.PLATFORM_SURFACE_AREA_EXT);\r
-        fc.addChoosableFileFilter(iffM);\r
-        fc.addChoosableFileFilter(iffP);\r
-        fc.addChoosableFileFilter(iffF);\r
-        fc.setFileFilter(iffM);\r
-\r
-        int result = fc.showOpenDialog(new JPanel());\r
-\r
-        if (result == JFileChooser.APPROVE_OPTION) {\r
-            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, 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
-                openPlatform(path);\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Close files\r
-     \r
-     **/\r
-    private void close() {\r
-        TreePath item = null;\r
-        switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
-        //\r
-        // Current is module\r
-        //\r
-        case 0:\r
-            if (this.currentOpeningModuleIndex > -1) {\r
-                if (!GlobalData.openingModuleList.getModuleSaved(currentOpeningModuleIndex)) {\r
-                    int result = showSaveDialog();\r
-                    if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
-                    }\r
-                    if (result == JOptionPane.NO_OPTION) {\r
-                        // Do nothing\r
-                    }\r
-                    if (result == JOptionPane.CANCEL_OPTION) {\r
-                        return;\r
-                    }\r
-                }\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
-            }\r
-            break;\r
-        //\r
-        // Current is package\r
-        //\r
-        case 1:\r
-            if (this.currentOpeningPackageIndex > -1) {\r
-                if (!GlobalData.openingPackageList.getPackageSaved(currentOpeningPackageIndex)) {\r
-                    int result = showSaveDialog();\r
-                    if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
-                    }\r
-                    if (result == JOptionPane.NO_OPTION) {\r
-                        // Do nothing\r
-                    }\r
-                    if (result == JOptionPane.CANCEL_OPTION) {\r
-                        return;\r
-                    }\r
-                }\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
-            }\r
-            break;\r
-        //\r
-        // Current is platform\r
-        //\r
-        case 2:\r
-            if (this.currentOpeningPlatformIndex > -1) {\r
-                if (!GlobalData.openingPlatformList.getPlatformSaved(currentOpeningPlatformIndex)) {\r
-                    int result = showSaveDialog();\r
-                    if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
-                    }\r
-                    if (result == JOptionPane.NO_OPTION) {\r
-                        // Do nothing\r
-                    }\r
-                    if (result == JOptionPane.CANCEL_OPTION) {\r
-                        return;\r
-                    }\r
-                }\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
-            }\r
-            break;\r
-        }\r
-    }\r
-\r
-    /**\r
-     Close all opening files and clean all showing internal frame\r
-     \r
-     **/\r
-    private void closeAll() {\r
-        int result = -1;\r
-        if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
-            || !GlobalData.openingPlatformList.isSaved()) {\r
-            result = showSaveDialog();\r
-        }\r
-        if (result == JOptionPane.YES_OPTION) {\r
-            this.saveAll();\r
-        }\r
-        if (result == JOptionPane.NO_OPTION) {\r
-            //\r
-            // Do nothing\r
-            //\r
-        }\r
-        if (result == JOptionPane.CANCEL_OPTION) {\r
-            return;\r
-        }\r
-        this.cleanDesktopPane();\r
-        GlobalData.openingModuleList.closeAll();\r
-        GlobalData.openingPackageList.closeAll();\r
-        GlobalData.openingPlatformList.closeAll();\r
-    }\r
-\r
-    /**\r
-     Refresh all global data from disk to memory\r
-     \r
-     **/\r
-    private void refresh() {\r
-        GlobalData.init();\r
-    }\r
-\r
-    /**\r
-     Save currentModule when press button OK\r
-     \r
-     **/\r
-    private void save() {\r
-        switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
-        case 0:\r
-            if (this.currentOpeningModuleIndex > -1) {\r
-                saveModule(this.currentOpeningModuleIndex);\r
-            }\r
-            break;\r
-        case 1:\r
-            if (this.currentOpeningPackageIndex > -1) {\r
-                savePackage(this.currentOpeningPackageIndex);\r
-            }\r
-            break;\r
-        case 2:\r
-            if (this.currentOpeningPlatformIndex > -1) {\r
-                savePlatform(this.currentOpeningPlatformIndex);\r
-            }\r
-            break;\r
-        }\r
-    }\r
-\r
-    private void saveAs() {\r
-\r
-    }\r
-\r
-    private void saveAll() {\r
-        //\r
-        // Save all modules\r
-        //\r
-        for (int index = 0; index < GlobalData.openingModuleList.size(); index++) {\r
-            if (!GlobalData.openingModuleList.getModuleSaved(index)) {\r
-                saveModule(index);\r
-            }\r
-        }\r
-\r
-        //\r
-        // Save all packages\r
-        //\r
-        for (int index = 0; index < GlobalData.openingPackageList.size(); index++) {\r
-            if (!GlobalData.openingPackageList.getPackageSaved(index)) {\r
-                savePackage(index);\r
-            }\r
-        }\r
-\r
-        //\r
-        // Save all platforms\r
-        //\r
-        for (int index = 0; index < GlobalData.openingPlatformList.size(); index++) {\r
-            if (!GlobalData.openingPlatformList.getPlatformSaved(index)) {\r
-                savePlatform(index);\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     To save changed items before exit.\r
-     \r
-     **/\r
-    private void exit() {\r
-        int result = -1;\r
-        if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
-            || !GlobalData.openingPlatformList.isSaved()) {\r
-            result = showSaveDialog();\r
-        }\r
-        if (result == JOptionPane.YES_OPTION) {\r
-            this.saveAll();\r
-        }\r
-        if (result == JOptionPane.NO_OPTION) {\r
-            // Do nothing\r
-        }\r
-        if (result == JOptionPane.CANCEL_OPTION) {\r
-            return;\r
-        }\r
-        this.dispose();\r
-        System.exit(0);\r
-    }\r
-\r
-    /**\r
-     To find all defined PPIs in workspace\r
-     \r
-     **/\r
-    private void findPpi() {\r
-        FindResult fr = FindResult.getInstance("PPI");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     To find all defined PROTOCOLs in workspace\r
-     \r
-     **/\r
-    private void findProtocol() {\r
-        FindResult fr = FindResult.getInstance("PROTOCOL");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     To find all defined PROTOCOLs in workspace\r
-     \r
-     **/\r
-    private void findGuid() {\r
-        FindResult fr = FindResult.getInstance("GUID");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     To find all defined PROTOCOLs in workspace\r
-     \r
-     **/\r
-    private void findPcd() {\r
-        FindResult fr = FindResult.getInstance("PCD");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     To find all defined Library Classes in workspace\r
-     \r
-     **/\r
-    private void findLibraryClass() {\r
-        FindResult fr = FindResult.getInstance("LIBRARY_CLASS");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     To find all defined Library Instances in workspace\r
-     \r
-     **/\r
-    private void findLibraryInstance() {\r
-        FindResult fr = FindResult.getInstance("LIBRARY_INSTANCE");\r
-        fr.setVisible(true);\r
-    }\r
-\r
-    /**\r
-     Switch current workspace to others\r
-     \r
-     **/\r
-    private void changeWorkspace() {\r
-        SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
-        int result = sw.showDialog();\r
-        if (result == DataType.RETURN_TYPE_CANCEL) {\r
-            return;\r
-        } else if (result == DataType.RETURN_TYPE_OK) {\r
-            //\r
-            // Reinit whole window\r
-            //\r
-            this.closeAll();\r
-            this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
-                          + Workspace.getCurrentWorkspace() + "]");\r
-            //\r
-            // Refrash the tree\r
-            //\r
-            this.refresh();\r
-        }\r
-        sw.dispose();\r
-    }\r
-\r
-    /**\r
-     To create a Far file from current workspace\r
-     \r
-     **/\r
-    private void createFar() {\r
-        CreateStepOne cso = new CreateStepOne(this, true);\r
-        int result = cso.showDialog();\r
-        if (result == DataType.RETURN_TYPE_OK) {\r
-            String strReturn = "Far Creation Completed!";\r
-            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                          JOptionPane.INFORMATION_MESSAGE);\r
-        }\r
-        cso.dispose();\r
-    }\r
-\r
-    /**\r
-     To install a Far file to current workspace\r
-     \r
-     **/\r
-    private void installFar() {\r
-        InstallStepOne iso = new InstallStepOne(this, true);\r
-        int result = iso.showDialog();\r
-        if (result == DataType.RETURN_TYPE_OK) {\r
-            String strReturn = "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";\r
-            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                          JOptionPane.INFORMATION_MESSAGE);\r
-            this.closeAll();\r
-            this.refresh();\r
-            this.makeEmptyTree();\r
-        }\r
-        iso.dispose();\r
-    }\r
-\r
-    /**\r
-     To remove a Far's items from current workspace\r
-     \r
-     **/\r
-    private void removeFar() {\r
-        DeleteStepOne dso = new DeleteStepOne(this, true);\r
-        int result = dso.showDialog();\r
-        if (result == DataType.RETURN_TYPE_OK) {\r
-            String strReturn = "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";\r
-            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                          JOptionPane.INFORMATION_MESSAGE);\r
-            this.closeAll();\r
-            this.refresh();\r
-            this.makeEmptyTree();\r
-        }\r
-        dso.dispose();\r
-    }\r
-\r
-    /**\r
-     To update an existing Far file\r
-     \r
-     **/\r
-    private void updateFar() {\r
-        UpdateStepOne uso = new UpdateStepOne(this, true);\r
-        int result = uso.showDialog();\r
-        if (result == DataType.RETURN_TYPE_OK) {\r
-            String strReturn = "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";\r
-            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                          JOptionPane.INFORMATION_MESSAGE);\r
-            this.closeAll();\r
-            this.refresh();\r
-            this.makeEmptyTree();\r
-        }\r
-        uso.dispose();\r
-    }\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
-    private void configBuildPreferences() {\r
-        Preferences bt = Preferences.getInstance();\r
-        bt.showDialog();\r
-    }\r
-\r
-    /**\r
-     Clone selected item\r
-     \r
-     **/\r
-    private void cloneItem() {\r
-        int mode = -1;\r
-\r
-        //\r
-        // Check if there is any item can be cloned\r
-        //\r
-        if (iTree.getSelectionPath() == null) {\r
-            Log.wrn("Clone", "Please select a target to clone!");\r
-            return;\r
-        }\r
-        int category = iTree.getSelectCategory();\r
-        Identification id = iTree.getSelectNode().getId();\r
-\r
-        if (category == IDefaultMutableTreeNode.WORKSPACE) {\r
-            mode = DataType.RETURN_TYPE_WORKSPACE;\r
-            id = null;\r
-        }\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.PACKAGE)\r
-            || (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
-            mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;\r
-        }\r
-        if ((category == IDefaultMutableTreeNode.PLATFORM) || (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
-            mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\r
-        }\r
-\r
-        Clone c = new Clone(this, true, mode, id);\r
-        int result = c.showDialog();\r
-\r
-        if (result == DataType.RETURN_TYPE_CANCEL) {\r
-            c.dispose();\r
-        }\r
-        if (result == DataType.RETURN_TYPE_WORKSPACE) {\r
-            Tools.showInformationMessage("Workspace Clone Completed!");\r
-        }\r
-        if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
-            Tools.showInformationMessage("Module Clone Completed!");\r
-            addModuleToTree(c.getMid());\r
-        }\r
-        if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
-            Tools.showInformationMessage("Package Clone Completed!");\r
-            //\r
-            // Add new SpdHeader node to the tree\r
-            //\r
-            IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(GlobalData.vPackageList.lastElement().getName(),\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
-            //\r
-            // Add new SpdHeader node to the tree\r
-            //\r
-            IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(\r
-                                                                       GlobalData.vPlatformList.lastElement().getName(),\r
-                                                                       IDefaultMutableTreeNode.PLATFORM, false,\r
-                                                                       GlobalData.vPlatformList.lastElement(),\r
-                                                                       this.dmtnPlatformDescription);\r
-            iTree.addNode(this.dmtnPlatformDescription, node);\r
-        }\r
-        if (result == DataType.RETURN_TYPE_OK) {\r
-\r
-        }\r
-    }\r
-\r
-    public void valueChanged(TreeSelectionEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void menuCanceled(MenuEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void menuDeselected(MenuEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void menuSelected(MenuEvent arg0) {\r
-        if (arg0.getSource() == jMenuFile) {\r
-            //\r
-            // Enable close/close all if some files are opened\r
-            //\r
-            jMenuItemFileClose.setEnabled(GlobalData.openingModuleList.isOpen()\r
-                                          || GlobalData.openingPackageList.isOpen()\r
-                                          || GlobalData.openingPlatformList.isOpen());\r
-            jMenuItemFileCloseAll.setEnabled(GlobalData.openingModuleList.isOpen()\r
-                                             || GlobalData.openingPackageList.isOpen()\r
-                                             || GlobalData.openingPlatformList.isOpen());\r
-\r
-            //\r
-            // Enable save/save all if some files are changed\r
-            //\r
-            jMenuItemFileSave.setEnabled(!GlobalData.openingModuleList.isSaved()\r
-                                         || !GlobalData.openingPackageList.isSaved()\r
-                                         || !GlobalData.openingPlatformList.isSaved());\r
-            jMenuItemFileSaveAll.setEnabled(!GlobalData.openingModuleList.isSaved()\r
-                                            || !GlobalData.openingPackageList.isSaved()\r
-                                            || !GlobalData.openingPlatformList.isSaved());\r
-        }\r
-\r
-        if (arg0.getSource() == jMenuTools) {\r
-            //\r
-            // Enable clone when select some items\r
-            //\r
-            if (iTree.getSelectionPath() == null) {\r
-                jMenuItemToolsClone.setEnabled(false);\r
-            } else {\r
-                int category = iTree.getSelectCategory();\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
-                    jMenuItemToolsClone.setEnabled(false);\r
-                } else {\r
-                    jMenuItemToolsClone.setEnabled(true);\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-    public void keyTyped(KeyEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void keyPressed(KeyEvent arg0) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
-    public void keyReleased(KeyEvent arg0) {\r
-        if (arg0.getSource() == this.iTree) {\r
-            if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\r
-                this.doubleClickModuleTreeNode();\r
-            }\r
-        }\r
-    }\r
-\r
-    /**\r
-     Search whole workspace and find all module's name and guid, and save them to a file\r
-     \r
-     **/\r
-    private void generateGuidsXref() {\r
-        //\r
-        // Init File Chooser\r
-        //\r
-        JFileChooser fc = new JFileChooser();\r
-        fc.setCurrentDirectory(new File(Workspace.getCurrentWorkspace()));\r
-        fc.setSelectedFile(new File(Workspace.getCurrentWorkspace() + DataType.FILE_SEPARATOR\r
-                                    + DataType.GUIDS_XREF_FILE_NAME));\r
-        fc.setMultiSelectionEnabled(false);\r
-\r
-        //\r
-        // Get guids xref and save to file\r
-        //\r
-        int result = fc.showSaveDialog(new JPanel());\r
-        if (result == JFileChooser.APPROVE_OPTION) {\r
-            Vector<String> v = wt.getAllModuleGuidXref();\r
-            if (v.size() < 1) {\r
-                Log.wrn("No guids found!!!");\r
-                return;\r
-            }\r
-            File f = fc.getSelectedFile();\r
-            if (!f.exists()) {\r
-                try {\r
-                    f.createNewFile();\r
-                } catch (IOException e) {\r
-                    Log.wrn("Fail to create file", e.getMessage());\r
-                    Log.err("Fail to create file when generating guids.xref", e.getMessage());\r
-                }\r
-            }\r
-            FileWriter fw = null;\r
-            BufferedWriter bw = null;\r
-            try {\r
-                fw = new FileWriter(f);\r
-                bw = new BufferedWriter(fw);\r
-                for (int index = 0; index < v.size(); index++) {\r
-                    bw.write(v.get(index));\r
-                    bw.newLine();\r
-                }\r
-                bw.flush();\r
-                fw.flush();\r
-                bw.close();\r
-                fw.close();\r
-            } catch (IOException e) {\r
-                Log.wrn("Fail to write file", e.getMessage());\r
-                Log.err("Fail to write file when generating guids.xref", e.getMessage());\r
-                return;\r
-            }\r
-\r
-            JOptionPane.showConfirmDialog(null, "File is created", "Generate guids.xref", JOptionPane.DEFAULT_OPTION,\r
-                                          JOptionPane.INFORMATION_MESSAGE);\r
-        }\r
-    }\r
-\r
-    /**\r
-     Check if WORKSPACE Environment is valid\r
-     \r
-     **/\r
-    private void checkWorkspace() {\r
-        switch (Workspace.checkCurrentWorkspace()) {\r
-        case Workspace.WORKSPACE_VALID:\r
-            break;\r
-        case Workspace.WORKSPACE_NOT_DEFINED:\r
-            JOptionPane\r
-                       .showConfirmDialog(\r
-                                          null,\r
-                                          "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. " +\r
-                                          DataType.LINE_SEPARATOR + DataType.LINE_SEPARATOR + "NOTICE:" +\r
-                                          DataType.LINE_SEPARATOR + "This does not change the System Environment Variable." +\r
-                                          DataType.LINE_SEPARATOR + "It only applies to where the Wizard will manage modification and file creations.",\r
-                                          "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
-            SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
-            int result = sw.showDialog();\r
-            if (result == DataType.RETURN_TYPE_CANCEL) {\r
-                this.dispose();\r
-                System.exit(0);\r
-            } else if (result == DataType.RETURN_TYPE_OK) {\r
-                sw.dispose();\r
-                break;\r
-            }\r
-        case Workspace.WORKSPACE_NOT_EXIST:\r
-            JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not Existed", "Error",\r
-                                          JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
-            this.dispose();\r
-            System.exit(0);\r
-        case Workspace.WORKSPACE_NOT_DIRECTORY:\r
-            JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not A Directory", "Error",\r
-                                          JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
-            this.dispose();\r
-            System.exit(0);\r
-        case Workspace.WORKSPACE_NOT_VALID:\r
-            JOptionPane.showConfirmDialog(null, "WORKSPACE Environment Variable Is Not Valid", "Error",\r
-                                          JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
-            this.dispose();\r
-            System.exit(0);\r
-        }\r
-    }\r
-}\r