]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
1. Fix EDKT433 help context triggered by mouse movement is not displayed properly
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / FrameworkWizardUI.java
index 0b0493aeed41a63eefc765d9e726582364d70558..d57c777f1d6049a581ac09bc217d144178060d80 100644 (file)
@@ -44,6 +44,7 @@ import javax.swing.JPanel;
 import javax.swing.JScrollPane;\r
 import javax.swing.JSplitPane;\r
 import javax.swing.JTabbedPane;\r
+import javax.swing.ToolTipManager;\r
 import javax.swing.event.MenuEvent;\r
 import javax.swing.event.MenuListener;\r
 import javax.swing.event.TreeSelectionEvent;\r
@@ -73,6 +74,7 @@ import org.tianocore.frameworkwizard.far.installui.InstallStepOne;
 import org.tianocore.frameworkwizard.far.updateui.UpdateStepOne;\r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;\r
+import org.tianocore.frameworkwizard.module.ui.ModuleBuildOptions;\r
 import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;\r
 import org.tianocore.frameworkwizard.module.ui.ModuleEvents;\r
 import org.tianocore.frameworkwizard.module.ui.ModuleExterns;\r
@@ -120,6 +122,12 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     /// Define class Serial Version UID\r
     ///\r
     private static final long serialVersionUID = -7103240960573031772L;\r
+    \r
+    //\r
+    // Set ToolTipText Show Time\r
+    //\r
+    static { ToolTipManager.sharedInstance().setDismissDelay(18000);} \r
+\r
 \r
     ///\r
     /// Used to record current operation target\r
