import java.util.UUID;\r
import java.util.Vector;\r
\r
+import javax.swing.DefaultListModel;\r
import javax.swing.JComboBox;\r
+import javax.swing.JList;\r
import javax.swing.JOptionPane;\r
\r
+import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
+import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
+import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
+\r
/**\r
The class is used to provides some useful interfaces \r
\r
**/\r
public static void main(String[] args) {\r
System.out.println(getCurrentDateTime());\r
+// Vector<String> v = new Vector<String>();\r
+// Vector<String> v1 = new Vector<String>();\r
+// \r
+// v.addElement("CAC");\r
+// v1.addElement("1111");\r
+// v.addElement("1AC");\r
+// v1.addElement("2222");\r
+// v.addElement("ABC");\r
+// v1.addElement("3333");\r
+// v.addElement("0C");\r
+// v1.addElement("4444");\r
+// v.addElement("AAC");\r
+// v1.addElement("5555");\r
+// Vector<Integer> vs = new Vector<Integer>();\r
+// vs = Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending);\r
+// Tools.sortVectorString(v1, Tools.getVectorSortSequence(v, DataType.Sort_Type_Ascending));\r
+// \r
+// Tools.sortVectorString(v, DataType.Sort_Type_Ascending);\r
+// Tools.sortVectorString(v, DataType.Sort_Type_Descending);\r
}\r
\r
/**\r
}\r
}\r
}\r
+ \r
+ /**\r
+ Generate selection items for JList by input vector\r
+ \r
+ **/\r
+ public static void generateListByVector(JList jl, Vector<String> vector) {\r
+ if (jl != null) {\r
+ DefaultListModel listModel = (DefaultListModel) jl.getModel();\r
+ listModel.removeAllElements();\r
+ \r
+ if (vector != null) {\r
+ for (int index = 0; index < vector.size(); index++) {\r
+ listModel.addElement(vector.get(index));\r
+ }\r
+ }\r
+ \r
+ if (listModel.size() > 0) {\r
+ jl.setSelectedIndex(0);\r
+ }\r
+ }\r
+ }\r
\r
/**\r
Get path only from a path\r
if (type == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
match = DataType.FILE_EXT_SEPARATOR + DataType.PLATFORM_SURFACE_AREA_EXT;\r
}\r
+ if (type == DataType.RETURN_TYPE_TEXT) {\r
+ match = DataType.FILE_EXT_SEPARATOR + DataType.TEXT_FILE_EXT;\r
+ }\r
+ if (type == DataType.RETURN_TYPE_FAR_SURFACE_AREA) {\r
+ match = DataType.FILE_EXT_SEPARATOR + DataType.FAR_SURFACE_AREA_EXT;\r
+ }\r
if (path.length() <= match.length()) {\r
path = path + match;\r
return path;\r
public static void showInformationMessage(String arg0) {\r
JOptionPane.showConfirmDialog(null, arg0, "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE);\r
}\r
+\r
+ /**\r
+ if the string doesn't end with a file separator, append it to the string\r
+ \r
+ @param arg0\r
+ @return\r
+ \r
+ **/\r
+ public static String addFileSeparator(String arg0) {\r
+ if (!arg0.endsWith(DataType.FILE_SEPARATOR)) {\r
+ arg0 = arg0 + DataType.FILE_SEPARATOR;\r
+ }\r
+ return arg0;\r
+ }\r
+\r
+ /**\r
+ Sort all elements in the vector as the specific sort type\r
+ \r
+ @param v The vector need to be sorted\r
+ @param mode Sort type DataType.Sort_Type_Ascendin and DataType.Sort_Type_Descending\r
+\r
+ **/\r
+ public static void sortVectorString(Vector<String> v, int mode) {\r
+ if (v != null) {\r
+ for (int indexI = 0; indexI < v.size(); indexI++) {\r
+ for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+ if ((v.get(indexJ).compareTo(v.get(indexI)) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.get(indexI).compareTo(v.get(indexJ)) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ String temp = v.get(indexI);\r
+ v.setElementAt(v.get(indexJ), indexI);\r
+ v.setElementAt(temp, indexJ);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ Sort all elements of vector and return sorted sequence\r
+ \r
+ @param v The vector need to be sorted\r
+ @param mode Sort type DataType.Sort_Type_Ascendin and DataType.Sort_Type_Descending\r
+ @return Vector<Integer> The sorted sequence\r
+ \r
+ **/\r
+ public static Vector<Integer> getVectorSortSequence(Vector<String> v, int mode) {\r
+ Vector<Integer> vSequence = new Vector<Integer>();\r
+ //\r
+ // Init sequence\r
+ //\r
+ if (v != null) {\r
+ for (int index = 0; index < v.size(); index++) {\r
+ vSequence.addElement(index);\r
+ }\r
+ }\r
+\r
+ //\r
+ // sort and get new sequence\r
+ //\r
+ for (int indexI = 0; indexI < v.size(); indexI++) {\r
+ for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+ if ((v.get(indexJ).compareTo(v.get(indexI)) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.get(indexI).compareTo(v.get(indexJ)) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ //\r
+ // Swap strings\r
+ //\r
+ String tempStr = v.get(indexI);\r
+ v.setElementAt(v.get(indexJ), indexI);\r
+ v.setElementAt(tempStr, indexJ);\r
+ \r
+ //\r
+ // Swap sequences\r
+ //\r
+ int tempInt = vSequence.get(indexI);\r
+ vSequence.setElementAt(vSequence.get(indexJ), indexI);\r
+ vSequence.setElementAt(tempInt, indexJ);\r
+ }\r
+ }\r
+ }\r
+\r
+ return vSequence;\r
+ }\r
+\r
+ /**\r
+ Sort all elements of vector as input sequence\r
+ \r
+ @param v The vector need to be sorted\r
+ @param vSequence The sort sequence should be followed\r
+ \r
+ **/\r
+ public static void sortVectorString(Vector<String> v, Vector<Integer> vSequence) {\r
+ if (v != null && vSequence != null && v.size() == vSequence.size()) {\r
+ Vector<String> tempV = new Vector<String>();\r
+ for (int index = 0; index < v.size(); index++) {\r
+ tempV.addElement(v.get(index));\r
+ }\r
+ for (int index = 0; index < v.size(); index++) {\r
+ v.setElementAt(tempV.get(vSequence.get(index)), index);\r
+ }\r
+ }\r
+ }\r
+ \r
+ /**\r
+ Sort all modules\r
+ \r
+ @param v\r
+ @param mode\r
+ \r
+ **/\r
+ public static void sortModules(Vector<ModuleIdentification> v, int mode) {\r
+ if (v != null) {\r
+ //\r
+ // sort by name\r
+ //\r
+ for (int indexI = 0; indexI < v.size(); indexI++) {\r
+ for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+ if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ ModuleIdentification temp = v.get(indexI);\r
+ v.setElementAt(v.get(indexJ), indexI);\r
+ v.setElementAt(temp, indexJ);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
\r
/**\r
- if the string doesn't end with a file separator, append it to the string\r
+ Sort all packages\r
\r
- @param arg0\r
- @return\r
+ @param v\r
+ @param mode\r
\r
**/\r
- public static String addFileSeparator(String arg0) {\r
- if (!arg0.endsWith(DataType.FILE_SEPARATOR)) {\r
- arg0 = arg0 + DataType.FILE_SEPARATOR;\r
+ public static void sortPackages(Vector<PackageIdentification> v, int mode) {\r
+ if (v != null) {\r
+ //\r
+ // sort by name\r
+ //\r
+ for (int indexI = 0; indexI < v.size(); indexI++) {\r
+ for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+ if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ PackageIdentification temp = v.get(indexI);\r
+ v.setElementAt(v.get(indexJ), indexI);\r
+ v.setElementAt(temp, indexJ);\r
+ }\r
+ }\r
+ }\r
}\r
- return arg0;\r
}\r
+ \r
+ /**\r
+ Sort all platforms\r
+ \r
+ @param v\r
+ @param mode\r
+ \r
+ **/\r
+ public static void sortPlatforms(Vector<PlatformIdentification> v, int mode) {\r
+ if (v != null) {\r
+ //\r
+ // sort by name\r
+ //\r
+ for (int indexI = 0; indexI < v.size(); indexI++) {\r
+ for (int indexJ = indexI + 1; indexJ < v.size(); indexJ++) {\r
+ if ((v.get(indexJ).getName().compareTo(v.get(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.get(indexI).getName().compareTo(v.get(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ PlatformIdentification temp = v.get(indexI);\r
+ v.setElementAt(v.get(indexJ), indexI);\r
+ v.setElementAt(temp, indexJ);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
}\r