]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
move the package definitions to header editor.
[mirror_edk2.git] / Tools / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / FrameworkWizardUI.java
index 71e50f38449df866caac5eb8aaf0203116332ad1..6041472c5fd77ce3d003239741e1b0801dd057af 100644 (file)
@@ -50,10 +50,10 @@ import org.tianocore.PlatformSurfaceAreaDocument;
 import org.tianocore.frameworkwizard.common.DataType;\r
 import org.tianocore.frameworkwizard.common.IFileFilter;\r
 import org.tianocore.frameworkwizard.common.Log;\r
+import org.tianocore.frameworkwizard.common.OpenFile;\r
 import org.tianocore.frameworkwizard.common.SaveFile;\r
 import org.tianocore.frameworkwizard.common.Tools;\r
 import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
-import org.tianocore.frameworkwizard.common.Identifications.OpenFile;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleList;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageList;\r
@@ -91,7 +91,6 @@ import org.tianocore.frameworkwizard.packaging.ui.SpdGuidDecls;
 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
@@ -108,8 +107,8 @@ import org.tianocore.frameworkwizard.workspace.WorkspaceTools;
 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
+ The class is used to show main GUI of FrameworkWizard\r
+ It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener\r
 \r
  **/\r
 public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener,\r
@@ -119,9 +118,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     ///\r
     private static final long serialVersionUID = -7103240960573031772L;\r
 \r
-    //\r
-    // To save information of all files\r
-    //\r
+    ///\r
+    /// Used 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
@@ -140,6 +139,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
 \r
     private int currentOpeningPlatformIndex = -1;\r
 \r
+    ///\r
+    /// Used to generate tree structure\r
+    ///\r
     private IDefaultMutableTreeNode dmtnRoot = null;\r
 \r
     private IDefaultMutableTreeNode dmtnModuleDescription = null;\r
@@ -148,6 +150,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
 \r
     private IDefaultMutableTreeNode dmtnPlatformDescription = null;\r
 \r
+    ///\r
+    /// Used for UI\r
+    ///\r
     private JPanel jContentPane = null;\r
 \r
     private JMenuBar jMenuBar = null;\r
@@ -292,16 +297,19 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
 \r
     private JMenuItem jMenuItemProjectRemoveFar = null;\r
 \r
-    //private JToolBar jToolBarFile = null;\r
-\r
-    //private JToolBar jToolBarEdit = null;\r
-\r
-    //private JToolBar jToolBarWindow = null;\r
+    private JMenuItem jMenuItemProjectCreateFar = null;\r
 \r
+    ///\r
+    /// A static definition for this class itself\r
+    ///\r
     private static FrameworkWizardUI fwui = null;\r
 \r