@@ -683,7 +691,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemHelpAbout() {\r
         if (jMenuItemHelpAbout == null) {\r
             jMenuItemHelpAbout = new JMenuItem();\r
-            jMenuItemHelpAbout.setText("About...");\r
+            jMenuItemHelpAbout.setText("About");\r
             jMenuItemHelpAbout.setMnemonic('A');\r
             jMenuItemHelpAbout.addActionListener(this);\r
         }\r
@@ -1358,7 +1366,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemToolsBuildPreferences() {\r
         if (jMenuItemToolsBuildPreferences == null) {\r
             jMenuItemToolsBuildPreferences = new JMenuItem();\r
-            jMenuItemToolsBuildPreferences.setText("Build Preferences");\r
+            jMenuItemToolsBuildPreferences.setText("Build Preferences...");\r
             jMenuItemToolsBuildPreferences.setMnemonic('P');\r
             jMenuItemToolsBuildPreferences.setEnabled(true);\r
             jMenuItemToolsBuildPreferences.addActionListener(this);\r
@@ -1598,7 +1606,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemProjectInstallFar() {\r
         if (jMenuItemProjectInstallFar == null) {\r
             jMenuItemProjectInstallFar = new JMenuItem();\r
-            jMenuItemProjectInstallFar.setText("Install FAR");\r
+            jMenuItemProjectInstallFar.setText("Install FAR...");\r
             jMenuItemProjectInstallFar.setMnemonic('I');\r
             jMenuItemProjectInstallFar.setEnabled(true);\r
             jMenuItemProjectInstallFar.addActionListener(this);\r
@@ -1614,7 +1622,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemProjectUpdateFar() {\r
         if (jMenuItemProjectUpdateFar == null) {\r
             jMenuItemProjectUpdateFar = new JMenuItem();\r
-            jMenuItemProjectUpdateFar.setText("Update FAR");\r
+            jMenuItemProjectUpdateFar.setText("Update FAR...");\r
             jMenuItemProjectUpdateFar.setMnemonic('U');\r
             jMenuItemProjectUpdateFar.setEnabled(true);\r
             jMenuItemProjectUpdateFar.addActionListener(this);\r
@@ -1631,7 +1639,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemProjectRemoveFar() {\r
         if (jMenuItemProjectRemoveFar == null) {\r
             jMenuItemProjectRemoveFar = new JMenuItem();\r
-            jMenuItemProjectRemoveFar.setText("Remove FAR");\r
+            jMenuItemProjectRemoveFar.setText("Remove FAR...");\r
             jMenuItemProjectRemoveFar.setMnemonic('R');\r
             jMenuItemProjectRemoveFar.setEnabled(true);\r
             jMenuItemProjectRemoveFar.addActionListener(this);\r
@@ -1647,7 +1655,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemProjectCreateFar() {\r
         if (jMenuItemProjectCreateFar == null) {\r
             jMenuItemProjectCreateFar = new JMenuItem();\r
-            jMenuItemProjectCreateFar.setText("Create FAR");\r
+            jMenuItemProjectCreateFar.setText("Create FAR...");\r
             jMenuItemProjectCreateFar.setMnemonic('C');\r
             jMenuItemProjectCreateFar.addActionListener(this);\r
         }\r
@@ -1774,7 +1782,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
     private JMenuItem getJMenuItemToolsGenerateGuidsXref() {\r
         if (jMenuItemToolsGenerateGuidsXref == null) {\r
             jMenuItemToolsGenerateGuidsXref = new JMenuItem();\r
-            jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref");\r
+            jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref...");\r
             jMenuItemToolsGenerateGuidsXref.setMnemonic('G');\r
             jMenuItemToolsGenerateGuidsXref.addActionListener(this);\r
         }\r
@@ -1819,7 +1827,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         //\r
         SplashScreen ss = new SplashScreen();\r
         ss.setVisible(true);\r
-        \r
+\r
         //\r
         // Init Global Data\r
         //\r
@@ -1829,7 +1837,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         // Close splash screen\r
         //\r
         ss.dispose();\r
-\r
+                \r
         //\r
         // Init the frame\r
         //\r
@@ -1887,6 +1895,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
 \r
         if (arg0.getSource() == this.jMenuItemFileCloseAll) {\r
             this.closeAll();\r
+            this.refresh();\r
             this.makeEmptyTree();\r
         }\r
 \r
@@ -1903,9 +1912,10 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         }\r
 \r
         if (arg0.getSource() == this.jMenuItemFileRefresh) {\r
-            this.closeAll();\r
-            this.refresh();\r
-            this.makeEmptyTree();\r
+            if (this.closeAll() == 0) {\r
+                this.refresh();\r
+                this.makeEmptyTree();\r
+            }\r
         }\r
 \r
         if (arg0.getSource() == this.jMenuItemFileExit) {\r
@@ -2533,6 +2543,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
         iTree.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode.MSA_EXTERNS, true, id,\r
                                                   belongNode));\r
         iTree.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode.MSA_PCDS, true, id, belongNode));\r
+        iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.MSA_BUILDOPTIONS, true, id, belongNode));\r
     }\r
 \r
     private void insertPackageTreeNode(Identification id) {\r
@@ -2880,6 +2891,10 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             ModulePCDs frmPcd = new ModulePCDs(msa);\r
             getJDesktopPaneModule().add(frmPcd, 1);\r
             break;\r
+        case IDefaultMutableTreeNode.MSA_BUILDOPTIONS:\r
+            ModuleBuildOptions frmMbo = new ModuleBuildOptions(msa);\r
+            getJDesktopPaneModule().add(frmMbo, 1);\r
+            break;\r
         }\r
         this.jTabbedPaneEditor.setSelectedIndex(0);\r
         resizeDesktopPanel();\r
@@ -3085,7 +3100,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                 if (!GlobalData.openingModuleList.getModuleSaved(currentOpeningModuleIndex)) {\r
                     int result = showSaveDialog();\r
                     if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
+                        this.save();\r
                     }\r
                     if (result == JOptionPane.NO_OPTION) {\r
                         // Do nothing\r
@@ -3107,7 +3122,10 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     iTree.removeNodeChildrenByPath(item);\r
                 }\r
 \r
+                GlobalData.openingModuleList.reload(this.currentOpeningModuleIndex);\r
                 GlobalData.openingModuleList.setModuleOpen(this.currentOpeningModuleIndex, false);\r
+                GlobalData.openingModuleList.setModuleSaved(this.currentOpeningModuleIndex, true);\r
+                \r
                 this.cleanDesktopPaneModule();\r
                 this.currentOpeningModuleIndex = -1;\r
             }\r
@@ -3120,7 +3138,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                 if (!GlobalData.openingPackageList.getPackageSaved(currentOpeningPackageIndex)) {\r
                     int result = showSaveDialog();\r
                     if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
+                        this.save();\r
                     }\r
                     if (result == JOptionPane.NO_OPTION) {\r
                         // Do nothing\r
@@ -3142,7 +3160,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     iTree.removeNodeChildrenByPath(item);\r
                 }\r
 \r
+                GlobalData.openingPackageList.reload(this.currentOpeningPackageIndex);\r
                 GlobalData.openingPackageList.setPackageOpen(this.currentOpeningPackageIndex, false);\r
+                GlobalData.openingPackageList.setPackageSaved(this.currentOpeningPackageIndex, true);\r
                 this.cleanDesktopPanePackage();\r
                 this.currentOpeningPackageIndex = -1;\r
             }\r
@@ -3155,7 +3175,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                 if (!GlobalData.openingPlatformList.getPlatformSaved(currentOpeningPlatformIndex)) {\r
                     int result = showSaveDialog();\r
                     if (result == JOptionPane.YES_OPTION) {\r
-                        this.saveAll();\r
+                        this.save();\r
                     }\r
                     if (result == JOptionPane.NO_OPTION) {\r
                         // Do nothing\r
@@ -3177,7 +3197,9 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
                     iTree.removeNodeChildrenByPath(item);\r
                 }\r
 \r
+                GlobalData.openingPlatformList.reload(this.currentOpeningPlatformIndex);\r
                 GlobalData.openingPlatformList.setPlatformOpen(this.currentOpeningPlatformIndex, false);\r
+                GlobalData.openingPlatformList.setPlatformSaved(this.currentOpeningPlatformIndex, true);\r
                 this.cleanDesktopPanePlatform();\r
                 this.currentOpeningPlatformIndex = -1;\r
             }\r
@@ -3189,8 +3211,8 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
      Close all opening files and clean all showing internal frame\r
      \r
      **/\r
-    private void closeAll() {\r
-        int result = -1;\r
+    private int closeAll() {\r
+        int result = JOptionPane.NO_OPTION;\r
         if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
             || !GlobalData.openingPlatformList.isSaved()) {\r
             result = showSaveDialog();\r
@@ -3203,13 +3225,15 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             // Do nothing\r
             //\r
         }\r
-        if (result == JOptionPane.CANCEL_OPTION) {\r
-            return;\r
+        if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {\r
+            return -1;\r
         }\r
         this.cleanDesktopPane();\r
         GlobalData.openingModuleList.closeAll();\r
         GlobalData.openingPackageList.closeAll();\r
         GlobalData.openingPlatformList.closeAll();\r
+\r
+        return 0;\r
     }\r
 \r
     /**\r
@@ -3282,18 +3306,16 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
      \r
      **/\r
     private void exit() {\r
-        int result = -1;\r
+        int result = JOptionPane.NO_OPTION;\r
         if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
             || !GlobalData.openingPlatformList.isSaved()) {\r
             result = showSaveDialog();\r
         }\r
         if (result == JOptionPane.YES_OPTION) {\r
             this.saveAll();\r
-        }\r
-        if (result == JOptionPane.NO_OPTION) {\r
+        } else if (result == JOptionPane.NO_OPTION) {\r
             // Do nothing\r
-        }\r
-        if (result == JOptionPane.CANCEL_OPTION) {\r
+        } else if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {\r
             return;\r
         }\r
         this.dispose();\r
@@ -3374,6 +3396,7 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             // Refrash the tree\r
             //\r
             this.refresh();\r
+            this.makeEmptyTree();\r
         }\r
         sw.dispose();\r
     }\r
@@ -3555,9 +3578,32 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             //\r
             // Enable close/close all if some files are opened\r
             //\r
-            jMenuItemFileClose.setEnabled(GlobalData.openingModuleList.isOpen()\r
-                                          || GlobalData.openingPackageList.isOpen()\r
-                                          || GlobalData.openingPlatformList.isOpen());\r
+            switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
+            case 0:\r
+                jMenuItemFileClose\r
+                                  .setEnabled(GlobalData.openingModuleList\r
+                                                                          .getModuleOpen(this.currentOpeningModuleIndex));\r
+                jMenuItemFileSave\r
+                                 .setEnabled(!GlobalData.openingModuleList\r
+                                                                          .getModuleSaved(this.currentOpeningModuleIndex));\r
+                break;\r
+            case 1:\r
+                jMenuItemFileClose\r
+                                  .setEnabled(GlobalData.openingPackageList\r
+                                                                           .getPackageOpen(this.currentOpeningPackageIndex));\r
+                jMenuItemFileSave\r
+                                 .setEnabled(!GlobalData.openingPackageList\r
+                                                                           .getPackageSaved(this.currentOpeningPackageIndex));\r
+                break;\r
+            case 2:\r
+                jMenuItemFileClose\r
+                                  .setEnabled(GlobalData.openingPlatformList\r
+                                                                            .getPlatformOpen(this.currentOpeningPlatformIndex));\r
+                jMenuItemFileSave\r
+                                 .setEnabled(!GlobalData.openingPlatformList\r
+                                                                            .getPlatformSaved(this.currentOpeningPlatformIndex));\r
+                break;\r
+            }\r
             jMenuItemFileCloseAll.setEnabled(GlobalData.openingModuleList.isOpen()\r
                                              || GlobalData.openingPackageList.isOpen()\r
                                              || GlobalData.openingPlatformList.isOpen());\r
