]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdFrameworkModules.java
Provide UI for generating Apriori file of PEI or DXE phase. The module order informat...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / platform / ui / FpdFrameworkModules.java
index 214c56b1e62f8474587804a9642f7abb3da270b8..d8b193413bb60276c5508bed42de3e4acdfc6a01 100644 (file)
@@ -15,6 +15,8 @@
 package org.tianocore.frameworkwizard.platform.ui;\r
 \r
 import java.awt.BorderLayout;\r
+import java.awt.Dimension;\r
+import java.awt.FontMetrics;\r
 \r
 import javax.swing.JFrame;\r
 import javax.swing.JOptionPane;\r
@@ -38,6 +40,7 @@ import org.tianocore.frameworkwizard.platform.ui.global.WorkspaceProfile;
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 \r
 import java.awt.FlowLayout;\r
+import java.awt.event.ActionEvent;\r
 import java.awt.event.KeyEvent;\r
 import java.awt.event.MouseEvent;\r
 import java.util.ArrayList;\r
@@ -186,6 +189,8 @@ public class FpdFrameworkModules extends IInternalFrame {
     private final int typeMinWidth = 100;\r
     \r
     private final int typeMaxWidth = 155;\r
+\r
+    private JButton jButtonApriori = null;\r
     \r
     /**\r
      * This method initializes jSplitPane\r
@@ -524,6 +529,7 @@ public class FpdFrameworkModules extends IInternalFrame {
             jPanelBottomSouth.setLayout(flowLayout1);\r
             jPanelBottomSouth.add(getJButtonSettings(), null);\r
             jPanelBottomSouth.add(getJButtonRemoveModule(), null);\r
+            jPanelBottomSouth.add(getJButtonApriori(), null);\r
         }\r
         return jPanelBottomSouth;\r
     }\r
@@ -663,12 +669,13 @@ public class FpdFrameworkModules extends IInternalFrame {
     private void showSettingsDlg (int row) {\r
         try {\r
             if (ffc.adjustPcd(row)) {\r
+                JOptionPane.showMessageDialog(frame, "Pcd entries sync. with those in MSA files.");\r
                 docConsole.setSaved(false);\r
             }\r
         }\r
         catch (Exception exp) {\r
             JOptionPane.showMessageDialog(frame, exp.getMessage());\r
-            return;\r
+//            return;\r
         }\r
         \r
         if (settingDlg == null) {\r
@@ -719,15 +726,16 @@ public class FpdFrameworkModules extends IInternalFrame {
     private JButton getJButtonRemoveModule() {\r
         if (jButtonRemoveModule == null) {\r
             jButtonRemoveModule = new JButton();\r
-            jButtonRemoveModule.setPreferredSize(new java.awt.Dimension(130, 20));\r
             jButtonRemoveModule.setText("Remove Module");\r
+            FontMetrics fm = jButtonRemoveModule.getFontMetrics(jButtonRemoveModule.getFont());\r
+            jButtonRemoveModule.setPreferredSize(new Dimension (fm.stringWidth(jButtonRemoveModule.getText()) + 40, 20));\r
             jButtonRemoveModule.addActionListener(new java.awt.event.ActionListener() {\r
                 public void actionPerformed(java.awt.event.ActionEvent e) {\r
                     int selectedRow = jTableFpdModules.getSelectedRow();\r
                     if (selectedRow < 0) {\r
                         return;\r
                     }\r
-                    \r
+                    int nextSelection = selectedRow;\r
 \r
                     TableSorter sorter = (TableSorter) jTableFpdModules.getModel();\r
                     selectedRow = sorter.getModelRowIndex(selectedRow);\r
@@ -747,7 +755,7 @@ public class FpdFrameworkModules extends IInternalFrame {
                     if (fvBindings != null) {\r
                         String[] fvArray = fvBindings.split(" ");\r
                         for (int i = 0; i < fvArray.length; ++i) {\r
-                            ffc.removeModuleInBuildOptionsUserExtensions(fvArray[i].trim(), mg, mv, pg, pv, arch);\r
+                            ffc.removeModuleInBuildOptionsUserExtensions(fvArray[i].trim(), "IMAGES", 1, mg, mv, pg, pv, arch);\r
                         }\r
                     }\r
                     \r
@@ -761,7 +769,7 @@ public class FpdFrameworkModules extends IInternalFrame {
                         ffc.removeModuleSA(selectedRow);    \r
                     }\r
                     catch (Exception exp) {\r
-                        JOptionPane.showMessageDialog(frame, exp.getCause() + exp.getMessage());\r
+                        JOptionPane.showMessageDialog(frame, exp.getMessage());\r
                         return;\r
                     }\r
                     \r
@@ -780,6 +788,10 @@ public class FpdFrameworkModules extends IInternalFrame {
                     }\r
                     \r
                     modelFpdModules.removeRow(selectedRow);\r
+                    if (nextSelection >= jTableFpdModules.getRowCount()) {\r
+                        nextSelection = jTableFpdModules.getRowCount() - 1;\r
+                    }\r
+                    jTableFpdModules.changeSelection(nextSelection, 0, false, false);\r
                     docConsole.setSaved(false);\r
                 }\r
             });\r
@@ -787,6 +799,29 @@ public class FpdFrameworkModules extends IInternalFrame {
         return jButtonRemoveModule;\r
     }\r
 \r
+    /**\r
+     * This method initializes jButtonApriori  \r
+     *         \r
+     * @return javax.swing.JButton     \r
+     */\r
+    private JButton getJButtonApriori() {\r
+        if (jButtonApriori == null) {\r
+            jButtonApriori = new JButton();\r
+            jButtonApriori.setText("Apriori Files");\r
+            FontMetrics fm = jButtonApriori.getFontMetrics(jButtonApriori.getFont());\r
+            int buttonWidth = fm.stringWidth(jButtonApriori.getText()) + 40;\r
+            if (jButtonRemoveModule.getWidth() > buttonWidth) {\r
+                buttonWidth = jButtonRemoveModule.getWidth();\r
+            }\r
+            jButtonApriori.setPreferredSize(new Dimension (buttonWidth, 20));\r
+            jButtonApriori.addActionListener(new java.awt.event.ActionListener() {\r
+                public void actionPerformed(ActionEvent arg0) {\r
+                    new GenAprioriFileDialog(ffc, docConsole).setVisible(true);\r
+                }});\r
+        }\r
+        return jButtonApriori;\r
+    }\r
+\r
     /**\r
      * \r
      * @param args\r