]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/common/Tools.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 / common / Tools.java
index 33dc521eda14dc710cd69a40842e09a006d896dd..6dcb91e931537ec8f6da5a70a9b229653a54809e 100644 (file)
@@ -27,6 +27,7 @@ import javax.swing.DefaultListModel;
 import javax.swing.JComboBox;\r
 import javax.swing.JList;\r
 import javax.swing.JOptionPane;\r
+import javax.swing.JTable;\r
 \r
 import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;\r
 import org.tianocore.MsaHeaderDocument.MsaHeader;\r
@@ -34,6 +35,7 @@ import org.tianocore.PackageSurfaceAreaDocument.PackageSurfaceArea;
 import org.tianocore.PlatformHeaderDocument.PlatformHeader;\r
 import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;\r
 import org.tianocore.SpdHeaderDocument.SpdHeader;\r
+import org.tianocore.frameworkwizard.FrameworkWizardUI;\r
 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
 import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
 import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
@@ -230,10 +232,12 @@ public class Tools {
         //\r
         // remove file separator of rear\r
         //\r
-        if (path.indexOf(DataType.DOS_FILE_SEPARATOR) == path.length() - DataType.DOS_FILE_SEPARATOR.length()) {\r
+        if (path.length() > 0\r
+            && path.indexOf(DataType.DOS_FILE_SEPARATOR) == path.length() - DataType.DOS_FILE_SEPARATOR.length()) {\r
             path = path.substring(0, path.length() - DataType.DOS_FILE_SEPARATOR.length());\r
         }\r
-        if (path.indexOf(DataType.UNIX_FILE_SEPARATOR) == path.length() - DataType.UNIX_FILE_SEPARATOR.length()) {\r
+        if (path.length() > 0\r
+            && path.indexOf(DataType.UNIX_FILE_SEPARATOR) == path.length() - DataType.UNIX_FILE_SEPARATOR.length()) {\r
             path = path.substring(0, path.length() - DataType.DOS_FILE_SEPARATOR.length());\r
         }\r
         //\r
@@ -260,6 +264,35 @@ public class Tools {
         return v;\r
     }\r
 \r
+    /**\r
+     Convert a Vector to a String, separator with ", "\r
+     \r
+     @param v\r
+     @return\r
+     \r
+     **/\r
+    public static String convertVectorToString(Vector<String> v) {\r
+        String s = "";\r
+        for (int index = 0; index < v.size(); index++) {\r
+            s = s + v.elementAt(index).toString() + ", ";\r
+        }\r
+        if (s.length() > 0) {\r
+            s = s.substring(0, s.length() - ", ".length());\r
+        }\r
+        return s;\r
+    }\r
+\r
+    /**\r
+     Convert a List to a String\r
+     \r
+     @param list\r
+     @return\r
+     \r
+     **/\r
+    public static String convertListToString(List list) {\r
+        return Tools.convertVectorToString(Tools.convertListToVector(list));\r
+    }\r
+\r
     /**\r
      If the input path missing ext, append the ext to the path\r
      \r
@@ -302,7 +335,7 @@ public class Tools {
      \r
      **/\r
     public static void showInformationMessage(String arg0) {\r
-        JOptionPane.showConfirmDialog(null, arg0, "Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
+        JOptionPane.showConfirmDialog(FrameworkWizardUI.getInstance(), arg0, "Info", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
     }\r
 \r
     /**\r
@@ -332,6 +365,13 @@ public class Tools {
         String strTemp = "";\r
         boolean isCopied = true;\r
 \r
+        if (arg0 == null) {\r
+            return "";\r
+        }\r
+        if (arg0.length() <= 0) {\r
+            return "";\r
+        }\r
+\r
         //\r
         // Convert string to array by " "\r
         //\r
@@ -546,6 +586,22 @@ public class Tools {
         resizeComponentHeight(c, containerHeight, preferredHeight);\r
     }\r
 \r
+    /**\r
+     To adjust each column's width to meet the table's size\r
+     \r
+     @param t the table need to be adjusted\r
+     @param width the new width of the table\r
+     \r
+     **/\r
+    public static void resizeTableColumn(JTable t, int width) {\r
+        if (t != null) {\r
+            int columnCount = t.getColumnCount();\r
+            for (int index = 0; index < columnCount; index++) {\r
+                t.getColumn(t.getColumnName(index)).setPreferredWidth(width / columnCount);\r
+            }\r
+        }\r
+    }\r
+\r
     /**\r
      * To relocate the input component\r
      * \r