+/** @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.ComponentListener;\r
+import java.awt.event.MouseEvent;\r
+import java.awt.event.MouseListener;\r
+import java.awt.event.WindowEvent;\r
+import java.io.IOException;\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
+\r
+import org.apache.xmlbeans.XmlException;\r
+import org.tianocore.ModuleSurfaceAreaDocument;\r
+import org.tianocore.PackageSurfaceAreaDocument;\r
+import org.tianocore.PlatformSurfaceAreaDocument;\r
+import org.tianocore.frameworkwizard.common.DataType;\r
+import org.tianocore.frameworkwizard.common.IFileFilter;\r
+import org.tianocore.frameworkwizard.common.Identification;\r
+import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.OpenFile;\r
+import org.tianocore.frameworkwizard.common.OpeningModuleList;\r
+import org.tianocore.frameworkwizard.common.OpeningModuleType;\r
+import org.tianocore.frameworkwizard.common.OpeningPackageList;\r
+import org.tianocore.frameworkwizard.common.OpeningPackageType;\r
+import org.tianocore.frameworkwizard.common.OpeningPlatformList;\r
+import org.tianocore.frameworkwizard.common.OpeningPlatformType;\r
+import org.tianocore.frameworkwizard.common.SaveFile;\r
+import org.tianocore.frameworkwizard.common.Tools;\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.module.Identification.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;\r
+import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;\r
+import org.tianocore.frameworkwizard.module.ui.ModuleDefinitions;\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.SpdPackageDefinitions;\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
+\r
+/**\r
+ The class is used to show main GUI of ModuleEditor\r
+ It extends IFrame implements MouseListener, TreeSelectionListener\r
+\r
+ **/\r
+public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener,\r
+ MenuListener {\r
+ ///\r
+ /// Define class Serial Version UID\r
+ ///\r
+ private static final long serialVersionUID = -7103240960573031772L;\r
+ \r
+ //\r
+ // To save information of all files\r
+ //\r
+ private Vector<ModuleIdentification> vModuleList = new Vector<ModuleIdentification>();\r
+\r
+ private Vector<PackageIdentification> vPackageList = new Vector<PackageIdentification>();\r
+\r
+ private Vector<PlatformIdentification> vPlatformList = new Vector<PlatformIdentification>();\r
+\r
+ private OpeningModuleList openingModuleList = new OpeningModuleList();\r
+\r
+ private OpeningPackageList openingPackageList = new OpeningPackageList();\r
+\r
+ private OpeningPlatformList openingPlatformList = new OpeningPlatformList();\r
+\r
+ private int currentOpeningModuleIndex = -1;\r
+\r
+ private int currentOpeningPackageIndex = -1;\r
+\r
+ private int currentOpeningPlatformIndex = -1;\r
+\r
+ private String windowTitle = "FrameworkWizard 1.0 ";\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
+ 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 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 jMenuItemEditFind = 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 JMenu jMenuProjectBuildTargets = 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 jMenuItemProjectInstallPackage = null;\r
+\r
+ private JMenuItem jMenuItemProjectUpdatePackage = null;\r
+\r
+ private JMenuItem jMenuItemProjectRemovePackage = null;\r
+\r
+ //private JToolBar jToolBarFile = null;\r
+\r
+ //private JToolBar jToolBarEdit = null;\r
+\r
+ //private JToolBar jToolBarWindow = null;\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.addChangeListener(this);\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
+ jMenuFile = new JMenu();\r
+ jMenuFile.setText("File");\r
+ jMenuFile.setMnemonic('F');\r
+ jMenuFile.add(getJMenuItemFileNew());\r
+ jMenuFile.add(getJMenuItemFileOpen());\r
+ jMenuFile.add(getJMenuItemFileClose());\r
+ jMenuFile.add(getJMenuItemFileCloseAll());\r
+ jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuFileRecentFiles());\r
+ //jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuItemFileSave());\r
+ jMenuFile.add(getJMenuItemFileSaveAs());\r
+ jMenuFile.add(getJMenuItemFileSaveAll());\r
+ jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuItemFilePageSetup());\r
+ jMenuFile.add(getJMenuItemFilePrint());\r
+ //jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuItemFileImport());\r
+ //jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuItemFileProperties());\r
+ //jMenuFile.addSeparator();\r
+ jMenuFile.add(getJMenuItemFileExit());\r
+ jMenuFile.addMenuListener(this);\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 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
+ jMenuEdit = new JMenu();\r
+ jMenuEdit.setText("Edit");\r
+ jMenuEdit.setMnemonic('E');\r
+ jMenuEdit.add(getJMenuItemEditUndo());\r
+ jMenuEdit.add(getJMenuItemEditRedo());\r
+ jMenuEdit.addSeparator();\r
+ jMenuEdit.add(getJMenuItemEditCut());\r
+ jMenuEdit.add(getJMenuItemEditCopy());\r
+ jMenuEdit.add(getJMenuItemEditPaste());\r
+ jMenuEdit.add(getJMenuItemEditDelete());\r
+ jMenuEdit.addSeparator();\r
+ jMenuEdit.add(getJMenuItemEditSelectAll());\r
+ jMenuEdit.add(getJMenuItemEditFind());\r
+ jMenuEdit.add(getJMenuItemEditFindNext());\r
+ jMenuEdit.addSeparator();\r
+ jMenuEdit.setVisible(false);\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.setBounds(new java.awt.Rectangle(0, 1, 290, 545));\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
+ jMenuHelp = new JMenu();\r
+ jMenuHelp.setText("Help");\r
+ jMenuHelp.add(getJMenuItemHelpContents());\r
+ jMenuHelp.add(getJMenuItemHelpIndex());\r
+ jMenuHelp.add(getJMenuItemHelpSearch());\r
+ //jMenuHelp.addSeparator();\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.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.addActionListener(this);\r
+ //\r
+ //Disabled when no module is open\r
+ //\r
+ jMenuItemEditDelete.setEnabled(false);\r
+ }\r
+ return jMenuItemEditDelete;\r
+ }\r
+\r
+ // /**\r
+ // This method initializes jPopupMenu \r
+ // \r
+ // @return javax.swing.JPopupMenu jPopupMenu\r
+ // \r
+ // **/\r
+ // private JPopupMenu getJPopupMenu() {\r
+ // if (jPopupMenu == null) {\r
+ // jPopupMenu = new JPopupMenu();\r
+ // //\r
+ // //Add menu items of popup menu\r
+ // //\r
+ // jPopupMenu.add(getJMenuItemPopupAdd());\r
+ // jPopupMenu.add(getJMenuItemPopupUpdate());\r
+ // jPopupMenu.add(getJMenuItemPopupDelete());\r
+ // jPopupMenu.setBorder(new BevelBorder(BevelBorder.RAISED));\r
+ // jPopupMenu.addMouseListener(this);\r
+ // }\r
+ // return jPopupMenu;\r
+ // }\r
+ //\r
+ // /**\r
+ // This method initializes jMenuItemPopupAdd \r
+ // \r
+ // @return javax.swing.JMenuItem jMenuItemPopupAdd\r
+ // \r
+ // **/\r
+ // private JMenuItem getJMenuItemPopupAdd() {\r
+ // if (jMenuItemPopupAdd == null) {\r
+ // jMenuItemPopupAdd = new JMenuItem();\r
+ // jMenuItemPopupAdd.setText("Add");\r
+ // jMenuItemPopupAdd.addActionListener(this);\r
+ // jMenuItemPopupAdd.setEnabled(false);\r
+ // }\r
+ // return jMenuItemPopupAdd;\r
+ // }\r
+ //\r
+ // /**\r
+ // This method initializes jMenuItemPopupUpdate \r
+ // \r
+ // @return javax.swing.JMenuItem jMenuItemPopupUpdate\r
+ // \r
+ // **/\r
+ // private JMenuItem getJMenuItemPopupUpdate() {\r
+ // if (jMenuItemPopupUpdate == null) {\r
+ // jMenuItemPopupUpdate = new JMenuItem();\r
+ // jMenuItemPopupUpdate.setText("Update");\r
+ // jMenuItemPopupUpdate.addActionListener(this);\r
+ // jMenuItemPopupUpdate.setEnabled(false);\r
+ // }\r
+ // return jMenuItemPopupUpdate;\r
+ // }\r
+ //\r
+ // /**\r
+ // This method initializes jMenuItemPopupDelete \r
+ // \r
+ // @return javax.swing.JMenuItem jMenuItemPopupDelete\r
+ // \r
+ // **/\r
+ // private JMenuItem getJMenuItemPopupDelete() {\r
+ // if (jMenuItemPopupDelete == null) {\r
+ // jMenuItemPopupDelete = new JMenuItem();\r
+ // jMenuItemPopupDelete.setText("Delete");\r
+ // jMenuItemPopupDelete.addActionListener(this);\r
+ // jMenuItemPopupDelete.setEnabled(false);\r
+ // }\r
+ // return jMenuItemPopupDelete;\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
+ jMenuTools = new JMenu();\r
+ jMenuTools.setText("Tools");\r
+ jMenuTools.setMnemonic('T');\r
+ jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
+ //jMenuTools.addSeparator();\r
+ jMenuTools.add(getJMenuItemToolsClone());\r
+ //jMenuTools.addSeparator();\r
+ jMenuTools.add(getJMenuItemToolsCodeScan());\r
+ jMenuTools.addMenuListener(this);\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
+ jMenuWindow = new JMenu();\r
+ jMenuWindow.setText("Window");\r
+ jMenuWindow.setMnemonic('W');\r
+ jMenuWindow.add(getJMenuItemWindowDisplaySide());\r
+ jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());\r
+ jMenuWindow.addSeparator();\r
+ jMenuWindow.add(getJMenuItemWindowTabView());\r
+ jMenuWindow.addSeparator();\r
+ jMenuWindow.add(getJMenuItemWindowSource());\r
+ jMenuWindow.add(getJMenuItemWindowXML());\r
+ jMenuWindow.addSeparator();\r
+ jMenuWindow.add(getJMenuItemWindowPreferences());\r
+ jMenuWindow.setVisible(false);\r
+ }\r
+ return jMenuWindow;\r
+ }\r
+\r
+ /**\r
+ This method initializes jPanelOperation \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
+ \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
+ \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
+ 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
+ private JMenuItem getJMenuItemFileCloseAll() {\r
+ if (jMenuItemFileCloseAll == null) {\r
+ jMenuItemFileCloseAll = new JMenuItem();\r
+ jMenuItemFileCloseAll.setText("Close All");\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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditUndo;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItemEditRedo \r
+ \r
+ @return javax.swing.JMenuItem \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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditRedo;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItemEditCut \r
+ \r
+ @return javax.swing.JMenuItem \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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditCut;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItemEditCopy \r
+ \r
+ @return javax.swing.JMenuItem \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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditCopy;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItemEditPaste \r
+ \r
+ return javax.swing.JMenuItem \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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditPaste;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItem \r
+ \r
+ @return javax.swing.JMenuItem \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.addActionListener(this);\r
+ }\r
+ return jMenuItemEditSelectAll;\r
+ }\r
+\r
+ /**\r
+ This method initializes jMenuItemEditFind \r
+ \r
+ @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemEditFind() {\r
+ if (jMenuItemEditFind == null) {\r
+ jMenuItemEditFind = new JMenuItem();\r
+ jMenuItemEditFind.setText("Find");\r
+ jMenuItemEditFind.setMnemonic('F');\r
+ jMenuItemEditFind.setEnabled(false);\r
+ jMenuItemEditFind.addActionListener(this);\r
+ }\r
+ return jMenuItemEditFind;\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.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
+ jMenuView = new JMenu();\r
+ jMenuView.setText("View");\r
+ jMenuView.setMnemonic('V');\r
+ jMenuView.add(getJMenuViewToolbars());\r
+ jMenuView.add(getJMenuItemViewAdvanced());\r
+ jMenuView.add(getJMenuItemViewStandard());\r
+ jMenuView.add(getJMenuItemViewXML());\r
+ jMenuView.setVisible(false);\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
+ 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
+ jMenuProject = new JMenu();\r
+ jMenuProject.setText("Project");\r
+ jMenuProject.setMnemonic('P');\r
+ jMenuProject.add(getJMenuItemProjectAdmin());\r
+ //jMenuProject.addSeparator();\r
+ jMenuProject.add(getJMenuItemProjectChangeWorkspace());\r
+ jMenuProject.addSeparator();\r
+ jMenuProject.add(getJMenuItemProjectInstallPackage());\r
+ jMenuProject.add(getJMenuItemProjectUpdatePackage());\r
+ jMenuProject.add(getJMenuItemProjectRemovePackage());\r
+ //jMenuProject.addSeparator();\r
+ jMenuProject.add(getJMenuProjectBuildTargets());\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 jMenuProjectBuildTargets \r
+ \r
+ @return javax.swing.JMenu \r
+ \r
+ */\r
+ private JMenu getJMenuProjectBuildTargets() {\r
+ if (jMenuProjectBuildTargets == null) {\r
+ jMenuProjectBuildTargets = new JMenu();\r
+ jMenuProjectBuildTargets.setText("Build Targets");\r
+ jMenuProjectBuildTargets.setMnemonic('T');\r
+ jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());\r
+ jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());\r
+ jMenuProjectBuildTargets.setVisible(false);\r
+ }\r
+ return jMenuProjectBuildTargets;\r
+ }\r
+\r
+ /**\r
+ This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug \r
+ \r
+ @return javax.swing.JCheckBoxMenuItem \r
+ \r
+ */\r
+ private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsDebug() {\r
+ if (jCheckBoxMenuItemProjectBuildTargetsDebug == null) {\r
+ jCheckBoxMenuItemProjectBuildTargetsDebug = new JCheckBoxMenuItem();\r
+ jCheckBoxMenuItemProjectBuildTargetsDebug.setText("Debug");\r
+ jCheckBoxMenuItemProjectBuildTargetsDebug.setEnabled(false);\r
+ }\r
+ return jCheckBoxMenuItemProjectBuildTargetsDebug;\r
+ }\r
+\r
+ /**\r
+ This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease \r
+ \r
+ @return javax.swing.JCheckBoxMenuItem \r
+ \r
+ */\r
+ private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsRelease() {\r
+ if (jCheckBoxMenuItemProjectBuildTargetsRelease == null) {\r
+ jCheckBoxMenuItemProjectBuildTargetsRelease = new JCheckBoxMenuItem();\r
+ jCheckBoxMenuItemProjectBuildTargetsRelease.setText("Release");\r
+ jCheckBoxMenuItemProjectBuildTargetsRelease.setEnabled(false);\r
+ }\r
+ return jCheckBoxMenuItemProjectBuildTargetsRelease;\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
+ jMenuItemToolsToolChainConfiguration.setVisible(false);\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 jToolBar \r
+ * \r
+ * @return javax.swing.JToolBar \r
+ */\r
+ // private JToolBar getJToolBarFile() {\r
+ // if (jToolBarFile == null) {\r
+ // jToolBarFile = new JToolBar();\r
+ // jToolBarFile.setFloatable(false);\r
+ // }\r
+ // return jToolBarFile;\r
+ // }\r
+ /**\r
+ * This method initializes jToolBarEdit \r
+ * \r
+ * @return javax.swing.JToolBar \r
+ */\r
+ // private JToolBar getJToolBarEdit() {\r
+ // if (jToolBarEdit == null) {\r
+ // jToolBarEdit = new JToolBar();\r
+ // jToolBarEdit.setFloatable(false);\r
+ // }\r
+ // return jToolBarEdit;\r
+ // }\r
+ /**\r
+ * This method initializes jMenuItemToolsInstallPackage \r
+ * \r
+ * @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemProjectInstallPackage() {\r
+ if (jMenuItemProjectInstallPackage == null) {\r
+ jMenuItemProjectInstallPackage = new JMenuItem();\r
+ jMenuItemProjectInstallPackage.setText("Install Distribution Package");\r
+ jMenuItemProjectInstallPackage.setMnemonic('I');\r
+ jMenuItemProjectInstallPackage.setEnabled(false);\r
+ jMenuItemProjectInstallPackage.addActionListener(this);\r
+ }\r
+ return jMenuItemProjectInstallPackage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jMenuItemToolsUpdatePackage \r
+ * \r
+ * @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemProjectUpdatePackage() {\r
+ if (jMenuItemProjectUpdatePackage == null) {\r
+ jMenuItemProjectUpdatePackage = new JMenuItem();\r
+ jMenuItemProjectUpdatePackage.setText("Update Disstribution Package");\r
+ jMenuItemProjectUpdatePackage.setMnemonic('U');\r
+ jMenuItemProjectUpdatePackage.setEnabled(false);\r
+ jMenuItemProjectUpdatePackage.addActionListener(this);\r
+ }\r
+ return jMenuItemProjectUpdatePackage;\r
+ }\r
+\r
+ /**\r
+ * This method initializes jMenuItemRemovePackage \r
+ * \r
+ * @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemProjectRemovePackage() {\r
+ if (jMenuItemProjectRemovePackage == null) {\r
+ jMenuItemProjectRemovePackage = new JMenuItem();\r
+ jMenuItemProjectRemovePackage.setText("Remove Distribution Package");\r
+ jMenuItemProjectRemovePackage.setMnemonic('R');\r
+ jMenuItemProjectRemovePackage.setEnabled(false);\r
+ jMenuItemProjectRemovePackage.addActionListener(this);\r
+ }\r
+ return jMenuItemProjectRemovePackage;\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 = new FrameworkWizardUI();\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
+ //\r
+ Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));\r
+ if (!Workspace.checkCurrentWorkspace()) {\r
+ JOptionPane.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",\r
+ JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);\r
+ this.dispose();\r
+ System.exit(0);\r
+ }\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.addComponentListener(this);\r
+ this.getCompontentsFromFrameworkDatabase();\r
+ this.setContentPane(getJContentPane());\r
+ this.setTitle(windowTitle + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+ this.setExitType(1);\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() == jMenuItemFileNew) {\r
+ this.fileNew();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileOpen) {\r
+ this.open();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileClose) {\r
+ this.close();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileCloseAll) {\r
+ this.closeAll();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileSave) {\r
+ this.save();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileSaveAs) {\r
+ this.saveAs();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileSaveAll) {\r
+ this.saveAll();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemFileExit) {\r
+ this.exit();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemProjectChangeWorkspace) {\r
+ changeWorkspace();\r
+ }\r
+\r
+ if (arg0.getSource() == jMenuItemToolsClone) {\r
+ cloneItem();\r
+ }\r
+\r
+ if (arg0.getSource() == 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
+ // Make root\r
+ dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, -1);\r
+\r
+ // Make Module Description\r
+ dmtnModuleDescription = new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode.MODULE, -1);\r
+\r
+ if (this.vModuleList.size() > 0) {\r
+ for (int index = 0; index < this.vModuleList.size(); index++) {\r
+ dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(),\r
+ IDefaultMutableTreeNode.MSA_HEADER, false,\r
+ this.vModuleList.elementAt(index)));\r
+ }\r
+ }\r
+\r
+ // Make Package Description\r
+ dmtnPackageDescription = new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode.PACKAGE, -1);\r
+ if (this.vPackageList.size() > 0) {\r
+ for (int index = 0; index < this.vPackageList.size(); index++) {\r
+ dmtnPackageDescription.add(new IDefaultMutableTreeNode(this.vPackageList.elementAt(index).getName(),\r
+ IDefaultMutableTreeNode.SPD_HEADER, false,\r
+ this.vPackageList.elementAt(index)));\r
+ }\r
+ }\r
+\r
+ // Make Platform Description\r
+ dmtnPlatformDescription = new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode.PLATFORM,\r
+ -1);\r
+ if (this.vPlatformList.size() > 0) {\r
+ for (int index = 0; index < this.vPlatformList.size(); index++) {\r
+ dmtnPlatformDescription.add(new IDefaultMutableTreeNode(this.vPlatformList.elementAt(index).getName(),\r
+ IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
+ false, this.vPlatformList.elementAt(index)));\r
+ }\r
+ }\r
+\r
+ dmtnRoot.add(dmtnModuleDescription);\r
+ dmtnRoot.add(dmtnPackageDescription);\r
+ dmtnRoot.add(dmtnPlatformDescription);\r
+ iTree = new ITree(dmtnRoot);\r
+ iTree.addMouseListener(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
+ if (arg0.getButton() == MouseEvent.BUTTON1) {\r
+ }\r
+ if (arg0.getButton() == MouseEvent.BUTTON3) {\r
+ }\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
+ Open Module\r
+\r
+ @param path input file path\r
+ \r
+ **/\r
+ private void openModule(String path) {\r
+ ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;\r
+ try {\r
+ msa = OpenFile.openMsaFile(path);\r
+ } catch (IOException e) {\r
+ Log.err("Open Module Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (XmlException e) {\r
+ Log.err("Open Module Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (Exception e) {\r
+ Log.err("Open Module Surface Area " + path, "Invalid file type");\r
+ return;\r
+ }\r
+ Identification id = new Identification(msa.getMsaHeader().getModuleName(), msa.getMsaHeader().getGuidValue(),\r
+ msa.getMsaHeader().getVersion(), path);\r
+ //\r
+ // Generate module id\r
+ //\r
+ PackageIdentification pid = wt.getPackageIdByModuleId(id);\r
+ if (pid != null) {\r
+ //\r
+ // To judge if the module existed in vModuleList\r
+ // If not, add it to vModuleList\r
+ //\r
+ boolean isFind = false;\r
+ for (int index = 0; index < vModuleList.size(); index++) {\r
+ if (vModuleList.elementAt(index).equals(id)) {\r
+ isFind = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isFind) {\r
+ vModuleList.addElement(new ModuleIdentification(id, pid));\r
+ //\r
+ // Add new MsaHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.MSA_HEADER, true,\r
+ vModuleList.lastElement());\r
+ iTree.addNode(dmtnModuleDescription, node);\r
+ }\r
+ } else {\r
+ //\r
+ // The module is not in existing packages\r
+ //\r
+ Log.err("The module hasn't been added to any package of current workspace!");\r
+ return;\r
+ }\r
+\r
+ // Make the node selected\r
+ //\r
+ iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
+ IDefaultMutableTreeNode.MSA_HEADER)));\r
+ //\r
+ // Update opening Module list information\r
+ //\r
+ if (!openingModuleList.existsModule(id)) {\r
+ //\r
+ // Insert sub node of module\r
+ //\r
+ insertModuleTreeNode(id);\r
+ iTree.getSelectNode().setOpening(true);\r
+\r
+ //\r
+ // Update opening module list\r
+ //\r
+ openingModuleList.insertToOpeningModuleList(id, msa);\r
+ openingModuleList.setTreePathById(id, iTree.getSelectionPath());\r
+ }\r
+ //\r
+ // Show msa header in editor panel\r
+ //\r
+ showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id));\r
+ this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);\r
+ }\r
+\r
+ /**\r
+ Open Package\r
+\r
+ @param path input file path\r
+ \r
+ **/\r
+ private void openPackage(String path) {\r
+ PackageSurfaceAreaDocument.PackageSurfaceArea spd = null;\r
+ try {\r
+ spd = OpenFile.openSpdFile(path);\r
+ } catch (IOException e) {\r
+ Log.err("Open Package Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (XmlException e) {\r
+ Log.err("Open Package Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (Exception e) {\r
+ Log.err("Open Package Surface Area " + path, "Invalid file type");\r
+ return;\r
+ }\r
+ Identification id = new Identification(spd.getSpdHeader().getPackageName(), spd.getSpdHeader().getGuidValue(),\r
+ spd.getSpdHeader().getVersion(), path);\r
+ //\r
+ // To judge if the package existed in vPackageList\r
+ // If not, add it to vPackageList\r
+ //\r
+ boolean isFind = false;\r
+ for (int index = 0; index < vPackageList.size(); index++) {\r
+ if (vPackageList.elementAt(index).equals(id)) {\r
+ isFind = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isFind) {\r
+ //\r
+ // The module is not in existing packages\r
+ //\r
+ Log.err("The package hasn't been added to 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.SPD_HEADER)));\r
+ //\r
+ // Update opening package list information\r
+ //\r
+ if (!openingPackageList.existsPackage(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
+ openingPackageList.insertToOpeningPackageList(id, spd);\r
+ openingPackageList.setTreePathById(id, iTree.getSelectionPath());\r
+ }\r
+ //\r
+ // Show spd header in editor panel\r
+ //\r
+ showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, openingPackageList.getOpeningPackageById(id));\r
+ this.currentOpeningPackageIndex = 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
+ PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd = null;\r
+ try {\r
+ fpd = OpenFile.openFpdFile(path);\r
+ } catch (IOException e) {\r
+ Log.err("Open Platform Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (XmlException e) {\r
+ Log.err("Open Platform Surface Area " + path, e.getMessage());\r
+ return;\r
+ } catch (Exception e) {\r
+ Log.err("Open Platform Surface Area " + path, "Invalid file type");\r
+ return;\r
+ }\r
+ Identification id = new Identification(fpd.getPlatformHeader().getPlatformName(), fpd.getPlatformHeader()\r
+ .getGuidValue(),\r
+ fpd.getPlatformHeader().getVersion(), path);\r
+ //\r
+ // To judge if the platform existed in vPlatformList\r
+ // If not, add it to vPlatformList\r
+ //\r
+ boolean isFind = false;\r
+ for (int index = 0; index < vPlatformList.size(); index++) {\r
+ if (vPlatformList.elementAt(index).equals(id)) {\r
+ isFind = true;\r
+ break;\r
+ }\r
+ }\r
+ if (!isFind) {\r
+ //\r
+ // The module is not in existing packages\r
+ //\r
+ Log.err("The platform hasn't been added to 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.FPD_PLATFORMHEADER)));\r
+ //\r
+ // Update opening package list information\r
+ //\r
+ if (!openingPlatformList.existsPlatform(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
+ openingPlatformList.insertToOpeningPlatformList(id, fpd);\r
+ openingPlatformList.setTreePathById(id, iTree.getSelectionPath());\r
+ }\r
+ //\r
+ // Show fpd header in editor panel\r
+ //\r
+ showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER, openingPlatformList.getOpeningPlatformById(id));\r
+ this.currentOpeningPlatformIndex = openingPlatformList.findIndexOfListById(id);\r
+ }\r
+\r
+ /**\r
+ Save module \r
+ \r
+ **/\r
+ private void saveModule(int index) {\r
+ OpeningModuleType omt = 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
+ openingModuleList.setNew(omt.getId(), false);\r
+ openingModuleList.setModuleSaved(omt.getId(), true);\r
+ } catch (Exception e) {\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 = 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
+ openingPackageList.setNew(opt.getId(), false);\r
+ openingPackageList.setPackageSaved(opt.getId(), true);\r
+ } catch (Exception e) {\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 = 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
+ openingPlatformList.setNew(opt.getId(), false);\r
+ openingPlatformList.setPlatformSaved(opt.getId(), true);\r
+ } catch (Exception e) {\r
+ Log.err("Save Package", e.getMessage());\r
+ }\r
+ }\r
+\r
+ public void componentHidden(ComponentEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
+ public void componentMoved(ComponentEvent arg0) {\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
+ public void componentResized(ComponentEvent arg0) {\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
+ public void componentShown(ComponentEvent arg0) {\r
+ // TODO Auto-generated method stub\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 getCompontentsFromFrameworkDatabase() {\r
+ this.vModuleList = wt.getAllModules();\r
+ this.vPackageList = wt.getAllPackages();\r
+ this.vPlatformList = wt.getAllPlatforms();\r
+ }\r
+\r
+ private void insertModuleTreeNode(Identification id) {\r
+ iTree.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode.MSA_MODULEDEFINITIONS,\r
+ true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",\r
+ IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Package Dependencies",\r
+ IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode.MSA_EXTERNS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode.MSA_PCDS, true, id));\r
+ }\r
+\r
+ private void insertPackageTreeNode(Identification id) {\r
+ iTree.addNode(new IDefaultMutableTreeNode("Package Definitions",\r
+ IDefaultMutableTreeNode.SPD_PACKAGEDEFINITIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Library Class Declarations",\r
+ IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Package Headers", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,\r
+ id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,\r
+ true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Protocol Declarations",\r
+ IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode.SPD_PPIDECLARATIONS,\r
+ true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,\r
+ true, id));\r
+ }\r
+\r
+ private void insertPlatformTreeNode(Identification id) {\r
+ iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode.FPD_FLASH, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,\r
+ true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",\r
+ IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id));\r
+ iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id));\r
+ }\r
+\r
+ /**\r
+ Operate when double click a tree node\r
+ \r
+ **/\r
+ private void doubleClickModuleTreeNode() {\r
+ Identification id = iTree.getSelectNode().getId();\r
+ int intCategory = iTree.getSelectCategory();\r
+ String path = null;\r
+ // \r
+ // If the node is not opened yet\r
+ // Insert top level elements first\r
+ //\r
+ //if (intCategory == IDefaultMutableTreeNode.MSA_HEADER || intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {\r
+ if (intCategory == IDefaultMutableTreeNode.MSA_HEADER) {\r
+\r
+ if (intCategory == IDefaultMutableTreeNode.MSA_HEADER) {\r
+ path = iTree.getSelectNode().getId().getPath();\r
+ }\r
+ if (intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {\r
+ path = iTree.getSelectNode().getId().getPath();\r
+ }\r
+ openModule(path);\r
+ return;\r
+ }\r
+ if (intCategory == IDefaultMutableTreeNode.SPD_HEADER) {\r
+ path = iTree.getSelectNode().getId().getPath();\r
+ openPackage(path);\r
+ return;\r
+ }\r
+ if (intCategory == IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+ path = iTree.getSelectNode().getId().getPath();\r
+ openPlatform(path);\r
+ return;\r
+ }\r
+ //\r
+ // Show editor panel\r
+ //\r
+ if (intCategory >= IDefaultMutableTreeNode.MSA_HEADER && intCategory < IDefaultMutableTreeNode.SPD_HEADER) {\r
+ showModuleElement(intCategory, openingModuleList.getOpeningModuleById(id));\r
+ this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);\r
+ }\r
+ if (intCategory >= IDefaultMutableTreeNode.SPD_HEADER\r
+ && intCategory < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+ showPackageElement(intCategory, openingPackageList.getOpeningPackageById(id));\r
+ this.currentOpeningPackageIndex = openingPackageList.findIndexOfListById(id);\r
+ }\r
+ if (intCategory >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+ showPlatformElement(intCategory, openingPlatformList.getOpeningPlatformById(id));\r
+ this.currentOpeningPlatformIndex = openingPlatformList.findIndexOfListById(id);\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
+ switch (elementType) {\r
+ case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:\r
+ FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd.getXmlFpd());\r
+ getJDesktopPanePlatform().add(frmFpdPlatformDefs, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.FPD_PLATFORMHEADER:\r
+ FpdHeader frmFpdHeader = new FpdHeader(fpd.getXmlFpd());\r
+ getJDesktopPanePlatform().add(frmFpdHeader, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.FPD_FLASH:\r
+ FpdFlash frmFpdFlash = new FpdFlash(fpd.getXmlFpd());\r
+ getJDesktopPanePlatform().add(frmFpdFlash, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES:\r
+ FpdFrameworkModules frmFpdFrameworkModules = new FpdFrameworkModules(fpd.getXmlFpd());\r
+ getJDesktopPanePlatform().add(frmFpdFrameworkModules, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS:\r
+ FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions = new FpdDynamicPcdBuildDefinitions(\r
+ fpd\r
+ .getXmlFpd());\r
+ getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.FPD_BUILDOPTIONS:\r
+ FpdBuildOptions frmFpdBuildOptions = new FpdBuildOptions(fpd.getXmlFpd());\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.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSpdHeader, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_PACKAGEDEFINITIONS:\r
+ SpdPackageDefinitions frmSpdPackageDefinitions = new SpdPackageDefinitions(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSpdPackageDefinitions, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:\r
+ SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSlcd, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_MSAFILES:\r
+ SpdMsaFiles frmSmf = new SpdMsaFiles(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSmf, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_PACKAGEHEADERS:\r
+ SpdPackageHeaders frmSph = new SpdPackageHeaders(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSph, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS:\r
+ SpdGuidDecls frmSgd = new SpdGuidDecls(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSgd, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS:\r
+ SpdProtocolDecls frmSprod = new SpdProtocolDecls(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSprod, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_PPIDECLARATIONS:\r
+ SpdPpiDecls frmSppid = new SpdPpiDecls(spd.getXmlSpd());\r
+ getJDesktopPanePackage().add(frmSppid, 1);\r
+ break;\r
+ case IDefaultMutableTreeNode.SPD_PCDDECLARATIONS:\r
+ SpdPcdDefs frmSpcdd = new SpdPcdDefs(spd.getXmlSpd());\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_MODULEDEFINITIONS:\r
+ ModuleDefinitions frmMd = new ModuleDefinitions(msa);\r
+ getJDesktopPaneModule().add(frmMd, 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
+ PackageSurfaceAreaDocument.PackageSurfaceArea psa = null;\r
+ if (this.openingPackageList.existsPackage(smb.getMid().getPackageId())) {\r
+ psa = openingPackageList.getPackageSurfaceAreaFromId(smb.getMid().getPackageId());\r
+ }\r
+ try {\r
+ wt.addModuleToPackage(smb.getMid(), psa);\r
+ } catch (IOException e) {\r
+ Log.err("Upddate MsaFiles of Package", e.getMessage());\r
+ e.printStackTrace();\r
+ return;\r
+ } catch (XmlException e) {\r
+ Log.err("Upddate MsaFiles of Package", e.getMessage());\r
+ e.printStackTrace();\r
+ return;\r
+ } catch (Exception e) {\r
+ Log.err("Upddate MsaFiles of Package", e.getMessage());\r
+ e.printStackTrace();\r
+ return;\r
+ }\r
+ this.openModule(smb.getMid().getPath());\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
+ try {\r
+ wt.addPackageToDatabase(smb.getPid());\r
+ } catch (Exception e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ vPackageList.addElement(smb.getPid());\r
+ //\r
+ // Add new SpdHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.SPD_HEADER, true,\r
+ vPackageList.lastElement());\r
+ iTree.addNode(dmtnPackageDescription, node);\r
+ this.openPackage(smb.getPid().getPath());\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
+ try {\r
+ wt.addPlatformToDatabase(smb.getFid());\r
+ } catch (Exception e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ vPlatformList.addElement(smb.getFid());\r
+ //\r
+ // Add new SpdHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPlatformList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
+ true, vPlatformList.lastElement());\r
+ iTree.addNode(dmtnPlatformDescription, node);\r
+ this.openPlatform(smb.getFid().getPath());\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);\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
+ switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
+ //\r
+ // Current is module\r
+ //\r
+ case 0:\r
+ if (this.currentOpeningModuleIndex > -1) {\r
+ if (!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
+ iTree.removeNodeChildrenByPath(openingModuleList.getTreePathByIndex(currentOpeningModuleIndex));\r
+ this.openingModuleList.removeFromOpeningModuleListByIndex(this.currentOpeningModuleIndex);\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 (!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
+ iTree.removeNodeChildrenByPath(openingPackageList.getTreePathByIndex(currentOpeningPackageIndex));\r
+ this.openingPackageList.removeFromOpeningPackageListByIndex(this.currentOpeningPackageIndex);\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 (!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
+ iTree.removeNodeChildrenByPath(openingPlatformList.getTreePathByIndex(currentOpeningPlatformIndex));\r
+ this.openingPlatformList.removeFromOpeningPlatformListByIndex(this.currentOpeningPlatformIndex);\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 (!openingModuleList.isSaved() || !openingPackageList.isSaved() || !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.cleanDesktopPane();\r
+ this.getCompontentsFromFrameworkDatabase();\r
+ openingModuleList.removeAllFromOpeningModuleList();\r
+ openingPackageList.removeAllFromOpeningPackageList();\r
+ openingPlatformList.removeAllFromOpeningPlatformList();\r
+ this.makeEmptyTree();\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 < openingModuleList.size(); index++) {\r
+ if (!openingModuleList.getModuleSaved(index)) {\r
+ saveModule(index);\r
+ }\r
+ }\r
+\r
+ //\r
+ // Save all packages\r
+ //\r
+ for (int index = 0; index < openingPackageList.size(); index++) {\r
+ if (!openingPackageList.getPackageSaved(index)) {\r
+ savePackage(index);\r
+ }\r
+ }\r
+\r
+ //\r
+ // Save all platforms\r
+ //\r
+ for (int index = 0; index < openingPlatformList.size(); index++) {\r
+ if (!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 (!openingModuleList.isSaved() || !openingPackageList.isSaved() || !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
+ 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
+ closeAll();\r
+ this.setTitle(windowTitle + "- [" + Workspace.getCurrentWorkspace() + "]");\r
+ }\r
+ sw.dispose();\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.err("Please select a target to clone!");\r
+ return;\r
+ }\r
+ int category = iTree.getSelectCategory();\r
+ Identification id = iTree.getSelectNode().getId();\r
+ if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE\r
+ || category == IDefaultMutableTreeNode.PLATFORM) {\r
+ Log.err("Please select a target to clone!");\r
+ return;\r
+ }\r
+ \r
+ if (category == IDefaultMutableTreeNode.WORKSPACE) {\r
+ mode = DataType.RETURN_TYPE_WORKSPACE;\r
+ id = null;\r
+ }\r
+ if (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER) {\r
+ mode = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;\r
+ }\r
+ if (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+ mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;\r
+ }\r
+ if (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
+ mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\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 Finished");\r
+ }\r
+ if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
+ Tools.showInformationMessage("Module Surface Area Clone Finished");\r
+ vModuleList.addElement(c.getMid());\r
+ //\r
+ // Add new MsaHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.MSA_HEADER, true,\r
+ vModuleList.lastElement());\r
+ iTree.addNode(dmtnModuleDescription, node);\r
+ }\r
+ if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
+ Tools.showInformationMessage("Package Surface Area Clone Finished");\r
+ vPackageList.addElement(c.getPid());\r
+ //\r
+ // Add new SpdHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.SPD_HEADER, true,\r
+ vPackageList.lastElement());\r
+ iTree.addNode(dmtnPackageDescription, node);\r
+ }\r
+ if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
+ Tools.showInformationMessage("Platform Surface Area Clone Finished");\r
+ vPlatformList.addElement(c.getFid());\r
+ //\r
+ // Add new SpdHeader node to the tree\r
+ //\r
+ IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPlatformList.lastElement().getName(),\r
+ IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
+ true, vPlatformList.lastElement());\r
+ iTree.addNode(dmtnPlatformDescription, node);\r
+ //this.openPlatform(c.getFid().getPath());\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(openingModuleList.isOpend() || openingPackageList.isOpend()\r
+ || openingPlatformList.isOpend());\r
+ jMenuItemFileCloseAll.setEnabled(openingModuleList.isOpend() || openingPackageList.isOpend()\r
+ || openingPlatformList.isOpend());\r
+\r
+ //\r
+ // Enable save/save all if some files are changed\r
+ //\r
+ jMenuItemFileSave.setEnabled(!openingModuleList.isSaved() || !openingPackageList.isSaved()\r
+ || !openingPlatformList.isSaved());\r
+ jMenuItemFileSaveAll.setEnabled(!openingModuleList.isSaved() || !openingPackageList.isSaved()\r
+ || !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 || category == IDefaultMutableTreeNode.PACKAGE\r
+ || category == IDefaultMutableTreeNode.PLATFORM) {\r
+ jMenuItemToolsClone.setEnabled(false);\r
+ } else {\r
+ jMenuItemToolsClone.setEnabled(true);\r
+ }\r
+ }\r
+ }\r
+ }\r
+}\r