@@ -3565,9 +3611,6 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             //\r
             // Enable save/save all if some files are changed\r
             //\r
-            jMenuItemFileSave.setEnabled(!GlobalData.openingModuleList.isSaved()\r
-                                         || !GlobalData.openingPackageList.isSaved()\r
-                                         || !GlobalData.openingPlatformList.isSaved());\r
             jMenuItemFileSaveAll.setEnabled(!GlobalData.openingModuleList.isSaved()\r
                                             || !GlobalData.openingPackageList.isSaved()\r
                                             || !GlobalData.openingPlatformList.isSaved());\r
@@ -3682,10 +3725,14 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             JOptionPane\r
                        .showConfirmDialog(\r
                                           null,\r
-                                          "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. " +\r
-                                          DataType.LINE_SEPARATOR + DataType.LINE_SEPARATOR + "NOTICE:" +\r
-                                          DataType.LINE_SEPARATOR + "This does not change the System Environment Variable." +\r
-                                          DataType.LINE_SEPARATOR + "It only applies to where the Wizard will manage modification and file creations.",\r
+                                          "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. "\r
+                                                          + DataType.LINE_SEPARATOR\r
+                                                          + DataType.LINE_SEPARATOR\r
+                                                          + "NOTICE:"\r
+                                                          + DataType.LINE_SEPARATOR\r
+                                                          + "This does not change the System Environment Variable."\r
+                                                          + DataType.LINE_SEPARATOR\r
+                                                          + "It only applies to where the Wizard will manage modification and file creations.",\r
                                           "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
             SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
             int result = sw.showDialog();\r
@@ -3712,8 +3759,8 @@ public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListe
             this.dispose();\r
             System.exit(0);\r
         case Workspace.WORKSPACE_NO_TARGET_FILE:\r
-            JOptionPane.showConfirmDialog(null, "Target.txt File Is Not Existed", "Error",\r
-                                          JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
+            JOptionPane.showConfirmDialog(null, "Target.txt File Is Not Existed", "Error", JOptionPane.DEFAULT_OPTION,\r
+                                          JOptionPane.ERROR_MESSAGE);\r
             this.dispose();\r
             System.exit(0);\r
         }\r