-    private JMenuItem jMenuItemProjectCreateFar = null;\r
-\r
+    /**\r
+     If the class hasn't an instnace, new one.\r
+     \r
+     @return FrameworkWizardUI The instance of this class\r
+     \r
+     **/\r
     public static FrameworkWizardUI getInstance() {\r
         if (fwui == null) {\r
             fwui = new FrameworkWizardUI();\r
@@ -351,7 +359,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JTabbedPane   \r
      \r
-     */\r
+     **/\r
     private JTabbedPane getJTabbedPaneEditor() {\r
         if (jTabbedPaneEditor == null) {\r
             jTabbedPaneEditor = new JTabbedPane();\r
@@ -363,7 +371,6 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                              .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
@@ -376,7 +383,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JTabbedPane   \r
      \r
-     */\r
+     **/\r
     private JTabbedPane getJTabbedPaneTree() {\r
         if (jTabbedPaneTree == null) {\r
             jTabbedPaneTree = new JTabbedPane();\r
@@ -400,29 +407,35 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      **/\r
     private JMenu getJMenuFile() {\r
         if (jMenuFile == null) {\r
+            //\r
+            // Set jMenuFile's attributes\r
+            //\r
             jMenuFile = new JMenu();\r
             jMenuFile.setText("File");\r
             jMenuFile.setMnemonic('F');\r
+            jMenuFile.addMenuListener(this);\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuFile.add(getJMenuItemFileNew());\r
             jMenuFile.add(getJMenuItemFileOpen());\r
             jMenuFile.add(getJMenuItemFileClose());\r
             jMenuFile.add(getJMenuItemFileCloseAll());\r
             jMenuFile.addSeparator();\r
+\r
             jMenuFile.add(getJMenuFileRecentFiles());\r
-            //jMenuFile.addSeparator();\r
             jMenuFile.add(getJMenuItemFileSave());\r
             jMenuFile.add(getJMenuItemFileSaveAs());\r
             jMenuFile.add(getJMenuItemFileSaveAll());\r
             jMenuFile.addSeparator();\r
+\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
+\r
             jMenuFile.add(getJMenuItemFileExit());\r
-            jMenuFile.addMenuListener(this);\r
         }\r
         return jMenuFile;\r
     }\r
@@ -469,22 +482,31 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      **/\r
     private JMenu getJMenuEdit() {\r
         if (jMenuEdit == null) {\r
+            //\r
+            // Set jMenuEdit's attributes\r
+            //\r
             jMenuEdit = new JMenu();\r
             jMenuEdit.setText("Edit");\r
             jMenuEdit.setMnemonic('E');\r
+            jMenuEdit.setVisible(false);\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuEdit.add(getJMenuItemEditUndo());\r
             jMenuEdit.add(getJMenuItemEditRedo());\r
             jMenuEdit.addSeparator();\r
+\r
             jMenuEdit.add(getJMenuItemEditCut());\r
             jMenuEdit.add(getJMenuItemEditCopy());\r
             jMenuEdit.add(getJMenuItemEditPaste());\r
             jMenuEdit.add(getJMenuItemEditDelete());\r
             jMenuEdit.addSeparator();\r
+\r
             jMenuEdit.add(getJMenuItemEditSelectAll());\r
             jMenuEdit.add(getJMenuItemEditFind());\r
             jMenuEdit.add(getJMenuItemEditFindNext());\r
             jMenuEdit.addSeparator();\r
-            jMenuEdit.setVisible(false);\r
         }\r
         return jMenuEdit;\r
     }\r
@@ -571,7 +593,6 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     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
@@ -607,12 +628,19 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      **/\r
     private JMenu getJMenuHelp() {\r
         if (jMenuHelp == null) {\r
+            //\r
+            // Set jMenuHelp's attributes\r
+            //\r
             jMenuHelp = new JMenu();\r
             jMenuHelp.setText("Help");\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuHelp.add(getJMenuItemHelpContents());\r
             jMenuHelp.add(getJMenuItemHelpIndex());\r
             jMenuHelp.add(getJMenuItemHelpSearch());\r
-            //jMenuHelp.addSeparator();\r
+\r
             jMenuHelp.add(getJMenuItemHelpAbout());\r
         }\r
         return jMenuHelp;\r
@@ -646,82 +674,13 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             jMenuItemEditDelete.setMnemonic('D');\r
             jMenuItemEditDelete.addActionListener(this);\r
             //\r
-            //Disabled when no module is open\r
+            //Disabled first 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
@@ -781,15 +740,22 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      **/\r
     private JMenu getJMenuTools() {\r
         if (jMenuTools == null) {\r
+            //\r
+            // Set jMenuTools's attributes\r
+            //\r
             jMenuTools = new JMenu();\r
             jMenuTools.setText("Tools");\r
             jMenuTools.setMnemonic('T');\r
+            jMenuTools.addMenuListener(this);\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
             jMenuTools.addSeparator();\r
+\r
             jMenuTools.add(getJMenuItemToolsClone());\r
-            //jMenuTools.addSeparator();\r
             jMenuTools.add(getJMenuItemToolsCodeScan());\r
-            jMenuTools.addMenuListener(this);\r
         }\r
         return jMenuTools;\r
     }\r
@@ -803,25 +769,36 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      **/\r
     private JMenu getJMenuWindow() {\r
         if (jMenuWindow == null) {\r
+            //\r
+            // Set jMenuWindow's attribute\r
+            //\r
             jMenuWindow = new JMenu();\r
             jMenuWindow.setText("Window");\r
             jMenuWindow.setMnemonic('W');\r
+            jMenuWindow.setVisible(false);\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuWindow.add(getJMenuItemWindowDisplaySide());\r
             jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());\r
             jMenuWindow.addSeparator();\r
+\r
             jMenuWindow.add(getJMenuItemWindowTabView());\r
             jMenuWindow.addSeparator();\r
+\r
             jMenuWindow.add(getJMenuItemWindowSource());\r
             jMenuWindow.add(getJMenuItemWindowXML());\r
             jMenuWindow.addSeparator();\r
+\r
             jMenuWindow.add(getJMenuItemWindowPreferences());\r
-            jMenuWindow.setVisible(false);\r
         }\r
         return jMenuWindow;\r
     }\r
 \r
     /**\r
-     This method initializes jPanelOperation \r
+     This method initializes jPanelOperation\r
+     Reserved\r
      \r
      @return javax.swing.JPanel jPanelOperation\r
      \r
@@ -839,7 +816,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     /**\r
-     This method initializes jButtonOk \r
+     This method initializes jButtonOk\r
+     Reserved\r
      \r
      @return javax.swing.JButton jButtonOk\r
      \r
@@ -856,7 +834,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     /**\r
-     This method initializes jButtonCancel \r
+     This method initializes jButtonCancel\r
+     Reserved\r
      \r
      @return javax.swing.JButton jButtonCancel\r
      \r
@@ -877,7 +856,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFileOpen \r
      \r
      @return javax.swing.JMenuItem jMenuItemFileOpen\r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFileOpen() {\r
         if (jMenuItemFileOpen == null) {\r
             jMenuItemFileOpen = new JMenuItem();\r
@@ -892,7 +872,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFileCloseAll     \r
      \r
      @return javax.swing.JMenuItem jMenuItemFileOpen\r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFileCloseAll() {\r
         if (jMenuItemFileCloseAll == null) {\r
             jMenuItemFileCloseAll = new JMenuItem();\r
@@ -907,7 +888,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFileSaveAll      \r
      \r
      @return javax.swing.JMenuItem jMenuItemFileSaveAll\r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFileSaveAll() {\r
         if (jMenuItemFileSaveAll == null) {\r
             jMenuItemFileSaveAll = new JMenuItem();\r
@@ -923,7 +905,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFilePageSetup    \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFilePageSetup() {\r
         if (jMenuItemFilePageSetup == null) {\r
             jMenuItemFilePageSetup = new JMenuItem();\r
@@ -940,7 +923,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFilePrint        \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFilePrint() {\r
         if (jMenuItemFilePrint == null) {\r
             jMenuItemFilePrint = new JMenuItem();\r
@@ -957,7 +941,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemFileImport       \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFileImport() {\r
         if (jMenuItemFileImport == null) {\r
             jMenuItemFileImport = new JMenuItem();\r
@@ -971,10 +956,11 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     /**\r
-     * This method initializes jMenuItemFileProperties \r
-     *         \r
-     * @return javax.swing.JMenuItem   \r
-     */\r
+     This method initializes jMenuItemFileProperties   \r
+     \r
+     @return javax.swing.JMenuItem     \r
+     \r
+     **/\r
     private JMenuItem getJMenuItemFileProperties() {\r
         if (jMenuItemFileProperties == null) {\r
             jMenuItemFileProperties = new JMenuItem();\r
@@ -988,10 +974,11 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     /**\r
-     * This method initializes jMenuFileRecentFiles    \r
-     *         \r
-     * @return javax.swing.JMenu       \r
-     */\r
+     This method initializes jMenuFileRecentFiles      \r
+     \r
+     @return javax.swing.JMenu \r
+     \r
+     **/\r
     private JMenu getJMenuFileRecentFiles() {\r
         if (jMenuFileRecentFiles == null) {\r
             jMenuFileRecentFiles = new JMenu();\r
@@ -1007,8 +994,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     /**\r
      This method initializes jMenuItemEditUndo \r
      \r
-     @return javax.swing.JMenuItem     \r
-     */\r
+     @return javax.swing.JMenuItem\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditUndo() {\r
         if (jMenuItemEditUndo == null) {\r
             jMenuItemEditUndo = new JMenuItem();\r
@@ -1024,7 +1012,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemEditRedo \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditRedo() {\r
         if (jMenuItemEditRedo == null) {\r
             jMenuItemEditRedo = new JMenuItem();\r
@@ -1040,7 +1029,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemEditCut  \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditCut() {\r
         if (jMenuItemEditCut == null) {\r
             jMenuItemEditCut = new JMenuItem();\r
@@ -1056,7 +1046,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemEditCopy \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditCopy() {\r
         if (jMenuItemEditCopy == null) {\r
             jMenuItemEditCopy = new JMenuItem();\r
@@ -1072,7 +1063,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemEditPaste        \r
      \r
      return javax.swing.JMenuItem      \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditPaste() {\r
         if (jMenuItemEditPaste == null) {\r
             jMenuItemEditPaste = new JMenuItem();\r
@@ -1088,7 +1080,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItem \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditSelectAll() {\r
         if (jMenuItemEditSelectAll == null) {\r
             jMenuItemEditSelectAll = new JMenuItem();\r
@@ -1104,7 +1097,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      This method initializes jMenuItemEditFind \r
      \r
      @return javax.swing.JMenuItem     \r
-     */\r
+     \r
+     **/\r
     private JMenuItem getJMenuItemEditFind() {\r
         if (jMenuItemEditFind == null) {\r
             jMenuItemEditFind = new JMenuItem();\r
@@ -1121,7 +1115,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemEditFindNext() {\r
         if (jMenuItemEditFindNext == null) {\r
             jMenuItemEditFindNext = new JMenuItem();\r
@@ -1138,17 +1132,24 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenu \r
      \r
-     */\r
+     **/\r
     private JMenu getJMenuView() {\r
         if (jMenuView == null) {\r
+            //\r
+            // Set jMenuView's attributes\r
+            //\r
             jMenuView = new JMenu();\r
             jMenuView.setText("View");\r
             jMenuView.setMnemonic('V');\r
+            jMenuView.setVisible(false);\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuView.add(getJMenuViewToolbars());\r
             jMenuView.add(getJMenuItemViewAdvanced());\r
             jMenuView.add(getJMenuItemViewStandard());\r
             jMenuView.add(getJMenuItemViewXML());\r
-            jMenuView.setVisible(false);\r
         }\r
         return jMenuView;\r
     }\r
@@ -1158,12 +1159,13 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenu \r
      \r
-     */\r
+     **/\r
     private JMenu getJMenuViewToolbars() {\r
         if (jMenuViewToolbars == null) {\r
             jMenuViewToolbars = new JMenu();\r
             jMenuViewToolbars.setText("Toolbars");\r
             jMenuViewToolbars.setMnemonic('T');\r
+\r
             jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsFile());\r
             jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsEdit());\r
             jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsWindow());\r
@@ -1176,7 +1178,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JCheckBoxMenuItem     \r
      \r
-     */\r
+     **/\r
     private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsFile() {\r
         if (jCheckBoxMenuItemViewToolbarsFile == null) {\r
             jCheckBoxMenuItemViewToolbarsFile = new JCheckBoxMenuItem();\r
@@ -1192,7 +1194,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JCheckBoxMenuItem     \r
      \r
-     */\r
+     **/\r
     private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsEdit() {\r
         if (jCheckBoxMenuItemViewToolbarsEdit == null) {\r
             jCheckBoxMenuItemViewToolbarsEdit = new JCheckBoxMenuItem();\r
@@ -1208,7 +1210,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JCheckBoxMenuItem     \r
      \r
-     */\r
+     **/\r
     private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsWindow() {\r
         if (jCheckBoxMenuItemViewToolbarsWindow == null) {\r
             jCheckBoxMenuItemViewToolbarsWindow = new JCheckBoxMenuItem();\r
@@ -1224,7 +1226,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemViewStandard() {\r
         if (jMenuItemViewStandard == null) {\r
             jMenuItemViewStandard = new JMenuItem();\r
@@ -1241,7 +1243,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemViewAdvanced() {\r
         if (jMenuItemViewAdvanced == null) {\r
             jMenuItemViewAdvanced = new JMenuItem();\r
@@ -1258,21 +1260,29 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenu \r
      \r
-     */\r
+     **/\r
     private JMenu getJMenuProject() {\r
         if (jMenuProject == null) {\r
+            //\r
+            // Set jMenuProject's attributes\r
+            //\r
             jMenuProject = new JMenu();\r
             jMenuProject.setText("Project");\r
             jMenuProject.setMnemonic('P');\r
+\r
+            //\r
+            // Add sub menu items\r
+            //\r
             jMenuProject.add(getJMenuItemProjectAdmin());\r
-            //jMenuProject.addSeparator();\r
+\r
             jMenuProject.add(getJMenuItemProjectChangeWorkspace());\r
             jMenuProject.addSeparator();\r
+\r
             jMenuProject.add(getJMenuItemProjectCreateFar());\r
             jMenuProject.add(getJMenuItemProjectInstallFar());\r
             jMenuProject.add(getJMenuItemProjectUpdateFar());\r
             jMenuProject.add(getJMenuItemProjectRemoveFar());\r
-            //jMenuProject.addSeparator();\r
+\r
             jMenuProject.add(getJMenuProjectBuildTargets());\r
         }\r
         return jMenuProject;\r
@@ -1283,7 +1293,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemProjectAdmin() {\r
         if (jMenuItemProjectAdmin == null) {\r
             jMenuItemProjectAdmin = new JMenuItem();\r
@@ -1301,7 +1311,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemProjectChangeWorkspace() {\r
         if (jMenuItemProjectChangeWorkspace == null) {\r
             jMenuItemProjectChangeWorkspace = new JMenuItem();\r
@@ -1318,15 +1328,16 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenu \r
      \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.setVisible(false);\r
+\r
             jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());\r
             jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());\r
-            jMenuProjectBuildTargets.setVisible(false);\r
         }\r
         return jMenuProjectBuildTargets;\r
     }\r
@@ -1336,7 +1347,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JCheckBoxMenuItem     \r
      \r
-     */\r
+     **/\r
     private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsDebug() {\r
         if (jCheckBoxMenuItemProjectBuildTargetsDebug == null) {\r
             jCheckBoxMenuItemProjectBuildTargetsDebug = new JCheckBoxMenuItem();\r
@@ -1351,7 +1362,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JCheckBoxMenuItem     \r
      \r
-     */\r
+     **/\r
     private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsRelease() {\r
         if (jCheckBoxMenuItemProjectBuildTargetsRelease == null) {\r
             jCheckBoxMenuItemProjectBuildTargetsRelease = new JCheckBoxMenuItem();\r
@@ -1366,7 +1377,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemToolsToolChainConfiguration() {\r
         if (jMenuItemToolsToolChainConfiguration == null) {\r
             jMenuItemToolsToolChainConfiguration = new JMenuItem();\r
@@ -1382,7 +1393,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemToolsClone() {\r
         if (jMenuItemToolsClone == null) {\r
             jMenuItemToolsClone = new JMenuItem();\r
@@ -1399,7 +1410,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemToolsCodeScan() {\r
         if (jMenuItemToolsCodeScan == null) {\r
             jMenuItemToolsCodeScan = new JMenuItem();\r
@@ -1417,7 +1428,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowDisplaySide() {\r
         if (jMenuItemWindowDisplaySide == null) {\r
             jMenuItemWindowDisplaySide = new JMenuItem();\r
@@ -1434,7 +1445,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowDisplayTopBottom() {\r
         if (jMenuItemWindowDisplayTopBottom == null) {\r
             jMenuItemWindowDisplayTopBottom = new JMenuItem();\r
@@ -1451,7 +1462,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemViewXML() {\r
         if (jMenuItemViewXML == null) {\r
             jMenuItemViewXML = new JMenuItem();\r
@@ -1468,7 +1479,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowTabView() {\r
         if (jMenuItemWindowTabView == null) {\r
             jMenuItemWindowTabView = new JMenuItem();\r
@@ -1485,7 +1496,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowSource() {\r
         if (jMenuItemWindowSource == null) {\r
             jMenuItemWindowSource = new JMenuItem();\r
@@ -1502,7 +1513,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowXML() {\r
         if (jMenuItemWindowXML == null) {\r
             jMenuItemWindowXML = new JMenuItem();\r
@@ -1519,7 +1530,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemWindowPreferences() {\r
         if (jMenuItemWindowPreferences == null) {\r
             jMenuItemWindowPreferences = new JMenuItem();\r
@@ -1536,7 +1547,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemHelpContents() {\r
         if (jMenuItemHelpContents == null) {\r
             jMenuItemHelpContents = new JMenuItem();\r
@@ -1554,7 +1565,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      @return javax.swing.JMenuItem     \r
      \r
-     */\r
+     **/\r
     private JMenuItem getJMenuItemHelpIndex() {\r
         if (jMenuItemHelpIndex == null) {\r
             jMenuItemHelpIndex = new JMenuItem();\r
@@ -1585,30 +1596,6 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         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
@@ -1791,50 +1778,19 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         }\r
 \r
         if (arg0.getSource() == jMenuItemProjectCreateFar) {\r
-            CreateStepOne cso = new CreateStepOne(this, true);\r
-            int result = cso.showDialog();\r
-            if (result == DataType.RETURN_TYPE_OK) {\r
-                String strReturn = "Create Far Done!";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                              JOptionPane.INFORMATION_MESSAGE);\r
-            }\r
-            cso.dispose();\r
+            createFar();\r
         }\r
 \r
         if (arg0.getSource() == jMenuItemProjectInstallFar) {\r
-            InstallStepOne iso = new InstallStepOne(this, true);\r
-            int result = iso.showDialog();\r
-            if (result == DataType.RETURN_TYPE_OK) {\r
-                String strReturn = "<html>Install Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                              JOptionPane.INFORMATION_MESSAGE);\r
-                this.closeAll();\r
-            }\r
-            iso.dispose();\r
+            installFar();\r
         }\r
 \r
         if (arg0.getSource() == jMenuItemProjectRemoveFar) {\r
-            DeleteStepOne dso = new DeleteStepOne(this, true);\r
-            int result = dso.showDialog();\r
-            if (result == DataType.RETURN_TYPE_OK) {\r
-                String strReturn = "<html>Delete Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                              JOptionPane.INFORMATION_MESSAGE);\r
-                this.closeAll();\r
-            }\r
-            dso.dispose();\r
+            removeFar();\r
         }\r
 \r
         if (arg0.getSource() == jMenuItemProjectUpdateFar) {\r
-            UpdateStepOne uso = new UpdateStepOne(this, true);\r
-            int result = uso.showDialog();\r
-            if (result == DataType.RETURN_TYPE_OK) {\r
-                String strReturn = "<html>Update Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
-                JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
-                                              JOptionPane.INFORMATION_MESSAGE);\r
-                this.closeAll();\r
-            }\r
-            uso.dispose();\r
+            updateFar();\r
         }\r
 \r
         if (arg0.getSource() == jMenuItemToolsClone) {\r
@@ -1859,10 +1815,14 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      **/\r
     private void makeEmptyTree() {\r
+        //\r
         // Make root\r
+        //\r
         dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, -1);\r
 \r
+        //\r
         // Make Module Description\r
+        //\r
         dmtnModuleDescription = new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode.MODULE, -1);\r
 \r
         //\r
@@ -1883,16 +1843,18 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",\r
                                                                       IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
                                                                       false, this.vPackageList.elementAt(index));\r
-\r
+                //\r
+                // And then add each module in its package\r
+                //\r
                 Vector<ModuleIdentification> vModule = wt.getAllModules(this.vPackageList.elementAt(index));\r
                 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
                     if (vModule.get(indexJ).isLibrary()) {\r
                         dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
-                                                                                 IDefaultMutableTreeNode.MSA_HEADER,\r
+                                                                                 IDefaultMutableTreeNode.MODULE,\r
                                                                                  false, vModule.get(indexJ)));\r
                     } else {\r
                         dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
-                                                                                IDefaultMutableTreeNode.MSA_HEADER,\r
+                                                                                IDefaultMutableTreeNode.MODULE,\r
                                                                                 false, vModule.get(indexJ)));\r
                     }\r
                 }\r
@@ -1907,35 +1869,34 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             }\r
         }\r
 \r
-        //                if (this.vModuleList.size() > 0) {\r
-        //                    for (int index = 0; index < this.vModuleList.size(); index++) {\r
-        //                        dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(),\r
-        //                                                                              IDefaultMutableTreeNode.MSA_HEADER, false,\r
-        //                                                                              this.vModuleList.elementAt(index)));\r
-        //                    }\r
-        //                }\r
-\r
+        //\r
         // Make Package Description\r
+        //\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
+                                                                       IDefaultMutableTreeNode.PACKAGE, false,\r
                                                                        this.vPackageList.elementAt(index)));\r
             }\r
         }\r
 \r
+        //\r
         // Make Platform Description\r
+        //\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
+                                                                        IDefaultMutableTreeNode.PLATFORM,\r
                                                                         false, this.vPlatformList.elementAt(index)));\r
             }\r
         }\r
 \r
+        //\r
+        // Add sub nodes to root node\r
+        //\r
         dmtnRoot.add(dmtnModuleDescription);\r
         dmtnRoot.add(dmtnPackageDescription);\r
         dmtnRoot.add(dmtnPlatformDescription);\r
@@ -2133,12 +2094,15 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         try {\r
             msa = OpenFile.openMsaFile(path);\r
         } catch (IOException e) {\r
+            Log.wrn("Open Module Surface Area " + path, e.getMessage());\r
             Log.err("Open Module Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (XmlException e) {\r
+            Log.wrn("Open Module Surface Area " + path, e.getMessage());\r
             Log.err("Open Module Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (Exception e) {\r
+            Log.wrn("Open Module Surface Area " + path, "Invalid file type");\r
             Log.err("Open Module Surface Area " + path, "Invalid file type");\r
             return;\r
         }\r
@@ -2177,7 +2141,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         // Make the node selected\r
         //\r
         iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
-                                                                     IDefaultMutableTreeNode.MSA_HEADER)));\r
+                                                                     IDefaultMutableTreeNode.MODULE)));\r
         //\r
         // Update opening Module list information\r
         //\r
@@ -2195,8 +2159,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             openingModuleList.setTreePathById(id, iTree.getSelectionPath());\r
         }\r
         //\r
-        // Show msa header in editor panel\r
+        // Select msa header node and show it in editor panel\r
         //\r
+        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
+                                                                     IDefaultMutableTreeNode.MSA_HEADER)));\r
         showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id));\r
         this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);\r
     }\r
@@ -2212,12 +2178,15 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         try {\r
             msa = OpenFile.openMsaFile(path);\r
         } catch (IOException e) {\r
+            Log.wrn("Open Module Surface Area " + path, e.getMessage());\r
             Log.err("Open Module Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (XmlException e) {\r
+            Log.wrn("Open Module Surface Area " + path, e.getMessage());\r
             Log.err("Open Module Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (Exception e) {\r
+            Log.wrn("Open Module Surface Area " + path, "Invalid file type");\r
             Log.err("Open Module Surface Area " + path, "Invalid file type");\r
             return;\r
         }\r
@@ -2248,7 +2217,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             //\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
+            Log.wrn("Open Module", "The module hasn't been added to any package of current workspace!");\r
             return;\r
         }\r
 \r
@@ -2256,7 +2225,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         // Make the node selected\r
         //\r
         iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
-                                                                     IDefaultMutableTreeNode.MSA_HEADER)));\r
+                                                                     IDefaultMutableTreeNode.MODULE)));\r
         //\r
         // Update opening Module list information\r
         //\r
@@ -2274,8 +2243,10 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             openingModuleList.setTreePathById(id, iTree.getSelectionPath());\r
         }\r
         //\r
-        // Show msa header in editor panel\r
+        // Select msa header node and show it in editor panel\r
         //\r
+        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,\r
+                                                                     IDefaultMutableTreeNode.MSA_HEADER)));\r
         showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id));\r
         this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);\r
     }\r
@@ -2291,12 +2262,15 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         try {\r
             spd = OpenFile.openSpdFile(path);\r
         } catch (IOException e) {\r
+            Log.wrn("Open Package Surface Area " + path, e.getMessage());\r
             Log.err("Open Package Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (XmlException e) {\r
+            Log.wrn("Open Package Surface Area " + path, e.getMessage());\r
             Log.err("Open Package Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (Exception e) {\r
+            Log.wrn("Open Package Surface Area " + path, "Invalid file type");\r
             Log.err("Open Package Surface Area " + path, "Invalid file type");\r
             return;\r
         }\r
@@ -2317,7 +2291,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             //\r
             // The module is not in existing packages\r
             //\r
-            Log.err("The package hasn't been added to current workspace!");\r
+            Log.wrn("Open Package", "The package hasn't been added to current workspace!");\r
             return;\r
         }\r
 \r
@@ -2325,7 +2299,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         // Make the node selected\r
         //\r
         iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
-                                                                     IDefaultMutableTreeNode.SPD_HEADER)));\r
+                                                                     IDefaultMutableTreeNode.PACKAGE)));\r
         //\r
         // Update opening package list information\r
         //\r
@@ -2345,6 +2319,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         //\r
         // Show spd header in editor panel\r
         //\r
+        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
+                                                                     IDefaultMutableTreeNode.SPD_HEADER)));\r
         showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, openingPackageList.getOpeningPackageById(id));\r
         this.currentOpeningPackageIndex = openingPackageList.findIndexOfListById(id);\r
     }\r
@@ -2360,12 +2336,15 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         try {\r
             fpd = OpenFile.openFpdFile(path);\r
         } catch (IOException e) {\r
+            Log.wrn("Open Platform Surface Area " + path, e.getMessage());\r
             Log.err("Open Platform Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (XmlException e) {\r
+            Log.wrn("Open Platform Surface Area " + path, e.getMessage());\r
             Log.err("Open Platform Surface Area " + path, e.getMessage());\r
             return;\r
         } catch (Exception e) {\r
+            Log.wrn("Open Platform Surface Area " + path, "Invalid file type");\r
             Log.err("Open Platform Surface Area " + path, "Invalid file type");\r
             return;\r
         }\r
@@ -2387,7 +2366,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             //\r
             // The module is not in existing packages\r
             //\r
-            Log.err("The platform hasn't been added to current workspace!");\r
+            Log.wrn("Open Platform", "The platform hasn't been added to current workspace!");\r
             return;\r
         }\r
 \r
@@ -2395,7 +2374,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         // Make the node selected\r
         //\r
         iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
-                                                                     IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));\r
+                                                                     IDefaultMutableTreeNode.PLATFORM)));\r
         //\r
         // Update opening package list information\r
         //\r
@@ -2415,6 +2394,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         //\r
         // Show fpd header in editor panel\r
         //\r
+        iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
+                                                                     IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));\r
         showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER, openingPlatformList.getOpeningPlatformById(id));\r
         this.currentOpeningPlatformIndex = openingPlatformList.findIndexOfListById(id);\r
     }\r
@@ -2435,6 +2416,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             openingModuleList.setNew(omt.getId(), false);\r
             openingModuleList.setModuleSaved(omt.getId(), true);\r
         } catch (Exception e) {\r
+            Log.wrn("Save Module", e.getMessage());\r
             Log.err("Save Module", e.getMessage());\r
         }\r
     }\r
