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 JMenuItem jMenuItemFileNew = null;\r
\r
+ private JMenuItem jMenuItemFileRefresh = null;\r
+\r
private JMenuItem jMenuItemFileSaveAs = null;\r
\r
private JMenuItem jMenuItemFileExit = null;\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(getJMenuItemFileSaveAll());\r
jMenuFile.addSeparator();\r
\r
+ jMenuFile.add(getJMenuItemFileRefresh());\r
+ jMenuFile.addSeparator();\r
+\r
jMenuFile.add(getJMenuItemFilePageSetup());\r
jMenuFile.add(getJMenuItemFilePrint());\r
jMenuFile.add(getJMenuItemFileImport());\r
return jMenuItemFileSaveAs;\r
}\r
\r
+ /**\r
+ This method initializes jMenuItemFileRefresh \r
+ \r
+ @return javax.swing.JMenuItem jMenuItemFileRefresh\r
+ \r
+ **/\r
+ private JMenuItem getJMenuItemFileRefresh() {\r
+ if (jMenuItemFileRefresh == null) {\r
+ jMenuItemFileRefresh = new JMenuItem();\r
+ jMenuItemFileRefresh.setText("Refresh");\r
+ jMenuItemFileRefresh.setMnemonic('R');\r
+ jMenuItemFileRefresh.addActionListener(this);\r
+ jMenuItemFileRefresh.setVisible(true);\r
+ }\r
+ return jMenuItemFileRefresh;\r
+ }\r
+\r
/**\r
This method initializes jMenuItemModuleExit \r
\r
//\r
jMenuHelp = new JMenu();\r
jMenuHelp.setText("Help");\r
+ jMenuHelp.setMnemonic('H');\r
\r
//\r
// Add sub menu items\r
if (jMenuItemHelpAbout == null) {\r
jMenuItemHelpAbout = new JMenuItem();\r
jMenuItemHelpAbout.setText("About...");\r
+ jMenuItemHelpAbout.setMnemonic('A');\r
jMenuItemHelpAbout.addActionListener(this);\r
}\r
return jMenuItemHelpAbout;\r
\r
jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
jMenuTools.add(getJMenuItemToolsBuildPreferences());\r
+ jMenuTools.addSeparator();\r
+\r
+ jMenuTools.add(getJMenuItemToolsGenerateGuidsXref());\r
}\r
return jMenuTools;\r
}\r
if (jMenuItemFileCloseAll == null) {\r
jMenuItemFileCloseAll = new JMenuItem();\r
jMenuItemFileCloseAll.setText("Close All");\r
+ jMenuItemFileCloseAll.setMnemonic('A');\r
jMenuItemFileCloseAll.setEnabled(true);\r
jMenuItemFileCloseAll.addActionListener(this);\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
this.saveAll();\r
}\r
\r
+ if (arg0.getSource() == this.jMenuItemFileRefresh) {\r
+ this.closeAll();\r
+ this.refresh();\r
+ this.makeEmptyTree();\r
+ }\r
+\r
if (arg0.getSource() == this.jMenuItemFileExit) {\r
this.exit();\r
}\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
// Reinit whole window\r
//\r
- closeAll();\r
+ this.closeAll();\r
this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
+ Workspace.getCurrentWorkspace() + "]");\r
//\r
- // Reinit Global Data\r
+ // Refrash the tree\r
//\r
- GlobalData.init();\r
+ this.refresh();\r
}\r
sw.dispose();\r
}\r
//\r
IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(\r
GlobalData.vPlatformList.lastElement().getName(),\r
- IDefaultMutableTreeNode.PLATFORM,\r
- false, GlobalData.vPlatformList.lastElement(),\r
+ IDefaultMutableTreeNode.PLATFORM, false,\r
+ GlobalData.vPlatformList.lastElement(),\r
this.dmtnPlatformDescription);\r
iTree.addNode(this.dmtnPlatformDescription, node);\r
}\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.showSaveDialog(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
+ return;\r
+ }\r
+\r
+ JOptionPane.showConfirmDialog(null, "File is created", "Generate guids.xref", JOptionPane.DEFAULT_OPTION,\r
+ JOptionPane.INFORMATION_MESSAGE);\r
+ }\r
+ }\r
}\r