]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/packaging/ui/SpdPcdDefs.java
Make opening dialogs re-gain focus when user switch back to main UI from other window...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / packaging / ui / SpdPcdDefs.java
index 1ada3027531f8b2756d207dbf0d85f6d1c231a1e..38868430725f707837de8c56ad32ef820dfc5d57 100644 (file)
@@ -66,7 +66,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
      */\r
     private static final long serialVersionUID = 1L;\r
 \r
-    static JFrame frame;\r
+    private JFrame topFrame;\r
     \r
     private JPanel jContentPane = null;  \r
 \r
@@ -163,7 +163,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
     private final int usageMinWidth = 60;\r
     private final int supArchMinWidth = 200;\r
     private final int supModMinWidth = 200;\r
-\r
+    \r
 //    private Object boolModifyLock = new Object();\r
 //    private boolean exclusiveUsage = false;\r
 \r
@@ -262,21 +262,21 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
     /**\r
      This is the default constructor\r
      **/\r
-    public SpdPcdDefs() {\r
+    public SpdPcdDefs(JFrame frame) {\r
         super();\r
         init();\r
         initialize();\r
-        \r
+        topFrame = frame;\r
     }\r
 \r
-    public SpdPcdDefs(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa) {\r
-        this();\r
+    public SpdPcdDefs(PackageSurfaceAreaDocument.PackageSurfaceArea inPsa, JFrame frame) {\r
+        this(frame);\r
         sfc = new SpdFileContents(inPsa);\r
         init(sfc);\r
     }\r
     \r
-    public SpdPcdDefs(OpeningPackageType opt) {\r
-        this(opt.getXmlSpd());\r
+    public SpdPcdDefs(OpeningPackageType opt, JFrame frame) {\r
+        this(opt.getXmlSpd(), frame);\r
         docConsole = opt;\r
     }\r
     /**\r
@@ -301,7 +301,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
     private void init(SpdFileContents sfc){\r
         \r
         if (sfc.getSpdPkgDefsRdOnly().equals("true")) {\r
-            JOptionPane.showMessageDialog(frame, "This is a read-only package. You will not be able to edit contents in table.");\r
+            JOptionPane.showMessageDialog(topFrame, "This is a read-only package. You will not be able to edit contents in table.");\r
         }\r
         initFrame();\r
         \r
@@ -525,15 +525,15 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
                                 jCheckBoxPatchInMod.isSelected(), jCheckBoxDyn.isSelected(), jCheckBoxDynEx.isSelected(),\r
                                 archList, modTypeList};\r
                 try {\r
-                                   if (!dataValidation(row)) {\r
-                                           return;\r
-                                   }\r
-\r
-                                   if (tokenCNameExisted(jTextFieldToken.getText(),jTextFieldC_Name.getText())) {\r
-                                           return;\r
-                                   }\r
+                if (!dataValidation(row)) {\r
+                    return;\r
+                }\r
+                \r
+                if (tokenCNameExisted(jTextFieldToken.getText(), jTextFieldC_Name.getText())) {\r
+                    return;\r
+                }\r
                            } catch (Exception e) {\r
-                                   JOptionPane.showMessageDialog(frame, "Illegal Token:"+ e.getCause());\r
+                                   JOptionPane.showMessageDialog(this, "Illegal Token:"+ e.getCause());\r
                                    return;\r
                            }\r
                 \r
@@ -765,7 +765,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             TableColumn dataTypeColumn = jTable.getColumnModel().getColumn(3);\r
             dataTypeColumn.setCellEditor(new DefaultCellEditor(jComboBoxDataType));\r
             \r
-            jTable.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor());\r
+            jTable.getColumnModel().getColumn(5).setCellEditor(new LongTextEditor(topFrame));\r
 \r
             Vector<String> vArch = new Vector<String>();\r
             vArch.add("IA32");\r
@@ -774,7 +774,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             vArch.add("EBC");\r
             vArch.add("ARM");\r
             vArch.add("PPC");\r
-            jTable.getColumnModel().getColumn(11).setCellEditor(new ListEditor(vArch));\r
+            jTable.getColumnModel().getColumn(11).setCellEditor(new ListEditor(vArch, topFrame));\r
             \r
             Vector<String> vModule = new Vector<String>();\r
             vModule.add("BASE");\r
@@ -789,7 +789,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             vModule.add("UEFI_DRIVER");\r
             vModule.add("UEFI_APPLICATION");\r
             vModule.add("USER_DEFINED");\r
-            jTable.getColumnModel().getColumn(12).setCellEditor(new ListEditor(vModule));\r
+            jTable.getColumnModel().getColumn(12).setCellEditor(new ListEditor(vModule, topFrame));\r
             \r
             jTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);\r
             jTable.getSelectionModel().addListSelectionListener(new ListSelectionListener(){\r
@@ -836,7 +836,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             \r
             String usage = getValidUsage(new Boolean(m.getValueAt(row, 6)+""), new Boolean(m.getValueAt(row, 7)+""), new Boolean(m.getValueAt(row, 8)+""), new Boolean(m.getValueAt(row, 9)+""), new Boolean(m.getValueAt(row, 10)+""));\r
             if (usage.length() == 0) {\r
-                JOptionPane.showMessageDialog(frame, "You must choose at least one usage for PCD entry.");\r
+                JOptionPane.showMessageDialog(this, "You must choose at least one usage for PCD entry.");\r
                 return;\r
             }\r
 \r
@@ -847,9 +847,9 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
                 }\r
                 if (v.contains("FEATURE_FLAG")/* && v.size() > 1 && !exclusiveUsage*/) {\r
                     if (v.size() > 1) {\r
-                    JOptionPane.showMessageDialog(frame, "Usage Feature Flag can NOT co-exist with others.");\r
-                    return;\r
-                }\r
+                        JOptionPane.showMessageDialog(this, "Usage Feature Flag can NOT co-exist with others.");\r
+                        return;\r
+                    }\r
 //                    synchronized (boolModifyLock){\r
 //                        exclusiveUsage = true;\r
 //                    }\r
@@ -906,12 +906,12 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
             \r
             Object[] o = {cName, token, ts, dataType, defaultVal, help};\r
             try {\r
-               if (!dataValidation(o)){\r
-                    return;\r
-                }\r
+            if (!dataValidation(o)){\r
+                return;\r
+            }\r
             }\r
             catch (Exception e) {\r
-               JOptionPane.showMessageDialog(frame, "Illegal Token:" + e.getCause());\r
+               JOptionPane.showMessageDialog(this, "Illegal Token:" + e.getCause());\r
                return;\r
             }\r
             docConsole.setSaved(false);\r
@@ -1065,16 +1065,16 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
         \r
         for (int i = 0; i < model.getRowCount(); ++i) {\r
             if (model.getValueAt(i, 0).equals(cName)) {\r
-                JOptionPane.showMessageDialog(frame, "C_Name already existed in table.");\r
+                JOptionPane.showMessageDialog(this, "C_Name already existed in table.");\r
                 return true;\r
             }\r
             if (model.getValueAt(i, 1).equals(token)) {\r
-                JOptionPane.showMessageDialog(frame, "Token already existed in table.");\r
+                JOptionPane.showMessageDialog(this, "Token already existed in table.");\r
                 return true;\r
             }\r
             Long tokenValue = Long.decode(model.getValueAt(i, 1)+"");\r
             if (tokenValue.equals(inputToken)) {\r
-                JOptionPane.showMessageDialog(frame, "Same token value already existed in table.");\r
+                JOptionPane.showMessageDialog(this, "Same token value already existed in table.");\r
                 return true;\r
             }\r
             \r
@@ -1084,7 +1084,7 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
     \r
     private boolean checkValidUsage(boolean[] b) {\r
         if (!(b[0] || b[1] || b[2] || b[3] || b[4])){\r
-            JOptionPane.showMessageDialog(frame, "You must specify at least one usage.");\r
+            JOptionPane.showMessageDialog(this, "You must specify at least one usage.");\r
             return false;\r
         }\r
         return true;\r
@@ -1092,20 +1092,20 @@ public class SpdPcdDefs extends IInternalFrame implements TableModelListener{
     private boolean dataValidation(Object[] row) throws Exception{\r
         \r
         if (!DataValidation.isC_NameType(row[0].toString())) {\r
-            JOptionPane.showMessageDialog(frame, "C_Name is NOT C_NameType.");\r
+            JOptionPane.showMessageDialog(this, "C_Name is NOT C_NameType.");\r
             return false;\r
         }\r
         if (!DataValidation.isHexDoubleWordDataType(row[1].toString()) && \r
                         !DataValidation.isLongInt(row[1].toString(), 1, Long.MAX_VALUE)) {\r
-            JOptionPane.showMessageDialog(frame, "Token is NOT correct.");\r
+            JOptionPane.showMessageDialog(this, "Token is NOT correct.");\r
             return false;\r
         }\r
         if (!DataValidation.isC_NameType(row[2].toString())) {\r
-            JOptionPane.showMessageDialog(frame, "Token Space is NOT C_NameType");\r
+            JOptionPane.showMessageDialog(this, "Token Space is NOT C_NameType");\r
             return false;\r
         }\r
         if (row[5].toString().length() == 0) {\r
-            JOptionPane.showMessageDialog(frame, "HelpText could NOT be empty.");\r
+            JOptionPane.showMessageDialog(this, "HelpText could NOT be empty.");\r
             return false;\r
         }\r
         return true;\r