@@ -2455,6 +2437,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             openingPackageList.setNew(opt.getId(), false);\r
             openingPackageList.setPackageSaved(opt.getId(), true);\r
         } catch (Exception e) {\r
+            Log.wrn("Save Package", e.getMessage());\r
             Log.err("Save Package", e.getMessage());\r
         }\r
     }\r
@@ -2475,6 +2458,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             openingPlatformList.setNew(opt.getId(), false);\r
             openingPlatformList.setPlatformSaved(opt.getId(), true);\r
         } catch (Exception e) {\r
+            Log.wrn("Save Package", e.getMessage());\r
             Log.err("Save Package", e.getMessage());\r
         }\r
     }\r
@@ -2529,6 +2513,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     private void insertModuleTreeNode(Identification id) {\r
+        iTree.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode.MSA_HEADER, true, id));\r
         iTree.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode.MSA_MODULEDEFINITIONS,\r
                                                   true, id));\r
         iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",\r
@@ -2551,12 +2536,13 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     private void insertPackageTreeNode(Identification id) {\r
+        iTree.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode.SPD_HEADER, true, 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
+        iTree.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,\r
                                                   id));\r
         iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,\r
                                                   true, id));\r
@@ -2569,6 +2555,8 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
     }\r
 \r
     private void insertPlatformTreeNode(Identification id) {\r
+        iTree.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode.FPD_PLATFORMHEADER, true,\r
+                                                  id));\r
         iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",\r
                                                   IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));\r
         iTree.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode.FPD_FLASH, true, id));\r
