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.module.Identifications.PcdCoded.PcdIdentification;\r
+import org.tianocore.frameworkwizard.module.Identifications.PcdCoded.PcdVector;\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
+ /**\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
- \r
+ \r
@param filePath\r
@return\r
- \r
- **/\r
+ \r
+ **/\r
public static String getFilePathOnly(String filePath) {\r
String path = filePath.substring(0, filePath.length() - getFileNameOnly(filePath).length());\r
if (path.endsWith(DataType.FILE_SEPARATOR)) {\r
path = path.substring(0, path.length() - DataType.FILE_SEPARATOR.length());\r
}\r
- \r
+\r
return path;\r
}\r
- \r
- \r
+\r
/**\r
Get file name from a path\r
\r
@param filePath\r
@return\r
- \r
- **/\r
+ \r
+ **/\r
public static String getFileNameOnly(String filePath) {\r
File f = new File(filePath);\r
return f.getAbsoluteFile().getName();\r
}\r
- \r
+\r
public static String getFileNameWithoutExt(String filePath) {\r
filePath = getFileNameOnly(filePath);\r
filePath = filePath.substring(0, filePath.lastIndexOf(DataType.FILE_EXT_SEPARATOR));\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
}\r
return path;\r
}\r
- \r
+\r
/**\r
Show a message box\r
\r
@param arg0\r
- \r
- **/\r
+ \r
+ **/\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
+ Sort all packages\r
+ \r
+ @param v\r
+ @param mode\r
+ \r
+ **/\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
+ }\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
+ /**\r
+ Sort all pcd entries\r
+ \r
+ @param v\r
+ @param mode\r
+ \r
+ **/\r
+ public static void sortPcds(PcdVector 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.getPcd(indexJ).getName().compareTo(v.getPcd(indexI).getName()) < 0 && mode == DataType.SORT_TYPE_ASCENDING)\r
+ || (v.getPcd(indexI).getName().compareTo(v.getPcd(indexJ).getName()) < 0 && mode == DataType.SORT_TYPE_DESCENDING)) {\r
+ PcdIdentification temp = v.getPcd(indexI);\r
+ v.setPcd(v.getPcd(indexJ), indexI);\r
+ v.setPcd(temp, indexJ);\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
}\r