import java.awt.event.MouseEvent;\r
import java.awt.event.MouseListener;\r
import java.awt.event.WindowEvent;\r
+import java.io.BufferedWriter;\r
+import java.io.File;\r
+import java.io.FileWriter;\r
import java.io.IOException;\r
import java.util.Iterator;\r
import java.util.Set;\r
///\r
private static FrameworkWizardUI fwui = null;\r
\r
+ private JMenuItem jMenuItemToolsGenerateGuidsXref = null;\r
+\r
/**\r
If the class hasn't an instnace, new one.\r
\r
jMenuFile.add(getJMenuItemFileSaveAs());\r
jMenuFile.add(getJMenuItemFileSaveAll());\r
jMenuFile.addSeparator();\r
- \r
+\r
jMenuFile.add(getJMenuItemFileRefresh());\r
jMenuFile.addSeparator();\r
\r
\r
jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
jMenuTools.add(getJMenuItemToolsBuildPreferences());\r
+ jMenuTools.addSeparator();\r
+\r
+ jMenuTools.add(getJMenuItemToolsGenerateGuidsXref());\r
}\r
return jMenuTools;\r
}\r
return jMenuItemEditFindLibraryInstance;\r
}\r
\r
+ /**\r
+ * This method initializes jMenuItemProjectGenerateGuidsXref \r
+ * \r
+ * @return javax.swing.JMenuItem \r
+ */\r
+ private JMenuItem getJMenuItemToolsGenerateGuidsXref() {\r
+ if (jMenuItemToolsGenerateGuidsXref == null) {\r
+ jMenuItemToolsGenerateGuidsXref = new JMenuItem();\r
+ jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref");\r
+ jMenuItemToolsGenerateGuidsXref.setMnemonic('G');\r
+ jMenuItemToolsGenerateGuidsXref.addActionListener(this);\r
+ }\r
+ return jMenuItemToolsGenerateGuidsXref;\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])\r
*\r
if (arg0.getSource() == this.jMenuItemFileSaveAll) {\r
this.saveAll();\r
}\r
- \r
+\r
if (arg0.getSource() == this.jMenuItemFileRefresh) {\r
this.closeAll();\r
this.refresh();\r
this.setupToolChainConfiguration();\r
}\r
\r
+ if (arg0.getSource() == this.jMenuItemToolsGenerateGuidsXref) {\r
+ this.generateGuidsXref();\r
+ }\r
+\r
if (arg0.getSource() == this.jMenuItemHelpAbout) {\r
About a = new About(this, true);\r
int result = a.showDialog();\r
IDefaultMutableTreeNode belongNode = null;\r
\r
try {\r
- id = iTree.getSelectNode().getId();\r
- intCategory = iTree.getSelectCategory();\r
- belongNode = iTree.getSelectNode().getBelongNode();\r
+ //\r
+ // Get selected tree node\r
+ //\r
+ if (iTree.getSelectNode() != null) {\r
+ id = iTree.getSelectNode().getId();\r
+ }\r
\r
//\r
// If id is null, return directly\r
return;\r
}\r
\r
+ intCategory = iTree.getSelectCategory();\r
+ belongNode = iTree.getSelectNode().getBelongNode();\r
+\r
// \r
// If the node is not opened yet\r
// Insert top level elements first\r
}\r
}\r
}\r
+\r
+ /**\r
+ Search whole workspace and find all module's name and guid, and save them to a file\r
+ \r
+ **/\r
+ private void generateGuidsXref() {\r
+ //\r
+ // Init File Chooser\r
+ //\r
+ JFileChooser fc = new JFileChooser();\r
+ fc.setCurrentDirectory(new File(Workspace.getCurrentWorkspace()));\r
+ fc.setSelectedFile(new File(Workspace.getCurrentWorkspace() + DataType.FILE_SEPARATOR\r
+ + DataType.GUIDS_XREF_FILE_NAME));\r
+ fc.setMultiSelectionEnabled(false);\r
+\r
+ //\r
+ // Get guids xref and save to file\r
+ //\r
+ int result = fc.showOpenDialog(new JPanel());\r
+ if (result == JFileChooser.APPROVE_OPTION) {\r
+ Vector<String> v = wt.getAllModuleGuidXref();\r
+ if (v.size() < 1) {\r
+ Log.wrn("No guids found!!!");\r
+ return;\r
+ }\r
+ File f = fc.getSelectedFile();\r
+ if (!f.exists()) {\r
+ try {\r
+ f.createNewFile();\r
+ } catch (IOException e) {\r
+ Log.wrn("Fail to create file", e.getMessage());\r
+ Log.err("Fail to create file when generating guids.xref", e.getMessage());\r
+ }\r
+ }\r
+ FileWriter fw = null;\r
+ BufferedWriter bw = null;\r
+ try {\r
+ fw = new FileWriter(f);\r
+ bw = new BufferedWriter(fw);\r
+ for (int index = 0; index < v.size(); index++) {\r
+ bw.write(v.get(index));\r
+ bw.newLine();\r
+ }\r
+ bw.flush();\r
+ fw.flush();\r
+ bw.close();\r
+ fw.close();\r
+ } catch (IOException e) {\r
+ Log.wrn("Fail to write file", e.getMessage());\r
+ Log.err("Fail to write file when generating guids.xref", e.getMessage());\r
+ }\r
+ }\r
+ }\r
}\r