@@ -2584,50 +2572,63 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
      \r
      **/\r
     private void doubleClickModuleTreeNode() {\r
-        Identification id = iTree.getSelectNode().getId();\r
-        int intCategory = iTree.getSelectCategory();\r
+        Identification id = null;\r
+        int intCategory = -1;\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
+        boolean isOpen = false;\r
+        try {\r
+            id = iTree.getSelectNode().getId();\r
+            intCategory = iTree.getSelectCategory();\r
+            isOpen = iTree.getSelectNode().isOpening();\r
+            \r
+            if (!isOpen) {\r
+                //              \r
+                // If the node is not opened yet\r
+                // Insert top level elements first\r
+                //\r
+                if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
 \r
-            if (intCategory == IDefaultMutableTreeNode.MSA_HEADER) {\r
-                path = iTree.getSelectNode().getId().getPath();\r
+                    if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
+                        path = iTree.getSelectNode().getId().getPath();\r
+                    }\r
+                    if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
+                        path = iTree.getSelectNode().getId().getPath();\r
+                    }\r
+                    openModule(path);\r
+                    return;\r
+                }\r
+                if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
+                    path = iTree.getSelectNode().getId().getPath();\r
+                    openPackage(path);\r
+                    return;\r
+                }\r
+                if (intCategory == IDefaultMutableTreeNode.PLATFORM) {\r
+                    path = iTree.getSelectNode().getId().getPath();\r
+                    openPlatform(path);\r
+                    return;\r
+                }\r
             }\r
-            if (intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {\r
-                path = iTree.getSelectNode().getId().getPath();\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
-            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
+            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
+        } catch (RuntimeException e) {\r
+            Log.log("double click category: " + intCategory);\r
+            Log.log("double click id path: " + id);\r
+            Log.log("double click exception: " + e.getMessage());\r
         }\r
     }\r
 \r
@@ -2686,10 +2687,6 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             SpdHeader frmSpdHeader = new SpdHeader(spd);\r
             getJDesktopPanePackage().add(frmSpdHeader, 1);\r
             break;\r
-        case IDefaultMutableTreeNode.SPD_PACKAGEDEFINITIONS:\r
-            SpdPackageDefinitions frmSpdPackageDefinitions = new SpdPackageDefinitions(spd);\r
-            getJDesktopPanePackage().add(frmSpdPackageDefinitions, 1);\r
-            break;\r
         case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:\r
             SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd);\r
             getJDesktopPanePackage().add(frmSlcd, 1);\r
@@ -2843,16 +2840,16 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                 try {\r
                     wt.addModuleToPackage(smb.getMid(), psa);\r
                 } catch (IOException e) {\r
+                    Log.wrn("Upddate MsaFiles of Package", e.getMessage());\r
                     Log.err("Upddate MsaFiles of Package", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 } catch (XmlException e) {\r
+                    Log.wrn("Upddate MsaFiles of Package", e.getMessage());\r
                     Log.err("Upddate MsaFiles of Package", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 } catch (Exception e) {\r
+                    Log.wrn("Upddate MsaFiles of Package", e.getMessage());\r
                     Log.err("Upddate MsaFiles of Package", e.getMessage());\r
-                    e.printStackTrace();\r
                     return;\r
                 }\r
                 this.openModule(smb.getMid().getPath(), smb.getMid());\r
@@ -2872,8 +2869,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                 try {\r
                     wt.addPackageToDatabase(smb.getPid());\r
                 } catch (Exception e) {\r
-                    // TODO Auto-generated catch block\r
-                    e.printStackTrace();\r
+                    Log.err("addPackageToDatabase", e.getMessage());\r
                 }\r
                 vPackageList.addElement(smb.getPid());\r
 \r
@@ -2910,8 +2906,7 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
                 try {\r
                     wt.addPlatformToDatabase(smb.getFid());\r
                 } catch (Exception e) {\r
-                    // TODO Auto-generated catch block\r
-                    e.printStackTrace();\r
+                    Log.err("addPlatformToDatabase", e.getMessage());\r
                 }\r
                 vPlatformList.addElement(smb.getFid());\r
                 //\r
@@ -3047,7 +3042,9 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
             this.saveAll();\r
         }\r
         if (result == JOptionPane.NO_OPTION) {\r
+            //\r
             // Do nothing\r
+            //\r
         }\r
         if (result == JOptionPane.CANCEL_OPTION) {\r
             return;\r
@@ -3159,6 +3156,69 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         sw.dispose();\r
     }\r
 \r
+    /**\r
+     To create a Far file from current workspace\r
+     \r
+     **/\r
+    private void createFar() {\r
+        CreateStepOne cso = new CreateStepOne(this, true);\r
+        int result = cso.showDialog();\r
+        if (result == DataType.RETURN_TYPE_OK) {\r
+            String strReturn = "Create Far Done!";\r
+            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                          JOptionPane.INFORMATION_MESSAGE);\r
+        }\r
+        cso.dispose();\r
+    }\r
+\r
+    /**\r
+     To install a Far file to current workspace\r
+     \r
+     **/\r
+    private void installFar() {\r
+        InstallStepOne iso = new InstallStepOne(this, true);\r
+        int result = iso.showDialog();\r
+        if (result == DataType.RETURN_TYPE_OK) {\r
+            String strReturn = "<html>Install Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
+            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                          JOptionPane.INFORMATION_MESSAGE);\r
+            this.closeAll();\r
+        }\r
+        iso.dispose();\r
+    }\r
+\r
+    /**\r
+     To remove a Far's items from current workspace\r
+     \r
+     **/\r
+    private void removeFar() {\r
+        DeleteStepOne dso = new DeleteStepOne(this, true);\r
+        int result = dso.showDialog();\r
+        if (result == DataType.RETURN_TYPE_OK) {\r
+            String strReturn = "<html>Delete Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
+            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                          JOptionPane.INFORMATION_MESSAGE);\r
+            this.closeAll();\r
+        }\r
+        dso.dispose();\r
+    }\r
+\r
+    /**\r
+     To update an existing Far file\r
+     \r
+     **/\r
+    private void updateFar() {\r
+        UpdateStepOne uso = new UpdateStepOne(this, true);\r
+        int result = uso.showDialog();\r
+        if (result == DataType.RETURN_TYPE_OK) {\r
+            String strReturn = "<html>Update Far Done! <br>The WORKSPACE will be refreshed!</html>";\r
+            JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
+                                          JOptionPane.INFORMATION_MESSAGE);\r
+            this.closeAll();\r
+        }\r
+        uso.dispose();\r
+    }\r
+\r
     /**\r
      Show Tool Chain Configuration Dialog to setup Tool Chain\r
      \r
@@ -3179,14 +3239,14 @@ public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSele
         // 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
+            Log.wrn("Clone", "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
+            Log.wrn("Clone", "Please select a target to clone!");\r
             return;\r
         }\r
 \r