]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
1. Fix EDKT508: FW should't build Log.log file in current directory
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / FrameworkWizardUI.java
CommitLineData
a13899c5 1/** @file\r
2 \r
3 The main GUI for module editor. \r
4 \r
5 Copyright (c) 2006, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 **/\r
15\r
16package org.tianocore.frameworkwizard;\r
17\r
18import java.awt.event.ActionEvent;\r
19import java.awt.event.ComponentEvent;\r
78b5fb82 20import java.awt.event.KeyEvent;\r
21import java.awt.event.KeyListener;\r
a13899c5 22import java.awt.event.MouseEvent;\r
23import java.awt.event.MouseListener;\r
24import java.awt.event.WindowEvent;\r
b63cc1b6 25import java.io.BufferedWriter;\r
26import java.io.File;\r
27import java.io.FileWriter;\r
a13899c5 28import java.io.IOException;\r
09ef9242 29import java.util.Iterator;\r
30import java.util.Set;\r
a13899c5 31import java.util.Vector;\r
32\r
33import javax.swing.JButton;\r
34import javax.swing.JCheckBoxMenuItem;\r
35import javax.swing.JDesktopPane;\r
36import javax.swing.JFileChooser;\r
37import javax.swing.JFrame;\r
38import javax.swing.JInternalFrame;\r
39import javax.swing.JMenu;\r
40import javax.swing.JMenuBar;\r
41import javax.swing.JMenuItem;\r
42import javax.swing.JOptionPane;\r
43import javax.swing.JPanel;\r
44import javax.swing.JScrollPane;\r
45import javax.swing.JSplitPane;\r
46import javax.swing.JTabbedPane;\r
14a32a70 47import javax.swing.ToolTipManager;\r
a13899c5 48import javax.swing.event.MenuEvent;\r
49import javax.swing.event.MenuListener;\r
50import javax.swing.event.TreeSelectionEvent;\r
51import javax.swing.event.TreeSelectionListener;\r
09ef9242 52import javax.swing.tree.TreePath;\r
a13899c5 53\r
54import org.apache.xmlbeans.XmlException;\r
a13899c5 55import org.tianocore.PackageSurfaceAreaDocument;\r
a13899c5 56import org.tianocore.frameworkwizard.common.DataType;\r
739c6b04 57import org.tianocore.frameworkwizard.common.GlobalData;\r
a13899c5 58import org.tianocore.frameworkwizard.common.IFileFilter;\r
a13899c5 59import org.tianocore.frameworkwizard.common.Log;\r
a13899c5 60import org.tianocore.frameworkwizard.common.SaveFile;\r
61import org.tianocore.frameworkwizard.common.Tools;\r
79cb6fdb 62import org.tianocore.frameworkwizard.common.Identifications.Identification;\r
79cb6fdb 63import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;\r
79cb6fdb 64import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;\r
79cb6fdb 65import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;\r
55e83b18 66import org.tianocore.frameworkwizard.common.find.FindResult;\r
a13899c5 67import org.tianocore.frameworkwizard.common.ui.IDefaultMutableTreeNode;\r
68import org.tianocore.frameworkwizard.common.ui.IDesktopManager;\r
69import org.tianocore.frameworkwizard.common.ui.IFrame;\r
70import org.tianocore.frameworkwizard.common.ui.ITree;\r
5a24e806 71import org.tianocore.frameworkwizard.far.createui.CreateStepOne;\r
72import org.tianocore.frameworkwizard.far.deleteui.DeleteStepOne;\r
73import org.tianocore.frameworkwizard.far.installui.InstallStepOne;\r
74import org.tianocore.frameworkwizard.far.updateui.UpdateStepOne;\r
79cb6fdb 75import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;\r
a13899c5 76import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;\r
b3cb8ee7 77import org.tianocore.frameworkwizard.module.ui.ModuleBuildOptions;\r
a13899c5 78import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;\r
a13899c5 79import org.tianocore.frameworkwizard.module.ui.ModuleEvents;\r
80import org.tianocore.frameworkwizard.module.ui.ModuleExterns;\r
81import org.tianocore.frameworkwizard.module.ui.ModuleGuids;\r
82import org.tianocore.frameworkwizard.module.ui.ModuleHiiPackages;\r
83import org.tianocore.frameworkwizard.module.ui.ModuleHobs;\r
84import org.tianocore.frameworkwizard.module.ui.ModuleLibraryClassDefinitions;\r
85import org.tianocore.frameworkwizard.module.ui.ModulePCDs;\r
86import org.tianocore.frameworkwizard.module.ui.ModulePackageDependencies;\r
87import org.tianocore.frameworkwizard.module.ui.ModulePpis;\r
88import org.tianocore.frameworkwizard.module.ui.ModuleProtocols;\r
89import org.tianocore.frameworkwizard.module.ui.ModuleSourceFiles;\r
90import org.tianocore.frameworkwizard.module.ui.ModuleSystemTables;\r
91import org.tianocore.frameworkwizard.module.ui.ModuleVariables;\r
92import org.tianocore.frameworkwizard.module.ui.MsaHeader;\r
93import org.tianocore.frameworkwizard.packaging.PackageIdentification;\r
94import org.tianocore.frameworkwizard.packaging.ui.SpdGuidDecls;\r
95import org.tianocore.frameworkwizard.packaging.ui.SpdHeader;\r
96import org.tianocore.frameworkwizard.packaging.ui.SpdLibClassDecls;\r
97import org.tianocore.frameworkwizard.packaging.ui.SpdMsaFiles;\r
a13899c5 98import org.tianocore.frameworkwizard.packaging.ui.SpdPackageHeaders;\r
99import org.tianocore.frameworkwizard.packaging.ui.SpdPcdDefs;\r
100import org.tianocore.frameworkwizard.packaging.ui.SpdPpiDecls;\r
101import org.tianocore.frameworkwizard.packaging.ui.SpdProtocolDecls;\r
102import org.tianocore.frameworkwizard.platform.PlatformIdentification;\r
103import org.tianocore.frameworkwizard.platform.ui.FpdBuildOptions;\r
104import org.tianocore.frameworkwizard.platform.ui.FpdDynamicPcdBuildDefinitions;\r
105import org.tianocore.frameworkwizard.platform.ui.FpdFlash;\r
106import org.tianocore.frameworkwizard.platform.ui.FpdFrameworkModules;\r
107import org.tianocore.frameworkwizard.platform.ui.FpdHeader;\r
108import org.tianocore.frameworkwizard.platform.ui.FpdPlatformDefs;\r
109import org.tianocore.frameworkwizard.workspace.Workspace;\r
110import org.tianocore.frameworkwizard.workspace.WorkspaceTools;\r
111import org.tianocore.frameworkwizard.workspace.ui.SwitchWorkspace;\r
dbf5dd75 112import org.tianocore.frameworkwizard.toolchain.Preferences;\r
a13899c5 113\r
114/**\r
43dc3851 115 The class is used to show main GUI of FrameworkWizard\r
116 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener\r
a13899c5 117\r
118 **/\r
78b5fb82 119public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListener, TreeSelectionListener,\r
120 MenuListener {\r
a13899c5 121 ///\r
122 /// Define class Serial Version UID\r
123 ///\r
124 private static final long serialVersionUID = -7103240960573031772L;\r
14a32a70 125 \r
126 //\r
127 // Set ToolTipText Show Time\r
128 //\r
c942b0e8 129 static { ToolTipManager.sharedInstance().setDismissDelay(18000); }\r
92e29378 130\r
43dc3851 131 ///\r
739c6b04 132 /// Used to record current operation target\r
43dc3851 133 ///\r
a13899c5 134 private int currentOpeningModuleIndex = -1;\r
135\r
136 private int currentOpeningPackageIndex = -1;\r
137\r
138 private int currentOpeningPlatformIndex = -1;\r
139\r
43dc3851 140 ///\r
141 /// Used to generate tree structure\r
142 ///\r
a13899c5 143 private IDefaultMutableTreeNode dmtnRoot = null;\r
144\r
145 private IDefaultMutableTreeNode dmtnModuleDescription = null;\r
146\r
147 private IDefaultMutableTreeNode dmtnPackageDescription = null;\r
148\r
149 private IDefaultMutableTreeNode dmtnPlatformDescription = null;\r
150\r
43dc3851 151 ///\r
152 /// Used for UI\r
153 ///\r
a13899c5 154 private JPanel jContentPane = null;\r
155\r
156 private JMenuBar jMenuBar = null;\r
157\r
158 private JMenu jMenuFile = null;\r
159\r
160 private JMenuItem jMenuItemFileNew = null;\r
161\r
4917d9dd 162 private JMenuItem jMenuItemFileRefresh = null;\r
163\r
a13899c5 164 private JMenuItem jMenuItemFileSaveAs = null;\r
165\r
166 private JMenuItem jMenuItemFileExit = null;\r
167\r
168 private JMenu jMenuEdit = null;\r
169\r
170 private JDesktopPane jDesktopPaneModule = null;\r
171\r
172 private JDesktopPane jDesktopPanePackage = null;\r
173\r
174 private JDesktopPane jDesktopPanePlatform = null;\r
175\r
176 private JTabbedPane jTabbedPaneTree = null;\r
177\r
178 private JTabbedPane jTabbedPaneEditor = null;\r
179\r
180 private IDesktopManager iDesktopManager = new IDesktopManager();\r
181\r
182 private JScrollPane jScrollPaneTree = null;\r
183\r
184 private ITree iTree = null;\r
185\r
186 private JMenu jMenuHelp = null;\r
187\r
188 private JMenuItem jMenuItemHelpAbout = null;\r
189\r
190 private JMenuItem jMenuItemEditDelete = null;\r
191\r
192 private WorkspaceTools wt = new WorkspaceTools();\r
193\r
194 private JMenuItem jMenuItemFileSave = null;\r
195\r
196 private JMenuItem jMenuItemFileClose = null;\r
197\r
198 private JMenu jMenuTools = null;\r
199\r
200 private JMenu jMenuWindow = null;\r
201\r
202 private JPanel jPanelOperation = null;\r
203\r
204 private JButton jButtonOk = null;\r
205\r
206 private JButton jButtonCancel = null;\r
207\r
208 private JMenuItem jMenuItemFileOpen = null;\r
209\r
210 private JMenuItem jMenuItemFileCloseAll = null;\r
211\r
212 private JMenuItem jMenuItemFileSaveAll = null;\r
213\r
214 private JMenuItem jMenuItemFilePageSetup = null;\r
215\r
216 private JMenuItem jMenuItemFilePrint = null;\r
217\r
218 private JMenuItem jMenuItemFileImport = null;\r
219\r
220 private JMenuItem jMenuItemFileProperties = null;\r
221\r
222 private JMenu jMenuFileRecentFiles = null;\r
223\r
224 private JSplitPane jSplitPane = null;\r
225\r
226 private JMenuItem jMenuItemEditUndo = null;\r
227\r
228 private JMenuItem jMenuItemEditRedo = null;\r
229\r
230 private JMenuItem jMenuItemEditCut = null;\r
231\r
232 private JMenuItem jMenuItemEditCopy = null;\r
233\r
234 private JMenuItem jMenuItemEditPaste = null;\r
235\r
236 private JMenuItem jMenuItemEditSelectAll = null;\r
237\r
a13899c5 238 private JMenuItem jMenuItemEditFindNext = null;\r
239\r
240 private JMenu jMenuView = null;\r
241\r
242 private JMenu jMenuViewToolbars = null;\r
243\r
244 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile = null;\r
245\r
246 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit = null;\r
247\r
248 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow = null;\r
249\r
250 private JMenuItem jMenuItemViewStandard = null;\r
251\r
252 private JMenuItem jMenuItemViewAdvanced = null;\r
253\r
254 private JMenu jMenuProject = null;\r
255\r
256 private JMenuItem jMenuItemProjectAdmin = null;\r
257\r
258 private JMenuItem jMenuItemProjectChangeWorkspace = null;\r
259\r
dbf5dd75 260 private JMenuItem jMenuItemToolsBuildPreferences = null;\r
a13899c5 261\r
55e83b18 262 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;\r
a13899c5 263\r
55e83b18 264 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;\r
a13899c5 265\r
266 private JMenuItem jMenuItemToolsToolChainConfiguration = null;\r
267\r
268 private JMenuItem jMenuItemToolsClone = null;\r
269\r
270 private JMenuItem jMenuItemToolsCodeScan = null;\r
271\r
272 private JMenuItem jMenuItemWindowDisplaySide = null;\r
273\r
274 private JMenuItem jMenuItemWindowDisplayTopBottom = null;\r
275\r
276 private JMenuItem jMenuItemViewXML = null;\r
277\r
278 private JMenuItem jMenuItemWindowTabView = null;\r
279\r
280 private JMenuItem jMenuItemWindowSource = null;\r
281\r
282 private JMenuItem jMenuItemWindowXML = null;\r
283\r
284 private JMenuItem jMenuItemWindowPreferences = null;\r
285\r
286 private JMenuItem jMenuItemHelpContents = null;\r
287\r
288 private JMenuItem jMenuItemHelpIndex = null;\r
289\r
290 private JMenuItem jMenuItemHelpSearch = null;\r
291\r
92e29378 292 private JMenuItem jMenuItemProjectInstallFar = null;\r
a13899c5 293\r
92e29378 294 private JMenuItem jMenuItemProjectUpdateFar = null;\r
a13899c5 295\r
92e29378 296 private JMenuItem jMenuItemProjectRemoveFar = null;\r
a13899c5 297\r
43dc3851 298 private JMenuItem jMenuItemProjectCreateFar = null;\r
92e29378 299\r
8792f60f 300 private JMenu jMenuEditFind = null;\r
301\r
302 private JMenuItem jMenuItemEditFindPcd = null;\r
303\r
304 private JMenuItem jMenuItemEditFindLibraryClass = null;\r
305\r
306 private JMenuItem jMenuItemEditFindPpi = null;\r
307\r
308 private JMenuItem jMenuItemEditFindProtocol = null;\r
309\r
310 private JMenuItem jMenuItemEditFindGuid = null;\r
311\r
312 private JMenuItem jMenuItemEditFindLibraryInstance = null;\r
313\r
43dc3851 314 ///\r
315 /// A static definition for this class itself\r
316 ///\r
8f4f211c 317 private static FrameworkWizardUI fwui = null;\r
92e29378 318\r
b63cc1b6 319 private JMenuItem jMenuItemToolsGenerateGuidsXref = null;\r
320\r
43dc3851 321 /**\r
322 If the class hasn't an instnace, new one.\r
323 \r
324 @return FrameworkWizardUI The instance of this class\r
325 \r
326 **/\r
9e011eac 327 public static FrameworkWizardUI getInstance(String[] args) {\r
8f4f211c 328 if (fwui == null) {\r
9e011eac 329 fwui = new FrameworkWizardUI(args);\r
8f4f211c 330 }\r
331 return fwui;\r
332 }\r
9e011eac 333 \r
334 /**\r
335 If the class hasn't an instnace, new one.\r
336 \r
337 @return FrameworkWizardUI The instance of this class\r
338 \r
339 **/\r
340 public static FrameworkWizardUI getInstance() {\r
341 return fwui;\r
342 }\r
a13899c5 343\r
344 /**\r
345 This method initializes jMenuBar \r
346 \r
347 @return javax.swing.JMenuBar Main menu bar for the entire GUI\r
348 \r
349 **/\r
350 private JMenuBar getjJMenuBar() {\r
351 if (jMenuBar == null) {\r
352 jMenuBar = new JMenuBar();\r
353 jMenuBar.setPreferredSize(new java.awt.Dimension(0, 18));\r
354 jMenuBar.add(getJMenuFile());\r
355 jMenuBar.add(getJMenuEdit());\r
356 jMenuBar.add(getJMenuView());\r
357 jMenuBar.add(getJMenuProject());\r
358 jMenuBar.add(getJMenuTools());\r
359 jMenuBar.add(getJMenuWindow());\r
360 jMenuBar.add(getJMenuHelp());\r
361 }\r
362 return jMenuBar;\r
363 }\r
364\r
365 /**\r
366 This method initializes jSplitPane\r
367 \r
368 @return javax.swing.JSplitPane\r
369 \r
370 **/\r
371 private JSplitPane getJSplitPane() {\r
372 if (jSplitPane == null) {\r
373 jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, getJTabbedPaneTree(), getJTabbedPaneEditor());\r
374 jSplitPane.setBounds(new java.awt.Rectangle(0, 1, DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH,\r
375 DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT));\r
376 jSplitPane.addComponentListener(this);\r
377 }\r
378 return jSplitPane;\r
379 }\r
380\r
381 /**\r
382 This method initializes jTabbedPaneEditor \r
383 \r
384 @return javax.swing.JTabbedPane \r
385 \r
43dc3851 386 **/\r
a13899c5 387 private JTabbedPane getJTabbedPaneEditor() {\r
388 if (jTabbedPaneEditor == null) {\r
389 jTabbedPaneEditor = new JTabbedPane();\r
390 jTabbedPaneEditor.setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
391 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
392 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
393 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
394 jTabbedPaneEditor\r
395 .setMinimumSize(new java.awt.Dimension(\r
396 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
397 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
a13899c5 398 jTabbedPaneEditor.addTab("Module", null, getJDesktopPaneModule(), null);\r
399 jTabbedPaneEditor.addTab("Package", null, getJDesktopPanePackage(), null);\r
400 jTabbedPaneEditor.addTab("Platform", null, getJDesktopPanePlatform(), null);\r
401 }\r
402 return jTabbedPaneEditor;\r
403 }\r
404\r
405 /**\r
406 This method initializes jTabbedPaneTree\r
407 \r
408 @return javax.swing.JTabbedPane \r
409 \r
43dc3851 410 **/\r
a13899c5 411 private JTabbedPane getJTabbedPaneTree() {\r
412 if (jTabbedPaneTree == null) {\r
413 jTabbedPaneTree = new JTabbedPane();\r
414 jTabbedPaneTree\r
415 .setPreferredSize(new java.awt.Dimension(\r
416 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
417 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
418 jTabbedPaneTree\r
419 .setMinimumSize(new java.awt.Dimension(DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
420 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
421 jTabbedPaneTree.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);\r
422 }\r
423 return jTabbedPaneTree;\r
424 }\r
425\r
426 /**\r
427 This method initializes jMenuFile \r
428 \r
429 @return javax.swing.JMenu jMenuModule\r
430 \r
431 **/\r
432 private JMenu getJMenuFile() {\r
433 if (jMenuFile == null) {\r
43dc3851 434 //\r
435 // Set jMenuFile's attributes\r
436 //\r
a13899c5 437 jMenuFile = new JMenu();\r
438 jMenuFile.setText("File");\r
439 jMenuFile.setMnemonic('F');\r
43dc3851 440 jMenuFile.addMenuListener(this);\r
441\r
442 //\r
443 // Add sub menu items\r
444 //\r
a13899c5 445 jMenuFile.add(getJMenuItemFileNew());\r
446 jMenuFile.add(getJMenuItemFileOpen());\r
447 jMenuFile.add(getJMenuItemFileClose());\r
448 jMenuFile.add(getJMenuItemFileCloseAll());\r
449 jMenuFile.addSeparator();\r
43dc3851 450\r
a13899c5 451 jMenuFile.add(getJMenuFileRecentFiles());\r
a13899c5 452 jMenuFile.add(getJMenuItemFileSave());\r
453 jMenuFile.add(getJMenuItemFileSaveAs());\r
454 jMenuFile.add(getJMenuItemFileSaveAll());\r
455 jMenuFile.addSeparator();\r
b63cc1b6 456\r
4917d9dd 457 jMenuFile.add(getJMenuItemFileRefresh());\r
458 jMenuFile.addSeparator();\r
43dc3851 459\r
a13899c5 460 jMenuFile.add(getJMenuItemFilePageSetup());\r
461 jMenuFile.add(getJMenuItemFilePrint());\r
a13899c5 462 jMenuFile.add(getJMenuItemFileImport());\r
a13899c5 463 jMenuFile.add(getJMenuItemFileProperties());\r
43dc3851 464\r
a13899c5 465 jMenuFile.add(getJMenuItemFileExit());\r
a13899c5 466 }\r
467 return jMenuFile;\r
468 }\r
469\r
470 /**\r
471 This method initializes jMenuItemFileSaveAs \r
472 \r
473 @return javax.swing.JMenuItem jMenuItemFileSaveAs\r
474 \r
475 **/\r
476 private JMenuItem getJMenuItemFileSaveAs() {\r
477 if (jMenuItemFileSaveAs == null) {\r
478 jMenuItemFileSaveAs = new JMenuItem();\r
479 jMenuItemFileSaveAs.setText("Save As...");\r
480 jMenuItemFileSaveAs.setMnemonic('a');\r
481 jMenuItemFileSaveAs.addActionListener(this);\r
482 jMenuItemFileSaveAs.setEnabled(false);\r
483 jMenuItemFileSaveAs.setVisible(false);\r
484 }\r
485 return jMenuItemFileSaveAs;\r
486 }\r
487\r
4917d9dd 488 /**\r
489 This method initializes jMenuItemFileRefresh \r
490 \r
491 @return javax.swing.JMenuItem jMenuItemFileRefresh\r
492 \r
493 **/\r
494 private JMenuItem getJMenuItemFileRefresh() {\r
495 if (jMenuItemFileRefresh == null) {\r
496 jMenuItemFileRefresh = new JMenuItem();\r
497 jMenuItemFileRefresh.setText("Refresh");\r
498 jMenuItemFileRefresh.setMnemonic('R');\r
499 jMenuItemFileRefresh.addActionListener(this);\r
500 jMenuItemFileRefresh.setVisible(true);\r
501 }\r
502 return jMenuItemFileRefresh;\r
503 }\r
504\r
a13899c5 505 /**\r
506 This method initializes jMenuItemModuleExit \r
507 \r
508 @return javax.swing.JMenuItem jMenuItemModuleExit\r
509 \r
510 **/\r
511 private JMenuItem getJMenuItemFileExit() {\r
512 if (jMenuItemFileExit == null) {\r
513 jMenuItemFileExit = new JMenuItem();\r
514 jMenuItemFileExit.setText("Exit");\r
515 jMenuItemFileExit.setMnemonic('x');\r
516 jMenuItemFileExit.addActionListener(this);\r
517 }\r
518 return jMenuItemFileExit;\r
519 }\r
520\r
521 /**\r
522 This method initializes jMenuEdit \r
523 \r
524 @return javax.swing.JMenu jMenuEdit\r
525 \r
526 **/\r
527 private JMenu getJMenuEdit() {\r
528 if (jMenuEdit == null) {\r
43dc3851 529 //\r
530 // Set jMenuEdit's attributes\r
531 //\r
a13899c5 532 jMenuEdit = new JMenu();\r
533 jMenuEdit.setText("Edit");\r
534 jMenuEdit.setMnemonic('E');\r
55e83b18 535 jMenuEdit.setVisible(true);\r
43dc3851 536\r
537 //\r
538 // Add sub menu items\r
539 //\r
a13899c5 540 jMenuEdit.add(getJMenuItemEditUndo());\r
541 jMenuEdit.add(getJMenuItemEditRedo());\r
8792f60f 542 //jMenuEdit.addSeparator();\r
43dc3851 543\r
a13899c5 544 jMenuEdit.add(getJMenuItemEditCut());\r
545 jMenuEdit.add(getJMenuItemEditCopy());\r
546 jMenuEdit.add(getJMenuItemEditPaste());\r
547 jMenuEdit.add(getJMenuItemEditDelete());\r
8792f60f 548 //jMenuEdit.addSeparator();\r
43dc3851 549\r
a13899c5 550 jMenuEdit.add(getJMenuItemEditSelectAll());\r
8792f60f 551 jMenuEdit.add(getJMenuEditFind());\r
a13899c5 552 jMenuEdit.add(getJMenuItemEditFindNext());\r
8792f60f 553 //jMenuEdit.addSeparator();\r
a13899c5 554 }\r
555 return jMenuEdit;\r
556 }\r
557\r
558 /**\r
559 This method initializes jDesktopPane \r
560 \r
561 @return javax.swing.JDesktopPane jDesktopPane\r
562 \r
563 **/\r
564 private JDesktopPane getJDesktopPaneModule() {\r
565 if (jDesktopPaneModule == null) {\r
566 jDesktopPaneModule = new JDesktopPane();\r
567 jDesktopPaneModule\r
568 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
569 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
570 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
571 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
572 jDesktopPaneModule\r
573 .setMinimumSize(new java.awt.Dimension(\r
574 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
575 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
576 jDesktopPaneModule.setDesktopManager(iDesktopManager);\r
577 jDesktopPaneModule.addComponentListener(this);\r
578 }\r
579 return jDesktopPaneModule;\r
580 }\r
581\r
582 /**\r
583 This method initializes jDesktopPane \r
584 \r
585 @return javax.swing.JDesktopPane jDesktopPane\r
586 \r
587 **/\r
588 private JDesktopPane getJDesktopPanePackage() {\r
589 if (jDesktopPanePackage == null) {\r
590 jDesktopPanePackage = new JDesktopPane();\r
591 jDesktopPanePackage\r
592 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
593 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
594 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
595 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
596 jDesktopPanePackage\r
597 .setMinimumSize(new java.awt.Dimension(\r
598 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
599 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
600 jDesktopPanePackage.setDesktopManager(iDesktopManager);\r
601 jDesktopPanePackage.addComponentListener(this);\r
602 }\r
603 return jDesktopPanePackage;\r
604 }\r
605\r
606 /**\r
607 This method initializes jDesktopPane \r
608 \r
609 @return javax.swing.JDesktopPane jDesktopPane\r
610 \r
611 **/\r
612 private JDesktopPane getJDesktopPanePlatform() {\r
613 if (jDesktopPanePlatform == null) {\r
614 jDesktopPanePlatform = new JDesktopPane();\r
615 jDesktopPanePlatform\r
616 .setBounds(new java.awt.Rectangle(\r
617 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,\r
618 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,\r
619 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
620 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
621 jDesktopPanePlatform\r
622 .setMinimumSize(new java.awt.Dimension(\r
623 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,\r
624 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));\r
625 jDesktopPanePlatform.setDesktopManager(iDesktopManager);\r
626 jDesktopPanePlatform.addComponentListener(this);\r
627 }\r
628 return jDesktopPanePlatform;\r
629 }\r
630\r
631 /**\r
632 This method initializes jScrollPaneTree \r
633 \r
634 @return javax.swing.JScrollPane jScrollPaneTree\r
635 \r
636 **/\r
637 private JScrollPane getJScrollPaneTree() {\r
638 if (jScrollPaneTree == null) {\r
639 jScrollPaneTree = new JScrollPane();\r
a13899c5 640 jScrollPaneTree\r
641 .setPreferredSize(new java.awt.Dimension(\r
642 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,\r
643 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
644 jScrollPaneTree\r
645 .setMinimumSize(new java.awt.Dimension(\r
646 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH / 2,\r
647 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));\r
648 jScrollPaneTree.setViewportView(getITree());\r
649 }\r
650 return jScrollPaneTree;\r
651 }\r
652\r
653 /**\r
654 This method initializes iTree \r
655 \r
656 @return org.tianocore.packaging.common.ui.ITree iTree\r
657 \r
658 **/\r
659 private ITree getITree() {\r
660 //\r
661 //Before open a real module, use an empty root node for the tree\r
662 //\r
663 makeEmptyTree();\r
664 return iTree;\r
665 }\r
666\r
667 /**\r
668 This method initializes jMenuHelp \r
669 \r
670 @return javax.swing.JMenu jMenuHelp\r
671 \r
672 **/\r
673 private JMenu getJMenuHelp() {\r
674 if (jMenuHelp == null) {\r
43dc3851 675 //\r
676 // Set jMenuHelp's attributes\r
677 //\r
a13899c5 678 jMenuHelp = new JMenu();\r
679 jMenuHelp.setText("Help");\r
4917d9dd 680 jMenuHelp.setMnemonic('H');\r
43dc3851 681\r
682 //\r
683 // Add sub menu items\r
684 //\r
a13899c5 685 jMenuHelp.add(getJMenuItemHelpContents());\r
686 jMenuHelp.add(getJMenuItemHelpIndex());\r
687 jMenuHelp.add(getJMenuItemHelpSearch());\r
43dc3851 688\r
a13899c5 689 jMenuHelp.add(getJMenuItemHelpAbout());\r
690 }\r
691 return jMenuHelp;\r
692 }\r
693\r
694 /**\r
695 This method initializes jMenuItemHelpAbout \r
696 \r
697 @return javax.swing.JMenuItem jMenuItemHelpAbout\r
698 \r
699 **/\r
700 private JMenuItem getJMenuItemHelpAbout() {\r
701 if (jMenuItemHelpAbout == null) {\r
702 jMenuItemHelpAbout = new JMenuItem();\r
57046e97 703 jMenuItemHelpAbout.setText("About");\r
4917d9dd 704 jMenuItemHelpAbout.setMnemonic('A');\r
a13899c5 705 jMenuItemHelpAbout.addActionListener(this);\r
706 }\r
707 return jMenuItemHelpAbout;\r
708 }\r
709\r
710 /**\r
711 This method initializes jMenuItemEditDelete \r
712 \r
713 @return javax.swing.JMenuItem jMenuItemEditDelete\r
714 \r
715 **/\r
716 private JMenuItem getJMenuItemEditDelete() {\r
717 if (jMenuItemEditDelete == null) {\r
718 jMenuItemEditDelete = new JMenuItem();\r
719 jMenuItemEditDelete.setText("Delete");\r
720 jMenuItemEditDelete.setMnemonic('D');\r
8792f60f 721 jMenuItemEditDelete.setVisible(false);\r
722 jMenuItemEditDelete.setEnabled(false);\r
a13899c5 723 jMenuItemEditDelete.addActionListener(this);\r
724 //\r
43dc3851 725 //Disabled first when no module is open\r
a13899c5 726 //\r
727 jMenuItemEditDelete.setEnabled(false);\r
728 }\r
729 return jMenuItemEditDelete;\r
730 }\r
731\r
a13899c5 732 /**\r
733 This method initializes jMenuFileNew \r
734 \r
735 @return javax.swing.JMenuItem jMenuFileNew\r
736 \r
737 **/\r
738 private JMenuItem getJMenuItemFileNew() {\r
739 if (jMenuItemFileNew == null) {\r
740 jMenuItemFileNew = new JMenuItem();\r
741 jMenuItemFileNew.setText("New...");\r
742 jMenuItemFileNew.setMnemonic('N');\r
743 jMenuItemFileNew.addActionListener(this);\r
744 }\r
745 return jMenuItemFileNew;\r
746 }\r
747\r
748 /**\r
749 This method initializes jMenuItemFileSave \r
750 \r
751 @return javax.swing.JMenuItem jMenuItemModuleSave\r
752 \r
753 **/\r
754 private JMenuItem getJMenuItemFileSave() {\r
755 if (jMenuItemFileSave == null) {\r
756 jMenuItemFileSave = new JMenuItem();\r
757 jMenuItemFileSave.setText("Save");\r
758 jMenuItemFileSave.setMnemonic('S');\r
759 jMenuItemFileSave.addActionListener(this);\r
760 jMenuItemFileSave.setEnabled(true);\r
761 }\r
762 return jMenuItemFileSave;\r
763 }\r
764\r
765 /**\r
766 This method initializes jMenuItemModuleClose \r
767 \r
768 @return javax.swing.JMenuItem jMenuItemModuleClose\r
769 \r
770 **/\r
771 private JMenuItem getJMenuItemFileClose() {\r
772 if (jMenuItemFileClose == null) {\r
773 jMenuItemFileClose = new JMenuItem();\r
774 jMenuItemFileClose.setText("Close");\r
775 jMenuItemFileClose.setMnemonic('C');\r
776 jMenuItemFileClose.setEnabled(true);\r
777 jMenuItemFileClose.addActionListener(this);\r
778 }\r
779 return jMenuItemFileClose;\r
780 }\r
781\r
782 /**\r
783 This method initializes jMenuTools\r
784 Reserved \r
785 \r
786 @return javax.swing.JMenu jMenuTools\r
787 \r
788 **/\r
789 private JMenu getJMenuTools() {\r
790 if (jMenuTools == null) {\r
43dc3851 791 //\r
792 // Set jMenuTools's attributes\r
793 //\r
a13899c5 794 jMenuTools = new JMenu();\r
795 jMenuTools.setText("Tools");\r
796 jMenuTools.setMnemonic('T');\r
43dc3851 797 jMenuTools.addMenuListener(this);\r
798\r
799 //\r
800 // Add sub menu items\r
801 //\r
43dc3851 802\r
a13899c5 803 jMenuTools.add(getJMenuItemToolsClone());\r
a13899c5 804 jMenuTools.add(getJMenuItemToolsCodeScan());\r
dbf5dd75 805 jMenuTools.addSeparator();\r
55e83b18 806\r
dbf5dd75 807 jMenuTools.add(getJMenuItemToolsToolChainConfiguration());\r
808 jMenuTools.add(getJMenuItemToolsBuildPreferences());\r
b63cc1b6 809 jMenuTools.addSeparator();\r
810\r
811 jMenuTools.add(getJMenuItemToolsGenerateGuidsXref());\r
a13899c5 812 }\r
813 return jMenuTools;\r
814 }\r
815\r
816 /**\r
817 This method initializes jMenuWindow \r
818 Reserved\r
819 \r
820 @return javax.swing.JMenu jMenuWindow\r
821 \r
822 **/\r
823 private JMenu getJMenuWindow() {\r
824 if (jMenuWindow == null) {\r
43dc3851 825 //\r
826 // Set jMenuWindow's attribute\r
827 //\r
a13899c5 828 jMenuWindow = new JMenu();\r
829 jMenuWindow.setText("Window");\r
830 jMenuWindow.setMnemonic('W');\r
43dc3851 831 jMenuWindow.setVisible(false);\r
832\r
833 //\r
834 // Add sub menu items\r
835 //\r
a13899c5 836 jMenuWindow.add(getJMenuItemWindowDisplaySide());\r
837 jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());\r
838 jMenuWindow.addSeparator();\r
43dc3851 839\r
a13899c5 840 jMenuWindow.add(getJMenuItemWindowTabView());\r
841 jMenuWindow.addSeparator();\r
43dc3851 842\r
a13899c5 843 jMenuWindow.add(getJMenuItemWindowSource());\r
844 jMenuWindow.add(getJMenuItemWindowXML());\r
845 jMenuWindow.addSeparator();\r
43dc3851 846\r
a13899c5 847 jMenuWindow.add(getJMenuItemWindowPreferences());\r
a13899c5 848 }\r
849 return jMenuWindow;\r
850 }\r
851\r
852 /**\r
43dc3851 853 This method initializes jPanelOperation\r
854 Reserved\r
a13899c5 855 \r
856 @return javax.swing.JPanel jPanelOperation\r
857 \r
858 **/\r
859 private JPanel getJPanelOperation() {\r
860 if (jPanelOperation == null) {\r
861 jPanelOperation = new JPanel();\r
862 jPanelOperation.setLayout(null);\r
863 jPanelOperation.setBounds(new java.awt.Rectangle(295, 520, 500, 25));\r
864 jPanelOperation.add(getJButtonOk(), null);\r
865 jPanelOperation.add(getJButtonCancel(), null);\r
866 jPanelOperation.setVisible(false);\r
867 }\r
868 return jPanelOperation;\r
869 }\r
870\r
871 /**\r
43dc3851 872 This method initializes jButtonOk\r
873 Reserved\r
a13899c5 874 \r
875 @return javax.swing.JButton jButtonOk\r
876 \r
877 **/\r
878 private JButton getJButtonOk() {\r
879 if (jButtonOk == null) {\r
880 jButtonOk = new JButton();\r
881 jButtonOk.setBounds(new java.awt.Rectangle(395, 2, 90, 20));\r
882 jButtonOk.setText("Ok");\r
883 jButtonOk.setEnabled(false);\r
884 jButtonOk.addActionListener(this);\r
885 }\r
886 return jButtonOk;\r
887 }\r
888\r
889 /**\r
43dc3851 890 This method initializes jButtonCancel\r
891 Reserved\r
a13899c5 892 \r
893 @return javax.swing.JButton jButtonCancel\r
894 \r
895 **/\r
896 private JButton getJButtonCancel() {\r
897 if (jButtonCancel == null) {\r
898 jButtonCancel = new JButton();\r
899 jButtonCancel.setBounds(new java.awt.Rectangle(395, 2, 90, 20));\r
900 jButtonCancel.setText("Cancel");\r
901 jButtonCancel.setEnabled(false);\r
902 jButtonCancel.addActionListener(this);\r
903 jButtonCancel.setVisible(false);\r
904 }\r
905 return jButtonCancel;\r
906 }\r
907\r
908 /**\r
909 This method initializes jMenuItemFileOpen \r
910 \r
911 @return javax.swing.JMenuItem jMenuItemFileOpen\r
43dc3851 912 \r
913 **/\r
a13899c5 914 private JMenuItem getJMenuItemFileOpen() {\r
915 if (jMenuItemFileOpen == null) {\r
916 jMenuItemFileOpen = new JMenuItem();\r
917 jMenuItemFileOpen.setText("Open...");\r
918 jMenuItemFileOpen.setMnemonic('O');\r
919 jMenuItemFileOpen.addActionListener(this);\r
920 }\r
921 return jMenuItemFileOpen;\r
922 }\r
923\r
924 /**\r
925 This method initializes jMenuItemFileCloseAll \r
926 \r
927 @return javax.swing.JMenuItem jMenuItemFileOpen\r
43dc3851 928 \r
929 **/\r
a13899c5 930 private JMenuItem getJMenuItemFileCloseAll() {\r
931 if (jMenuItemFileCloseAll == null) {\r
932 jMenuItemFileCloseAll = new JMenuItem();\r
933 jMenuItemFileCloseAll.setText("Close All");\r
4917d9dd 934 jMenuItemFileCloseAll.setMnemonic('A');\r
a13899c5 935 jMenuItemFileCloseAll.setEnabled(true);\r
936 jMenuItemFileCloseAll.addActionListener(this);\r
937 }\r
938 return jMenuItemFileCloseAll;\r
939 }\r
940\r
941 /**\r
942 This method initializes jMenuItemFileSaveAll \r
943 \r
944 @return javax.swing.JMenuItem jMenuItemFileSaveAll\r
43dc3851 945 \r
946 **/\r
a13899c5 947 private JMenuItem getJMenuItemFileSaveAll() {\r
948 if (jMenuItemFileSaveAll == null) {\r
949 jMenuItemFileSaveAll = new JMenuItem();\r
950 jMenuItemFileSaveAll.setText("Save All");\r
951 jMenuItemFileSaveAll.setMnemonic('v');\r
952 jMenuItemFileSaveAll.setEnabled(true);\r
953 jMenuItemFileSaveAll.addActionListener(this);\r
954 }\r
955 return jMenuItemFileSaveAll;\r
956 }\r
957\r
958 /**\r
959 This method initializes jMenuItemFilePageSetup \r
960 \r
961 @return javax.swing.JMenuItem \r
43dc3851 962 \r
963 **/\r
a13899c5 964 private JMenuItem getJMenuItemFilePageSetup() {\r
965 if (jMenuItemFilePageSetup == null) {\r
966 jMenuItemFilePageSetup = new JMenuItem();\r
967 jMenuItemFilePageSetup.setText("Page Setup");\r
968 jMenuItemFilePageSetup.setMnemonic('u');\r
969 jMenuItemFilePageSetup.setEnabled(false);\r
970 jMenuItemFilePageSetup.addActionListener(this);\r
971 jMenuItemFilePageSetup.setVisible(false);\r
972 }\r
973 return jMenuItemFilePageSetup;\r
974 }\r
975\r
976 /**\r
977 This method initializes jMenuItemFilePrint \r
978 \r
979 @return javax.swing.JMenuItem \r
43dc3851 980 \r
981 **/\r
a13899c5 982 private JMenuItem getJMenuItemFilePrint() {\r
983 if (jMenuItemFilePrint == null) {\r
984 jMenuItemFilePrint = new JMenuItem();\r
985 jMenuItemFilePrint.setText("Print");\r
986 jMenuItemFilePrint.setMnemonic('P');\r
987 jMenuItemFilePrint.setEnabled(false);\r
988 jMenuItemFilePrint.addActionListener(this);\r
989 jMenuItemFilePrint.setVisible(false);\r
990 }\r
991 return jMenuItemFilePrint;\r
992 }\r
993\r
994 /**\r
995 This method initializes jMenuItemFileImport \r
996 \r
997 @return javax.swing.JMenuItem \r
43dc3851 998 \r
999 **/\r
a13899c5 1000 private JMenuItem getJMenuItemFileImport() {\r
1001 if (jMenuItemFileImport == null) {\r
1002 jMenuItemFileImport = new JMenuItem();\r
1003 jMenuItemFileImport.setText("Import");\r
1004 jMenuItemFileImport.setMnemonic('I');\r
1005 jMenuItemFileImport.setEnabled(false);\r
1006 jMenuItemFileImport.addActionListener(this);\r
1007 jMenuItemFileImport.setVisible(false);\r
1008 }\r
1009 return jMenuItemFileImport;\r
1010 }\r
1011\r
1012 /**\r
43dc3851 1013 This method initializes jMenuItemFileProperties \r
1014 \r
1015 @return javax.swing.JMenuItem \r
1016 \r
1017 **/\r
a13899c5 1018 private JMenuItem getJMenuItemFileProperties() {\r
1019 if (jMenuItemFileProperties == null) {\r
1020 jMenuItemFileProperties = new JMenuItem();\r
1021 jMenuItemFileProperties.setText("Properties");\r
1022 jMenuItemFileProperties.setMnemonic('t');\r
1023 jMenuItemFileProperties.setEnabled(false);\r
1024 jMenuItemFileProperties.addActionListener(this);\r
1025 jMenuItemFileProperties.setVisible(false);\r
1026 }\r
1027 return jMenuItemFileProperties;\r
1028 }\r
1029\r
1030 /**\r
43dc3851 1031 This method initializes jMenuFileRecentFiles \r
1032 \r
1033 @return javax.swing.JMenu \r
1034 \r
1035 **/\r
a13899c5 1036 private JMenu getJMenuFileRecentFiles() {\r
1037 if (jMenuFileRecentFiles == null) {\r
1038 jMenuFileRecentFiles = new JMenu();\r
1039 jMenuFileRecentFiles.setText("Recent Files");\r
1040 jMenuFileRecentFiles.setMnemonic('F');\r
1041 jMenuFileRecentFiles.setEnabled(false);\r
1042 jMenuFileRecentFiles.addActionListener(this);\r
1043 jMenuFileRecentFiles.setVisible(false);\r
1044 }\r
1045 return jMenuFileRecentFiles;\r
1046 }\r
1047\r
1048 /**\r
1049 This method initializes jMenuItemEditUndo \r
1050 \r
43dc3851 1051 @return javax.swing.JMenuItem\r
1052 \r
1053 **/\r
a13899c5 1054 private JMenuItem getJMenuItemEditUndo() {\r
1055 if (jMenuItemEditUndo == null) {\r
1056 jMenuItemEditUndo = new JMenuItem();\r
1057 jMenuItemEditUndo.setText("Undo");\r
1058 jMenuItemEditUndo.setMnemonic('U');\r
1059 jMenuItemEditUndo.setEnabled(false);\r
8792f60f 1060 jMenuItemEditUndo.setVisible(false);\r
a13899c5 1061 jMenuItemEditUndo.addActionListener(this);\r
1062 }\r
1063 return jMenuItemEditUndo;\r
1064 }\r
1065\r
1066 /**\r
1067 This method initializes jMenuItemEditRedo \r
1068 \r
1069 @return javax.swing.JMenuItem \r
43dc3851 1070 \r
1071 **/\r
a13899c5 1072 private JMenuItem getJMenuItemEditRedo() {\r
1073 if (jMenuItemEditRedo == null) {\r
1074 jMenuItemEditRedo = new JMenuItem();\r
1075 jMenuItemEditRedo.setText("Redo");\r
1076 jMenuItemEditRedo.setMnemonic('R');\r
1077 jMenuItemEditRedo.setEnabled(false);\r
8792f60f 1078 jMenuItemEditRedo.setVisible(false);\r
a13899c5 1079 jMenuItemEditRedo.addActionListener(this);\r
1080 }\r
1081 return jMenuItemEditRedo;\r
1082 }\r
1083\r
1084 /**\r
1085 This method initializes jMenuItemEditCut \r
1086 \r
1087 @return javax.swing.JMenuItem \r
43dc3851 1088 \r
1089 **/\r
a13899c5 1090 private JMenuItem getJMenuItemEditCut() {\r
1091 if (jMenuItemEditCut == null) {\r
1092 jMenuItemEditCut = new JMenuItem();\r
1093 jMenuItemEditCut.setText("Cut");\r
1094 jMenuItemEditCut.setMnemonic('t');\r
1095 jMenuItemEditCut.setEnabled(false);\r
8792f60f 1096 jMenuItemEditCut.setVisible(false);\r
a13899c5 1097 jMenuItemEditCut.addActionListener(this);\r
1098 }\r
1099 return jMenuItemEditCut;\r
1100 }\r
1101\r
1102 /**\r
1103 This method initializes jMenuItemEditCopy \r
1104 \r
1105 @return javax.swing.JMenuItem \r
43dc3851 1106 \r
1107 **/\r
a13899c5 1108 private JMenuItem getJMenuItemEditCopy() {\r
1109 if (jMenuItemEditCopy == null) {\r
1110 jMenuItemEditCopy = new JMenuItem();\r
1111 jMenuItemEditCopy.setText("Copy");\r
1112 jMenuItemEditCopy.setMnemonic('C');\r
1113 jMenuItemEditCopy.setEnabled(false);\r
8792f60f 1114 jMenuItemEditCopy.setVisible(false);\r
a13899c5 1115 jMenuItemEditCopy.addActionListener(this);\r
1116 }\r
1117 return jMenuItemEditCopy;\r
1118 }\r
1119\r
1120 /**\r
1121 This method initializes jMenuItemEditPaste \r
1122 \r
1123 return javax.swing.JMenuItem \r
43dc3851 1124 \r
1125 **/\r
a13899c5 1126 private JMenuItem getJMenuItemEditPaste() {\r
1127 if (jMenuItemEditPaste == null) {\r
1128 jMenuItemEditPaste = new JMenuItem();\r
1129 jMenuItemEditPaste.setText("Paste");\r
1130 jMenuItemEditPaste.setMnemonic('P');\r
1131 jMenuItemEditPaste.setEnabled(false);\r
8792f60f 1132 jMenuItemEditPaste.setVisible(false);\r
a13899c5 1133 jMenuItemEditPaste.addActionListener(this);\r
1134 }\r
1135 return jMenuItemEditPaste;\r
1136 }\r
1137\r
1138 /**\r
1139 This method initializes jMenuItem \r
1140 \r
1141 @return javax.swing.JMenuItem \r
43dc3851 1142 \r
1143 **/\r
a13899c5 1144 private JMenuItem getJMenuItemEditSelectAll() {\r
1145 if (jMenuItemEditSelectAll == null) {\r
1146 jMenuItemEditSelectAll = new JMenuItem();\r
1147 jMenuItemEditSelectAll.setText("Select All");\r
1148 jMenuItemEditSelectAll.setMnemonic('A');\r
1149 jMenuItemEditSelectAll.setEnabled(false);\r
8792f60f 1150 jMenuItemEditSelectAll.setVisible(false);\r
a13899c5 1151 jMenuItemEditSelectAll.addActionListener(this);\r
1152 }\r
1153 return jMenuItemEditSelectAll;\r
1154 }\r
1155\r
a13899c5 1156 /**\r
1157 This method initializes jMenuItemEditFindNext \r
1158 \r
1159 @return javax.swing.JMenuItem \r
1160 \r
43dc3851 1161 **/\r
a13899c5 1162 private JMenuItem getJMenuItemEditFindNext() {\r
1163 if (jMenuItemEditFindNext == null) {\r
1164 jMenuItemEditFindNext = new JMenuItem();\r
1165 jMenuItemEditFindNext.setText("Find Next");\r
1166 jMenuItemEditFindNext.setMnemonic('n');\r
1167 jMenuItemEditFindNext.setEnabled(false);\r
8792f60f 1168 jMenuItemEditFindNext.setVisible(false);\r
a13899c5 1169 jMenuItemEditFindNext.addActionListener(this);\r
1170 }\r
1171 return jMenuItemEditFindNext;\r
1172 }\r
1173\r
1174 /**\r
1175 This method initializes jMenuView \r
1176 \r
1177 @return javax.swing.JMenu \r
1178 \r
43dc3851 1179 **/\r
a13899c5 1180 private JMenu getJMenuView() {\r
1181 if (jMenuView == null) {\r
43dc3851 1182 //\r
1183 // Set jMenuView's attributes\r
1184 //\r
a13899c5 1185 jMenuView = new JMenu();\r
1186 jMenuView.setText("View");\r
1187 jMenuView.setMnemonic('V');\r
43dc3851 1188 jMenuView.setVisible(false);\r
1189\r
1190 //\r
1191 // Add sub menu items\r
1192 //\r
a13899c5 1193 jMenuView.add(getJMenuViewToolbars());\r
1194 jMenuView.add(getJMenuItemViewAdvanced());\r
1195 jMenuView.add(getJMenuItemViewStandard());\r
1196 jMenuView.add(getJMenuItemViewXML());\r
a13899c5 1197 }\r
1198 return jMenuView;\r
1199 }\r
1200\r
1201 /**\r
1202 This method initializes jMenuViewToolbars \r
1203 \r
1204 @return javax.swing.JMenu \r
1205 \r
43dc3851 1206 **/\r
a13899c5 1207 private JMenu getJMenuViewToolbars() {\r
1208 if (jMenuViewToolbars == null) {\r
1209 jMenuViewToolbars = new JMenu();\r
1210 jMenuViewToolbars.setText("Toolbars");\r
1211 jMenuViewToolbars.setMnemonic('T');\r
43dc3851 1212\r
a13899c5 1213 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsFile());\r
1214 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsEdit());\r
1215 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsWindow());\r
1216 }\r
1217 return jMenuViewToolbars;\r
1218 }\r
1219\r
1220 /**\r
1221 This method initializes jCheckBoxMenuItemViewToolbarsFile \r
1222 \r
1223 @return javax.swing.JCheckBoxMenuItem \r
1224 \r
43dc3851 1225 **/\r
a13899c5 1226 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsFile() {\r
1227 if (jCheckBoxMenuItemViewToolbarsFile == null) {\r
1228 jCheckBoxMenuItemViewToolbarsFile = new JCheckBoxMenuItem();\r
1229 jCheckBoxMenuItemViewToolbarsFile.setText("File");\r
1230 jCheckBoxMenuItemViewToolbarsFile.setEnabled(false);\r
1231 jCheckBoxMenuItemViewToolbarsFile.addActionListener(this);\r
1232 }\r
1233 return jCheckBoxMenuItemViewToolbarsFile;\r
1234 }\r
1235\r
1236 /**\r
1237 This method initializes jCheckBoxMenuItemViewToolbarsEdit \r
1238 \r
1239 @return javax.swing.JCheckBoxMenuItem \r
1240 \r
43dc3851 1241 **/\r
a13899c5 1242 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsEdit() {\r
1243 if (jCheckBoxMenuItemViewToolbarsEdit == null) {\r
1244 jCheckBoxMenuItemViewToolbarsEdit = new JCheckBoxMenuItem();\r
1245 jCheckBoxMenuItemViewToolbarsEdit.setText("Edit");\r
1246 jCheckBoxMenuItemViewToolbarsEdit.setEnabled(false);\r
1247 jCheckBoxMenuItemViewToolbarsEdit.addActionListener(this);\r
1248 }\r
1249 return jCheckBoxMenuItemViewToolbarsEdit;\r
1250 }\r
1251\r
1252 /**\r
1253 This method initializes jCheckBoxMenuItemViewToolbarsWindow \r
1254 \r
1255 @return javax.swing.JCheckBoxMenuItem \r
1256 \r
43dc3851 1257 **/\r
a13899c5 1258 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsWindow() {\r
1259 if (jCheckBoxMenuItemViewToolbarsWindow == null) {\r
1260 jCheckBoxMenuItemViewToolbarsWindow = new JCheckBoxMenuItem();\r
1261 jCheckBoxMenuItemViewToolbarsWindow.setText("Window");\r
1262 jCheckBoxMenuItemViewToolbarsWindow.setEnabled(false);\r
1263 jCheckBoxMenuItemViewToolbarsWindow.addActionListener(this);\r
1264 }\r
1265 return jCheckBoxMenuItemViewToolbarsWindow;\r
1266 }\r
1267\r
1268 /**\r
1269 This method initializes jMenuItemStandard \r
1270 \r
1271 @return javax.swing.JMenuItem \r
1272 \r
43dc3851 1273 **/\r
a13899c5 1274 private JMenuItem getJMenuItemViewStandard() {\r
1275 if (jMenuItemViewStandard == null) {\r
1276 jMenuItemViewStandard = new JMenuItem();\r
1277 jMenuItemViewStandard.setText("Standard");\r
1278 jMenuItemViewStandard.setMnemonic('S');\r
1279 jMenuItemViewStandard.setEnabled(false);\r
1280 jMenuItemViewStandard.addActionListener(this);\r
1281 }\r
1282 return jMenuItemViewStandard;\r
1283 }\r
1284\r
1285 /**\r
1286 This method initializes jMenuItemAdvanced \r
1287 \r
1288 @return javax.swing.JMenuItem \r
1289 \r
43dc3851 1290 **/\r
a13899c5 1291 private JMenuItem getJMenuItemViewAdvanced() {\r
1292 if (jMenuItemViewAdvanced == null) {\r
1293 jMenuItemViewAdvanced = new JMenuItem();\r
1294 jMenuItemViewAdvanced.setText("Advanced");\r
1295 jMenuItemViewAdvanced.setMnemonic('A');\r
1296 jMenuItemViewAdvanced.setEnabled(false);\r
1297 jMenuItemViewAdvanced.addActionListener(this);\r
1298 }\r
1299 return jMenuItemViewAdvanced;\r
1300 }\r
1301\r
1302 /**\r
1303 This method initializes jMenuProject \r
1304 \r
1305 @return javax.swing.JMenu \r
1306 \r
43dc3851 1307 **/\r
a13899c5 1308 private JMenu getJMenuProject() {\r
1309 if (jMenuProject == null) {\r
43dc3851 1310 //\r
1311 // Set jMenuProject's attributes\r
1312 //\r
a13899c5 1313 jMenuProject = new JMenu();\r
1314 jMenuProject.setText("Project");\r
1315 jMenuProject.setMnemonic('P');\r
43dc3851 1316\r
1317 //\r
1318 // Add sub menu items\r
1319 //\r
a13899c5 1320 jMenuProject.add(getJMenuItemProjectAdmin());\r
43dc3851 1321\r
a13899c5 1322 jMenuProject.add(getJMenuItemProjectChangeWorkspace());\r
1323 jMenuProject.addSeparator();\r
43dc3851 1324\r
92e29378 1325 jMenuProject.add(getJMenuItemProjectCreateFar());\r
1326 jMenuProject.add(getJMenuItemProjectInstallFar());\r
1327 jMenuProject.add(getJMenuItemProjectUpdateFar());\r
1328 jMenuProject.add(getJMenuItemProjectRemoveFar());\r
43dc3851 1329\r
a13899c5 1330 }\r
1331 return jMenuProject;\r
1332 }\r
1333\r
1334 /**\r
1335 This method initializes jMenuItemProjectAdmin \r
1336 \r
1337 @return javax.swing.JMenuItem \r
1338 \r
43dc3851 1339 **/\r
a13899c5 1340 private JMenuItem getJMenuItemProjectAdmin() {\r
1341 if (jMenuItemProjectAdmin == null) {\r
1342 jMenuItemProjectAdmin = new JMenuItem();\r
1343 jMenuItemProjectAdmin.setText("Admin...");\r
1344 jMenuItemProjectAdmin.setMnemonic('A');\r
1345 jMenuItemProjectAdmin.setEnabled(false);\r
1346 jMenuItemProjectAdmin.addActionListener(this);\r
1347 jMenuItemProjectAdmin.setVisible(false);\r
1348 }\r
1349 return jMenuItemProjectAdmin;\r
1350 }\r
1351\r
1352 /**\r
1353 This method initializes jMenuItemProjectChangeWorkspace \r
1354 \r
1355 @return javax.swing.JMenuItem \r
1356 \r
43dc3851 1357 **/\r
a13899c5 1358 private JMenuItem getJMenuItemProjectChangeWorkspace() {\r
1359 if (jMenuItemProjectChangeWorkspace == null) {\r
1360 jMenuItemProjectChangeWorkspace = new JMenuItem();\r
1361 jMenuItemProjectChangeWorkspace.setText("Change WORKSPACE...");\r
1362 jMenuItemProjectChangeWorkspace.setMnemonic('W');\r
1363 jMenuItemProjectChangeWorkspace.setEnabled(true);\r
1364 jMenuItemProjectChangeWorkspace.addActionListener(this);\r
1365 }\r
1366 return jMenuItemProjectChangeWorkspace;\r
1367 }\r
1368\r
1369 /**\r
dbf5dd75 1370 This method initializes jMenuProjectBuildPreferences \r
a13899c5 1371 \r
1372 @return javax.swing.JMenu \r
1373 \r
43dc3851 1374 **/\r
dbf5dd75 1375 private JMenuItem getJMenuItemToolsBuildPreferences() {\r
1376 if (jMenuItemToolsBuildPreferences == null) {\r
1377 jMenuItemToolsBuildPreferences = new JMenuItem();\r
57046e97 1378 jMenuItemToolsBuildPreferences.setText("Build Preferences...");\r
dbf5dd75 1379 jMenuItemToolsBuildPreferences.setMnemonic('P');\r
1380 jMenuItemToolsBuildPreferences.setEnabled(true);\r
1381 jMenuItemToolsBuildPreferences.addActionListener(this);\r
a13899c5 1382 }\r
dbf5dd75 1383 return jMenuItemToolsBuildPreferences;\r
a13899c5 1384 }\r
1385\r
1386 /**\r
1387 This method initializes jMenuItemToolsToolChainConfiguration \r
1388 \r
1389 @return javax.swing.JMenuItem \r
1390 \r
43dc3851 1391 **/\r
a13899c5 1392 private JMenuItem getJMenuItemToolsToolChainConfiguration() {\r
1393 if (jMenuItemToolsToolChainConfiguration == null) {\r
1394 jMenuItemToolsToolChainConfiguration = new JMenuItem();\r
1395 jMenuItemToolsToolChainConfiguration.setText("Tool Chain Configuration...");\r
1396 jMenuItemToolsToolChainConfiguration.setMnemonic('C');\r
1397 jMenuItemToolsToolChainConfiguration.addActionListener(this);\r
a13899c5 1398 }\r
1399 return jMenuItemToolsToolChainConfiguration;\r
1400 }\r
1401\r
1402 /**\r
1403 This method initializes jMenuItemToolsClone \r
1404 \r
1405 @return javax.swing.JMenuItem \r
1406 \r
43dc3851 1407 **/\r
a13899c5 1408 private JMenuItem getJMenuItemToolsClone() {\r
1409 if (jMenuItemToolsClone == null) {\r
1410 jMenuItemToolsClone = new JMenuItem();\r
1411 jMenuItemToolsClone.setText("Clone...");\r
1412 jMenuItemToolsClone.setMnemonic('l');\r
1413 jMenuItemToolsClone.setEnabled(true);\r
1414 jMenuItemToolsClone.addActionListener(this);\r
1415 }\r
1416 return jMenuItemToolsClone;\r
1417 }\r
1418\r
1419 /**\r
1420 This method initializes jMenuItemToolsCodeScan \r
1421 \r
1422 @return javax.swing.JMenuItem \r
1423 \r
43dc3851 1424 **/\r
a13899c5 1425 private JMenuItem getJMenuItemToolsCodeScan() {\r
1426 if (jMenuItemToolsCodeScan == null) {\r
1427 jMenuItemToolsCodeScan = new JMenuItem();\r
1428 jMenuItemToolsCodeScan.setText("Code Scan...");\r
1429 jMenuItemToolsCodeScan.setMnemonic('S');\r
1430 jMenuItemToolsCodeScan.setEnabled(false);\r
1431 jMenuItemToolsCodeScan.addActionListener(this);\r
1432 jMenuItemToolsCodeScan.setVisible(false);\r
1433 }\r
1434 return jMenuItemToolsCodeScan;\r
1435 }\r
1436\r
1437 /**\r
1438 This method initializes jMenuItemWindowSplitVertical \r
1439 \r
1440 @return javax.swing.JMenuItem \r
1441 \r
43dc3851 1442 **/\r
a13899c5 1443 private JMenuItem getJMenuItemWindowDisplaySide() {\r
1444 if (jMenuItemWindowDisplaySide == null) {\r
1445 jMenuItemWindowDisplaySide = new JMenuItem();\r
1446 jMenuItemWindowDisplaySide.setText("Display Side by Side");\r
1447 jMenuItemWindowDisplaySide.setMnemonic('S');\r
1448 jMenuItemWindowDisplaySide.setEnabled(false);\r
1449 jMenuItemWindowDisplaySide.addActionListener(this);\r
1450 }\r
1451 return jMenuItemWindowDisplaySide;\r
1452 }\r
1453\r
1454 /**\r
1455 This method initializes jMenuItemWindowSplitHorizontal \r
1456 \r
1457 @return javax.swing.JMenuItem \r
1458 \r
43dc3851 1459 **/\r
a13899c5 1460 private JMenuItem getJMenuItemWindowDisplayTopBottom() {\r
1461 if (jMenuItemWindowDisplayTopBottom == null) {\r
1462 jMenuItemWindowDisplayTopBottom = new JMenuItem();\r
1463 jMenuItemWindowDisplayTopBottom.setText("Display Top and Bottom");\r
1464 jMenuItemWindowDisplayTopBottom.setMnemonic('B');\r
1465 jMenuItemWindowDisplayTopBottom.setEnabled(false);\r
1466 jMenuItemWindowDisplayTopBottom.addActionListener(this);\r
1467 }\r
1468 return jMenuItemWindowDisplayTopBottom;\r
1469 }\r
1470\r
1471 /**\r
1472 This method initializes jMenuItemViewXML \r
1473 \r
1474 @return javax.swing.JMenuItem \r
1475 \r
43dc3851 1476 **/\r
a13899c5 1477 private JMenuItem getJMenuItemViewXML() {\r
1478 if (jMenuItemViewXML == null) {\r
1479 jMenuItemViewXML = new JMenuItem();\r
1480 jMenuItemViewXML.setText("XML");\r
1481 jMenuItemViewXML.setMnemonic('X');\r
1482 jMenuItemViewXML.setEnabled(false);\r
1483 jMenuItemViewXML.addActionListener(this);\r
1484 }\r
1485 return jMenuItemViewXML;\r
1486 }\r
1487\r
1488 /**\r
1489 This method initializes jMenuItemWindowTabView \r
1490 \r
1491 @return javax.swing.JMenuItem \r
1492 \r
43dc3851 1493 **/\r
a13899c5 1494 private JMenuItem getJMenuItemWindowTabView() {\r
1495 if (jMenuItemWindowTabView == null) {\r
1496 jMenuItemWindowTabView = new JMenuItem();\r
1497 jMenuItemWindowTabView.setText("Tab View");\r
1498 jMenuItemWindowTabView.setMnemonic('T');\r
1499 jMenuItemWindowTabView.setEnabled(false);\r
1500 jMenuItemWindowTabView.addActionListener(this);\r
1501 }\r
1502 return jMenuItemWindowTabView;\r
1503 }\r
1504\r
1505 /**\r
1506 This method initializes jMenuItemWindowSource \r
1507 \r
1508 @return javax.swing.JMenuItem \r
1509 \r
43dc3851 1510 **/\r
a13899c5 1511 private JMenuItem getJMenuItemWindowSource() {\r
1512 if (jMenuItemWindowSource == null) {\r
1513 jMenuItemWindowSource = new JMenuItem();\r
1514 jMenuItemWindowSource.setText("Source");\r
1515 jMenuItemWindowSource.setMnemonic('S');\r
1516 jMenuItemWindowSource.setEnabled(false);\r
1517 jMenuItemWindowSource.addActionListener(this);\r
1518 }\r
1519 return jMenuItemWindowSource;\r
1520 }\r
1521\r
1522 /**\r
1523 This method initializes jMenuItemWindowXML \r
1524 \r
1525 @return javax.swing.JMenuItem \r
1526 \r
43dc3851 1527 **/\r
a13899c5 1528 private JMenuItem getJMenuItemWindowXML() {\r
1529 if (jMenuItemWindowXML == null) {\r
1530 jMenuItemWindowXML = new JMenuItem();\r
1531 jMenuItemWindowXML.setText("XML");\r
1532 jMenuItemWindowXML.setMnemonic('X');\r
1533 jMenuItemWindowXML.setEnabled(false);\r
1534 jMenuItemWindowXML.addActionListener(this);\r
1535 }\r
1536 return jMenuItemWindowXML;\r
1537 }\r
1538\r
1539 /**\r
1540 This method initializes jMenuItemWindowPreferences \r
1541 \r
1542 @return javax.swing.JMenuItem \r
1543 \r
43dc3851 1544 **/\r
a13899c5 1545 private JMenuItem getJMenuItemWindowPreferences() {\r
1546 if (jMenuItemWindowPreferences == null) {\r
1547 jMenuItemWindowPreferences = new JMenuItem();\r
1548 jMenuItemWindowPreferences.setText("Preferences");\r
1549 jMenuItemWindowPreferences.setMnemonic('P');\r
1550 jMenuItemWindowPreferences.setEnabled(false);\r
1551 jMenuItemWindowPreferences.addActionListener(this);\r
1552 }\r
1553 return jMenuItemWindowPreferences;\r
1554 }\r
1555\r
1556 /**\r
1557 This method initializes jMenuItemHelpContents \r
1558 \r
1559 @return javax.swing.JMenuItem \r
1560 \r
43dc3851 1561 **/\r
a13899c5 1562 private JMenuItem getJMenuItemHelpContents() {\r
1563 if (jMenuItemHelpContents == null) {\r
1564 jMenuItemHelpContents = new JMenuItem();\r
1565 jMenuItemHelpContents.setText("Contents");\r
1566 jMenuItemHelpContents.setMnemonic('C');\r
1567 jMenuItemHelpContents.setEnabled(false);\r
1568 jMenuItemHelpContents.addActionListener(this);\r
1569 jMenuItemHelpContents.setVisible(false);\r
1570 }\r
1571 return jMenuItemHelpContents;\r
1572 }\r
1573\r
1574 /**\r
1575 This method initializes jMenuItemHelpIndex \r
1576 \r
1577 @return javax.swing.JMenuItem \r
1578 \r
43dc3851 1579 **/\r
a13899c5 1580 private JMenuItem getJMenuItemHelpIndex() {\r
1581 if (jMenuItemHelpIndex == null) {\r
1582 jMenuItemHelpIndex = new JMenuItem();\r
1583 jMenuItemHelpIndex.setText("Index");\r
1584 jMenuItemHelpIndex.setMnemonic('I');\r
1585 jMenuItemHelpIndex.setEnabled(false);\r
1586 jMenuItemHelpIndex.addActionListener(this);\r
1587 jMenuItemHelpIndex.setVisible(false);\r
1588 }\r
1589 return jMenuItemHelpIndex;\r
1590 }\r
1591\r
1592 /**\r
1593 This method initializes jMenuItemHelpSearch \r
1594 \r
1595 @return javax.swing.JMenuItem \r
1596 \r
1597 */\r
1598 private JMenuItem getJMenuItemHelpSearch() {\r
1599 if (jMenuItemHelpSearch == null) {\r
1600 jMenuItemHelpSearch = new JMenuItem();\r
1601 jMenuItemHelpSearch.setText("Search");\r
1602 jMenuItemHelpSearch.setMnemonic('S');\r
1603 jMenuItemHelpSearch.setEnabled(false);\r
1604 jMenuItemHelpSearch.addActionListener(this);\r
1605 jMenuItemHelpSearch.setVisible(false);\r
1606 }\r
1607 return jMenuItemHelpSearch;\r
1608 }\r
1609\r
a13899c5 1610 /**\r
1611 * This method initializes jMenuItemToolsInstallPackage \r
1612 * \r
1613 * @return javax.swing.JMenuItem \r
1614 */\r
92e29378 1615 private JMenuItem getJMenuItemProjectInstallFar() {\r
1616 if (jMenuItemProjectInstallFar == null) {\r
1617 jMenuItemProjectInstallFar = new JMenuItem();\r
57046e97 1618 jMenuItemProjectInstallFar.setText("Install FAR...");\r
92e29378 1619 jMenuItemProjectInstallFar.setMnemonic('I');\r
1620 jMenuItemProjectInstallFar.setEnabled(true);\r
1621 jMenuItemProjectInstallFar.addActionListener(this);\r
a13899c5 1622 }\r
92e29378 1623 return jMenuItemProjectInstallFar;\r
a13899c5 1624 }\r
1625\r
1626 /**\r
1627 * This method initializes jMenuItemToolsUpdatePackage \r
1628 * \r
1629 * @return javax.swing.JMenuItem \r
1630 */\r
92e29378 1631 private JMenuItem getJMenuItemProjectUpdateFar() {\r
1632 if (jMenuItemProjectUpdateFar == null) {\r
1633 jMenuItemProjectUpdateFar = new JMenuItem();\r
57046e97 1634 jMenuItemProjectUpdateFar.setText("Update FAR...");\r
92e29378 1635 jMenuItemProjectUpdateFar.setMnemonic('U');\r
1636 jMenuItemProjectUpdateFar.setEnabled(true);\r
1637 jMenuItemProjectUpdateFar.addActionListener(this);\r
ef6e2efe 1638 jMenuItemProjectUpdateFar.setVisible(true);\r
a13899c5 1639 }\r
92e29378 1640 return jMenuItemProjectUpdateFar;\r
a13899c5 1641 }\r
1642\r
1643 /**\r
1644 * This method initializes jMenuItemRemovePackage \r
1645 * \r
1646 * @return javax.swing.JMenuItem \r
1647 */\r
92e29378 1648 private JMenuItem getJMenuItemProjectRemoveFar() {\r
1649 if (jMenuItemProjectRemoveFar == null) {\r
1650 jMenuItemProjectRemoveFar = new JMenuItem();\r
57046e97 1651 jMenuItemProjectRemoveFar.setText("Remove FAR...");\r
92e29378 1652 jMenuItemProjectRemoveFar.setMnemonic('R');\r
1653 jMenuItemProjectRemoveFar.setEnabled(true);\r
1654 jMenuItemProjectRemoveFar.addActionListener(this);\r
1655 }\r
1656 return jMenuItemProjectRemoveFar;\r
1657 }\r
1658\r
1659 /**\r
1660 * This method initializes jMenuItemProjectCreateFar \r
1661 * \r
1662 * @return javax.swing.JMenuItem \r
1663 */\r
1664 private JMenuItem getJMenuItemProjectCreateFar() {\r
1665 if (jMenuItemProjectCreateFar == null) {\r
1666 jMenuItemProjectCreateFar = new JMenuItem();\r
57046e97 1667 jMenuItemProjectCreateFar.setText("Create FAR...");\r
92e29378 1668 jMenuItemProjectCreateFar.setMnemonic('C');\r
1669 jMenuItemProjectCreateFar.addActionListener(this);\r
a13899c5 1670 }\r
92e29378 1671 return jMenuItemProjectCreateFar;\r
a13899c5 1672 }\r
1673\r
8792f60f 1674 /**\r
1675 * This method initializes jMenuEditFind \r
1676 * \r
1677 * @return javax.swing.JMenu \r
1678 */\r
1679 private JMenu getJMenuEditFind() {\r
1680 if (jMenuEditFind == null) {\r
1681 jMenuEditFind = new JMenu();\r
1682 jMenuEditFind.setText("Find");\r
1683 jMenuEditFind.setMnemonic('F');\r
1684\r
1685 jMenuEditFind.add(getJMenuItemEditFindPpi());\r
1686 jMenuEditFind.add(getJMenuItemEditFindProtocol());\r
1687 jMenuEditFind.add(getJMenuItemEditFindGuid());\r
1688 jMenuEditFind.add(getJMenuItemEditFindPcd());\r
8792f60f 1689 jMenuEditFind.add(getJMenuItemEditFindLibraryClass());\r
1690 jMenuEditFind.add(getJMenuItemEditFindLibraryInstance());\r
1691 }\r
1692 return jMenuEditFind;\r
1693 }\r
1694\r
1695 /**\r
1696 * This method initializes jMenuItemEditFindPcd \r
1697 * \r
1698 * @return javax.swing.JMenuItem \r
1699 */\r
1700 private JMenuItem getJMenuItemEditFindPcd() {\r
1701 if (jMenuItemEditFindPcd == null) {\r
1702 jMenuItemEditFindPcd = new JMenuItem();\r
1703 jMenuItemEditFindPcd.setText("All PCD entries");\r
1704 jMenuItemEditFindPcd.setMnemonic('P');\r
1705 jMenuItemEditFindPcd.addActionListener(this);\r
1706 }\r
1707 return jMenuItemEditFindPcd;\r
1708 }\r
1709\r
1710 /**\r
1711 * This method initializes jMenuItemEditFindLibraryClass \r
1712 * \r
1713 * @return javax.swing.JMenuItem \r
1714 */\r
1715 private JMenuItem getJMenuItemEditFindLibraryClass() {\r
1716 if (jMenuItemEditFindLibraryClass == null) {\r
1717 jMenuItemEditFindLibraryClass = new JMenuItem();\r
1718 jMenuItemEditFindLibraryClass.setText("All Library Classes");\r
1719 jMenuItemEditFindLibraryClass.setMnemonic('C');\r
1720 jMenuItemEditFindLibraryClass.addActionListener(this);\r
1721 }\r
1722 return jMenuItemEditFindLibraryClass;\r
1723 }\r
1724\r
1725 /**\r
1726 * This method initializes jMenuItemEditFindPpi \r
1727 * \r
1728 * @return javax.swing.JMenuItem \r
1729 */\r
1730 private JMenuItem getJMenuItemEditFindPpi() {\r
1731 if (jMenuItemEditFindPpi == null) {\r
1732 jMenuItemEditFindPpi = new JMenuItem();\r
1733 jMenuItemEditFindPpi.setText("All PPIs");\r
1734 jMenuItemEditFindPpi.setMnemonic('I');\r
1735 jMenuItemEditFindPpi.addActionListener(this);\r
1736 }\r
1737 return jMenuItemEditFindPpi;\r
1738 }\r
1739\r
1740 /**\r
1741 * This method initializes jMenuItemEditFindProtocol \r
1742 * \r
1743 * @return javax.swing.JMenuItem \r
1744 */\r
1745 private JMenuItem getJMenuItemEditFindProtocol() {\r
1746 if (jMenuItemEditFindProtocol == null) {\r
1747 jMenuItemEditFindProtocol = new JMenuItem();\r
1748 jMenuItemEditFindProtocol.setText("All Protocols");\r
1749 jMenuItemEditFindProtocol.setMnemonic('r');\r
1750 jMenuItemEditFindProtocol.addActionListener(this);\r
1751 }\r
1752 return jMenuItemEditFindProtocol;\r
1753 }\r
1754\r
1755 /**\r
1756 * This method initializes jMenuItemEditFindGuid \r
1757 * \r
1758 * @return javax.swing.JMenuItem \r
1759 */\r
1760 private JMenuItem getJMenuItemEditFindGuid() {\r
1761 if (jMenuItemEditFindGuid == null) {\r
1762 jMenuItemEditFindGuid = new JMenuItem();\r
1763 jMenuItemEditFindGuid.setText("All GUIDs");\r
1764 jMenuItemEditFindGuid.setMnemonic('G');\r
1765 jMenuItemEditFindGuid.addActionListener(this);\r
1766 }\r
1767 return jMenuItemEditFindGuid;\r
1768 }\r
1769\r
1770 /**\r
1771 * This method initializes jMenuItemEditFindLibraryInstance \r
1772 * \r
1773 * @return javax.swing.JMenuItem \r
1774 */\r
1775 private JMenuItem getJMenuItemEditFindLibraryInstance() {\r
1776 if (jMenuItemEditFindLibraryInstance == null) {\r
1777 jMenuItemEditFindLibraryInstance = new JMenuItem();\r
1778 jMenuItemEditFindLibraryInstance.setText("All Library Instances");\r
1779 jMenuItemEditFindLibraryInstance.setMnemonic('n');\r
1780 jMenuItemEditFindLibraryInstance.addActionListener(this);\r
55e83b18 1781 jMenuItemEditFindLibraryInstance.setVisible(false);\r
8792f60f 1782 }\r
1783 return jMenuItemEditFindLibraryInstance;\r
1784 }\r
1785\r
b63cc1b6 1786 /**\r
1787 * This method initializes jMenuItemProjectGenerateGuidsXref \r
1788 * \r
1789 * @return javax.swing.JMenuItem \r
1790 */\r
1791 private JMenuItem getJMenuItemToolsGenerateGuidsXref() {\r
1792 if (jMenuItemToolsGenerateGuidsXref == null) {\r
1793 jMenuItemToolsGenerateGuidsXref = new JMenuItem();\r
57046e97 1794 jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref...");\r
b63cc1b6 1795 jMenuItemToolsGenerateGuidsXref.setMnemonic('G');\r
1796 jMenuItemToolsGenerateGuidsXref.addActionListener(this);\r
1797 }\r
1798 return jMenuItemToolsGenerateGuidsXref;\r
1799 }\r
1800\r
a13899c5 1801 /* (non-Javadoc)\r
1802 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])\r
1803 *\r
1804 * Main class, start the GUI\r
1805 * \r
1806 */\r
9e011eac 1807 public static void main(String[] args) { \r
1808 //\r
1809 // Start Main UI\r
1810 //\r
1811 FrameworkWizardUI module = FrameworkWizardUI.getInstance(args);\r
a13899c5 1812 module.setVisible(true);\r
1813 }\r
1814\r
1815 /**\r
1816 This is the default constructor\r
1817 \r
1818 **/\r
9e011eac 1819 public FrameworkWizardUI(String[] args) {\r
a13899c5 1820 super();\r
9e011eac 1821 init(args);\r
a13899c5 1822 }\r
1823\r
1824 /**\r
1825 This method initializes this\r
1826 \r
1827 \r
1828 **/\r
9e011eac 1829 private void init(String[] args) {\r
a13899c5 1830 //\r
1831 // Set current workspace and check\r
1832 // Check if exists WORKSPACE\r
a13899c5 1833 //\r
1834 Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));\r
007f887e 1835 this.checkWorkspace();\r
a13899c5 1836\r
007f887e 1837 //\r
1838 // Show splash screen\r
1839 //\r
b79fc835 1840 SplashScreen ss = new SplashScreen();\r
1841 ss.setVisible(true);\r
9e011eac 1842 \r
1843 //\r
1844 // Go through args to check if enable log\r
1845 //\r
1846 for (int index = 0; index < args.length; index++) {\r
1847 if (args[index].equals("--log") || args[index].equals("-l")) {\r
1848 Log.setSaveLog(true);\r
1849 }\r
1850 }\r
e421fb25 1851\r
739c6b04 1852 //\r
1853 // Init Global Data\r
1854 //\r
1855 GlobalData.init();\r
78b5fb82 1856\r
7f492c43 1857 //\r
1858 // Close splash screen\r
1859 //\r
b79fc835 1860 ss.dispose();\r
14a32a70 1861 \r
739c6b04 1862 //\r
1863 // Init the frame\r
1864 //\r
a13899c5 1865 this.setSize(DataType.MAIN_FRAME_PREFERRED_SIZE_WIDTH, DataType.MAIN_FRAME_PREFERRED_SIZE_HEIGHT);\r
1866 this.setResizable(true);\r
1867 this.setJMenuBar(getjJMenuBar());\r
a13899c5 1868 this.setContentPane(getJContentPane());\r
92e29378 1869 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
1870 + Workspace.getCurrentWorkspace() + "]");\r
a13899c5 1871 this.setExitType(1);\r
79cb6fdb 1872\r
a13899c5 1873 //\r
1874 // max the window\r
1875 //\r
1876 this.setExtendedState(JFrame.MAXIMIZED_BOTH);\r
1877 }\r
1878\r
1879 /**\r
1880 This method initializes jContentPane\r
1881 \r
1882 @return javax.swing.JPanel jContentPane\r
1883 \r
1884 **/\r
1885 private JPanel getJContentPane() {\r
1886 if (jContentPane == null) {\r
1887 jContentPane = new JPanel();\r
1888 jContentPane.setLayout(null);\r
1889 jContentPane.add(getJPanelOperation(), null);\r
1890 jContentPane.add(getJSplitPane(), null);\r
1891 }\r
1892 return jContentPane;\r
1893 }\r
1894\r
1895 /* (non-Javadoc)\r
1896 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)\r
1897 *\r
1898 * Override actionPerformed to listen all actions\r
1899 *\r
1900 */\r
1901 public void actionPerformed(ActionEvent arg0) {\r
1902 //\r
1903 // Operations of Menu\r
1904 //\r
8792f60f 1905 if (arg0.getSource() == this.jMenuItemFileNew) {\r
a13899c5 1906 this.fileNew();\r
1907 }\r
1908\r
8792f60f 1909 if (arg0.getSource() == this.jMenuItemFileOpen) {\r
a13899c5 1910 this.open();\r
1911 }\r
1912\r
8792f60f 1913 if (arg0.getSource() == this.jMenuItemFileClose) {\r
a13899c5 1914 this.close();\r
1915 }\r
1916\r
8792f60f 1917 if (arg0.getSource() == this.jMenuItemFileCloseAll) {\r
a13899c5 1918 this.closeAll();\r
fc87d0ba 1919 this.refresh();\r
ff383de4 1920 this.makeEmptyTree();\r
a13899c5 1921 }\r
1922\r
8792f60f 1923 if (arg0.getSource() == this.jMenuItemFileSave) {\r
a13899c5 1924 this.save();\r
1925 }\r
1926\r
8792f60f 1927 if (arg0.getSource() == this.jMenuItemFileSaveAs) {\r
a13899c5 1928 this.saveAs();\r
1929 }\r
1930\r
8792f60f 1931 if (arg0.getSource() == this.jMenuItemFileSaveAll) {\r
a13899c5 1932 this.saveAll();\r
1933 }\r
b63cc1b6 1934\r
4917d9dd 1935 if (arg0.getSource() == this.jMenuItemFileRefresh) {\r
57046e97 1936 if (this.closeAll() == 0) {\r
1937 this.refresh();\r
e421fb25 1938 this.makeEmptyTree();\r
57046e97 1939 }\r
4917d9dd 1940 }\r
a13899c5 1941\r
8792f60f 1942 if (arg0.getSource() == this.jMenuItemFileExit) {\r
a13899c5 1943 this.exit();\r
1944 }\r
1945\r
8792f60f 1946 if (arg0.getSource() == this.jMenuItemEditFindPpi) {\r
55e83b18 1947 this.findPpi();\r
1948 }\r
1949\r
1950 if (arg0.getSource() == this.jMenuItemEditFindProtocol) {\r
1951 this.findProtocol();\r
1952 }\r
1953\r
1954 if (arg0.getSource() == this.jMenuItemEditFindGuid) {\r
1955 this.findGuid();\r
1956 }\r
1957\r
1958 if (arg0.getSource() == this.jMenuItemEditFindPcd) {\r
1959 this.findPcd();\r
1960 }\r
1961\r
1962 if (arg0.getSource() == this.jMenuItemEditFindLibraryClass) {\r
1963 this.findLibraryClass();\r
8792f60f 1964 }\r
fe1543a5 1965\r
55e83b18 1966 if (arg0.getSource() == this.jMenuItemEditFindLibraryInstance) {\r
1967 this.findLibraryInstance();\r
1968 }\r
1969\r
dbf5dd75 1970 if (arg0.getSource() == jMenuItemToolsBuildPreferences) {\r
1971 configBuildPreferences();\r
1972 }\r
8792f60f 1973\r
1974 if (arg0.getSource() == this.jMenuItemProjectChangeWorkspace) {\r
1975 this.changeWorkspace();\r
a13899c5 1976 }\r
1977\r
8792f60f 1978 if (arg0.getSource() == this.jMenuItemProjectCreateFar) {\r
1979 this.createFar();\r
92e29378 1980 }\r
1981\r
8792f60f 1982 if (arg0.getSource() == this.jMenuItemProjectInstallFar) {\r
1983 this.installFar();\r
92e29378 1984 }\r
1985\r
8792f60f 1986 if (arg0.getSource() == this.jMenuItemProjectRemoveFar) {\r
1987 this.removeFar();\r
92e29378 1988 }\r
1989\r
8792f60f 1990 if (arg0.getSource() == this.jMenuItemProjectUpdateFar) {\r
1991 this.updateFar();\r
92e29378 1992 }\r
1993\r
8792f60f 1994 if (arg0.getSource() == this.jMenuItemToolsClone) {\r
1995 this.cloneItem();\r
a13899c5 1996 }\r
92e29378 1997\r
8792f60f 1998 if (arg0.getSource() == this.jMenuItemToolsToolChainConfiguration) {\r
1999 this.setupToolChainConfiguration();\r
79cb6fdb 2000 }\r
a13899c5 2001\r
b63cc1b6 2002 if (arg0.getSource() == this.jMenuItemToolsGenerateGuidsXref) {\r
2003 this.generateGuidsXref();\r
2004 }\r
2005\r
8792f60f 2006 if (arg0.getSource() == this.jMenuItemHelpAbout) {\r
a13899c5 2007 About a = new About(this, true);\r
2008 int result = a.showDialog();\r
2009 if (result == DataType.RETURN_TYPE_OK) {\r
2010 a.dispose();\r
2011 }\r
2012 }\r
2013 }\r
2014\r
2015 /**\r
2016 Create an empty tree if no file is open\r
2017 \r
2018 **/\r
2019 private void makeEmptyTree() {\r
43dc3851 2020 //\r
a13899c5 2021 // Make root\r
43dc3851 2022 //\r
09ef9242 2023 dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, false, null, null);\r
a13899c5 2024\r
43dc3851 2025 //\r
a13899c5 2026 // Make Module Description\r
43dc3851 2027 //\r
09ef9242 2028 dmtnModuleDescription = new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode.MODULE_DESCRIPTION,\r
2029 false, null, dmtnRoot);\r
a13899c5 2030\r
92e29378 2031 //\r
2032 // First add package\r
2033 //\r
739c6b04 2034 if (GlobalData.vPackageList.size() > 0) {\r
2035 for (int index = 0; index < GlobalData.vPackageList.size(); index++) {\r
92e29378 2036 IDefaultMutableTreeNode dmtnModulePackage = null;\r
2037 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
2038 IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
2039\r
739c6b04 2040 dmtnModulePackage = new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index).getName(),\r
92e29378 2041 IDefaultMutableTreeNode.MODULE_PACKAGE, false,\r
09ef9242 2042 GlobalData.vPackageList.elementAt(index),\r
2043 this.dmtnModuleDescription);\r
92e29378 2044 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
2045 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY,\r
09ef9242 2046 false, GlobalData.vPackageList.elementAt(index),\r
2047 this.dmtnModuleDescription);\r
92e29378 2048 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",\r
2049 IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
09ef9242 2050 false, GlobalData.vPackageList.elementAt(index),\r
2051 this.dmtnModuleDescription);\r
43dc3851 2052 //\r
2053 // And then add each module in its package\r
2054 //\r
739c6b04 2055 Vector<ModuleIdentification> vModule = wt.getAllModules(GlobalData.vPackageList.elementAt(index));\r
92e29378 2056 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
2057 if (vModule.get(indexJ).isLibrary()) {\r
2058 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
739c6b04 2059 IDefaultMutableTreeNode.MODULE, false,\r
09ef9242 2060 vModule.get(indexJ),\r
2061 this.dmtnModuleDescription));\r
92e29378 2062 } else {\r
2063 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
739c6b04 2064 IDefaultMutableTreeNode.MODULE, false,\r
09ef9242 2065 vModule.get(indexJ),\r
2066 this.dmtnModuleDescription));\r
92e29378 2067 }\r
2068 }\r
2069 if (dmtnModulePackageModule.getChildCount() > 0) {\r
2070 dmtnModulePackage.add(dmtnModulePackageModule);\r
2071 }\r
2072 if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
2073 dmtnModulePackage.add(dmtnModulePackageLibrary);\r
2074 }\r
2075\r
2076 dmtnModuleDescription.add(dmtnModulePackage);\r
a13899c5 2077 }\r
2078 }\r
2079\r
43dc3851 2080 //\r
a13899c5 2081 // Make Package Description\r
43dc3851 2082 //\r
09ef9242 2083 dmtnPackageDescription = new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode.PACKAGE_DESCRIPTION,\r
2084 false, null, this.dmtnRoot);\r
739c6b04 2085 if (GlobalData.vPackageList.size() > 0) {\r
2086 for (int index = 0; index < GlobalData.vPackageList.size(); index++) {\r
2087 dmtnPackageDescription.add(new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index)\r
2088 .getName(),\r
535329b5 2089 IDefaultMutableTreeNode.PACKAGE, false,\r
09ef9242 2090 GlobalData.vPackageList.elementAt(index),\r
2091 this.dmtnPackageDescription));\r
a13899c5 2092 }\r
2093 }\r
2094\r
43dc3851 2095 //\r
a13899c5 2096 // Make Platform Description\r
43dc3851 2097 //\r
09ef9242 2098 dmtnPlatformDescription = new IDefaultMutableTreeNode("Platforms",\r
2099 IDefaultMutableTreeNode.PLATFORM_DESCRIPTION, false,\r
2100 null, this.dmtnRoot);\r
739c6b04 2101 if (GlobalData.vPlatformList.size() > 0) {\r
2102 for (int index = 0; index < GlobalData.vPlatformList.size(); index++) {\r
2103 dmtnPlatformDescription.add(new IDefaultMutableTreeNode(GlobalData.vPlatformList.elementAt(index)\r
2104 .getName(),\r
2105 IDefaultMutableTreeNode.PLATFORM, false,\r
09ef9242 2106 GlobalData.vPlatformList.elementAt(index),\r
2107 this.dmtnPlatformDescription));\r
a13899c5 2108 }\r
2109 }\r
2110\r
43dc3851 2111 //\r
2112 // Add sub nodes to root node\r
2113 //\r
a13899c5 2114 dmtnRoot.add(dmtnModuleDescription);\r
2115 dmtnRoot.add(dmtnPackageDescription);\r
2116 dmtnRoot.add(dmtnPlatformDescription);\r
2117 iTree = new ITree(dmtnRoot);\r
2118 iTree.addMouseListener(this);\r
78b5fb82 2119 iTree.addKeyListener(this);\r
a13899c5 2120 jScrollPaneTree.setViewportView(iTree);\r
2121 }\r
2122\r
2123 /* (non-Javadoc)\r
2124 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)\r
2125 *\r
2126 * Override windowClosing to popup warning message to confirm quit\r
2127 * \r
2128 */\r
2129 public void windowClosing(WindowEvent arg0) {\r
2130 this.exit();\r
2131 }\r
2132\r
2133 /* (non-Javadoc)\r
2134 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)\r
2135 * \r
2136 * Override mouseClicked to check if need display popup menu\r
2137 * \r
2138 */\r
2139 public void mouseClicked(MouseEvent arg0) {\r
a13899c5 2140 //\r
2141 // When double click\r
2142 //\r
2143 if (arg0.getClickCount() == 2) {\r
2144 doubleClickModuleTreeNode();\r
2145 }\r
2146 }\r
2147\r
2148 public void mouseEntered(MouseEvent arg0) {\r
2149 // TODO Auto-generated method stub\r
2150 }\r
2151\r
2152 public void mouseExited(MouseEvent arg0) {\r
2153 // TODO Auto-generated method stub\r
2154 }\r
2155\r
2156 public void mousePressed(MouseEvent arg0) {\r
2157 // TODO Auto-generated method stub\r
2158 }\r
2159\r
2160 public void mouseReleased(MouseEvent arg0) {\r
2161 // TODO Auto-generated method stub\r
2162 }\r
2163\r
2164 /**\r
2165 Remove all Internal Frame of Module Desktop Pane\r
2166 \r
2167 **/\r
2168 private void cleanDesktopPaneModule() {\r
2169 if (jDesktopPaneModule != null) {\r
2170 JInternalFrame[] iif = this.jDesktopPaneModule.getAllFrames();\r
2171 for (int index = 0; index < iif.length; index++) {\r
2172 iif[index].dispose();\r
2173 }\r
2174 }\r
2175 }\r
2176\r
2177 /**\r
2178 Remove all Internal Frame of package Desktop Pane\r
2179 \r
2180 **/\r
2181 private void cleanDesktopPanePackage() {\r
2182 if (jDesktopPanePlatform != null) {\r
2183 JInternalFrame[] iif = this.jDesktopPanePackage.getAllFrames();\r
2184 for (int index = 0; index < iif.length; index++) {\r
2185 iif[index].dispose();\r
2186 }\r
2187 }\r
2188 }\r
2189\r
2190 /**\r
2191 Remove all Internal Frame of platform Desktop Pane\r
2192 \r
2193 **/\r
2194 private void cleanDesktopPanePlatform() {\r
2195 if (jDesktopPanePlatform != null) {\r
2196 JInternalFrame[] iif = this.jDesktopPanePlatform.getAllFrames();\r
2197 for (int index = 0; index < iif.length; index++) {\r
2198 iif[index].dispose();\r
2199 }\r
2200 }\r
2201 }\r
2202\r
2203 /**\r
2204 Remove all Internal Frame of all Desktop Panes\r
2205 \r
2206 **/\r
2207 private void cleanDesktopPane() {\r
2208 cleanDesktopPaneModule();\r
2209 cleanDesktopPanePackage();\r
2210 cleanDesktopPanePlatform();\r
2211 }\r
2212\r
2213 /**\r
2214 Set file filter as input ext\r
2215 \r
2216 @param ext\r
2217 @return\r
2218 \r
2219 **/\r
2220 private int getNewFilePath(String ext) {\r
2221 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
2222 fc.setAcceptAllFileFilterUsed(false);\r
2223 fc.addChoosableFileFilter(new IFileFilter(ext));\r
2224 return fc.showSaveDialog(new JPanel());\r
2225 }\r
55a2762d 2226\r
2227 /**\r
2228 Add a module to tree\r
2229 \r
2230 @param mid The module node to be added\r
2231 \r
2232 **/\r
2233 private void addModuleToTree(ModuleIdentification mid) {\r
2234 //\r
2235 // Add new MsaHeader node to the tree\r
2236 //\r
09ef9242 2237 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MODULE,\r
2238 false, mid, this.dmtnModuleDescription);\r
55a2762d 2239 //\r
2240 // First find the module belongs to which package\r
2241 //\r
2242 IDefaultMutableTreeNode packageNode = iTree.getNodeById(dmtnModuleDescription, mid.getPackageId(),\r
2243 IDefaultMutableTreeNode.MODULE_PACKAGE);\r
2244 //\r
2245 // To check if has module node or library node\r
2246 //\r
2247 IDefaultMutableTreeNode parentModuleNode = null;\r
2248 IDefaultMutableTreeNode parentLibraryNode = null;\r
2249 boolean hasModule = false;\r
2250 boolean hasLibrary = false;\r
2251 for (int index = 0; index < packageNode.getChildCount(); index++) {\r
2252 IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) packageNode.getChildAt(index);\r
2253 if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY) {\r
2254 hasLibrary = true;\r
2255 parentLibraryNode = iNode;\r
2256 }\r
2257 if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {\r
2258 hasModule = true;\r
2259 parentModuleNode = iNode;\r
2260 }\r
2261 }\r
2262\r
2263 //\r
2264 // If is a module\r
2265 //\r
2266 if (!mid.isLibrary()) {\r
2267 //\r
2268 // Create parent node first if has no parent node\r
2269 //\r
2270 if (!hasModule) {\r
2271 parentModuleNode = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
09ef9242 2272 false, mid.getPackageId(), this.dmtnModuleDescription);\r
55a2762d 2273 iTree.addNode(packageNode, parentModuleNode);\r
2274 }\r
2275\r
2276 iTree.addNode(parentModuleNode, node);\r
2277 }\r
2278\r
2279 //\r
2280 // If is a Library\r
2281 //\r
2282 if (mid.isLibrary()) {\r
2283 //\r
2284 // Create parent node first if has no parent node\r
2285 //\r
2286 if (!hasLibrary) {\r
2287 parentLibraryNode = new IDefaultMutableTreeNode("Library",\r
2288 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
09ef9242 2289 mid.getPackageId(), this.dmtnModuleDescription);\r
55a2762d 2290 iTree.addNode(packageNode, parentLibraryNode);\r
2291 }\r
2292\r
2293 iTree.addNode(parentLibraryNode, node);\r
2294 }\r
2295 }\r
a13899c5 2296\r
55a2762d 2297 /**\r
2298 Open Module\r
92e29378 2299\r
55a2762d 2300 @param path input file path\r
2301 \r
2302 **/\r
09ef9242 2303 private void openModule(String path, IDefaultMutableTreeNode belongNode) {\r
739c6b04 2304 ModuleIdentification id = GlobalData.openingModuleList.getIdByPath(path);\r
2305 if (id == null) {\r
a13899c5 2306 //\r
2307 // The module is not in existing packages\r
2308 //\r
ea7f8a93 2309 Log.wrn("Open Module", "The module does not belong to any package in the current workspace!");\r
a13899c5 2310 return;\r
2311 }\r
55a2762d 2312\r
92e29378 2313 //\r
a13899c5 2314 // Make the node selected\r
2315 //\r
09ef9242 2316 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(belongNode, id, IDefaultMutableTreeNode.MODULE)));\r
2317\r
a13899c5 2318 //\r
2319 // Update opening Module list information\r
2320 //\r
09ef9242 2321 if (!iTree.getSelectNode().isOpening()) {\r
a13899c5 2322 //\r
2323 // Insert sub node of module\r
2324 //\r
09ef9242 2325 insertModuleTreeNode(id, belongNode);\r
a13899c5 2326 iTree.getSelectNode().setOpening(true);\r
2327\r
2328 //\r
2329 // Update opening module list\r
2330 //\r
739c6b04 2331 GlobalData.openingModuleList.setModuleOpen(id, true);\r
09ef9242 2332 Set<TreePath> temp = GlobalData.openingModuleList.getTreePathById(id);\r
2333 temp.add(iTree.getSelectionPath());\r
2334 GlobalData.openingModuleList.setTreePathById(id, temp);\r
a13899c5 2335 }\r
2336 //\r
535329b5 2337 // Select msa header node and show it in editor panel\r
a13899c5 2338 //\r
09ef9242 2339 iTree\r
2340 .setSelectionPath(iTree\r
2341 .getPathOfNode(iTree\r
2342 .getNodeById(belongNode, id, IDefaultMutableTreeNode.MSA_HEADER)));\r
739c6b04 2343 showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, GlobalData.openingModuleList.getOpeningModuleById(id));\r
2344 this.currentOpeningModuleIndex = GlobalData.openingModuleList.findIndexOfListById(id);\r
a13899c5 2345 }\r
2346\r
2347 /**\r
2348 Open Package\r
2349\r
2350 @param path input file path\r
2351 \r
2352 **/\r
2353 private void openPackage(String path) {\r
739c6b04 2354 PackageIdentification id = GlobalData.openingPackageList.getIdByPath(path);\r
2355 if (id == null) {\r
a13899c5 2356 //\r
739c6b04 2357 // The package is not in current workspace\r
a13899c5 2358 //\r
ea7f8a93 2359 Log.wrn("Open Package", "The package has not been installed in the current workspace!");\r
a13899c5 2360 return;\r
2361 }\r
2362\r
2363 //\r
2364 // Make the node selected\r
2365 //\r
2366 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
535329b5 2367 IDefaultMutableTreeNode.PACKAGE)));\r
a13899c5 2368 //\r
2369 // Update opening package list information\r
2370 //\r
739c6b04 2371 if (!GlobalData.openingPackageList.getPackageOpen(id)) {\r
a13899c5 2372 //\r
2373 // Insert sub node of module\r
2374 //\r
2375 insertPackageTreeNode(id);\r
2376 iTree.getSelectNode().setOpening(true);\r
2377\r
2378 //\r
2379 // Update opening module list\r
2380 //\r
739c6b04 2381 GlobalData.openingPackageList.setPackageOpen(id, true);\r
09ef9242 2382 Set<TreePath> temp = GlobalData.openingPackageList.getTreePathById(id);\r
2383 temp.add(iTree.getSelectionPath());\r
2384 GlobalData.openingPackageList.setTreePathById(id, temp);\r
a13899c5 2385 }\r
2386 //\r
2387 // Show spd header in editor panel\r
2388 //\r
535329b5 2389 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,\r
2390 IDefaultMutableTreeNode.SPD_HEADER)));\r
739c6b04 2391 showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, GlobalData.openingPackageList.getOpeningPackageById(id));\r
2392 this.currentOpeningPackageIndex = GlobalData.openingPackageList.findIndexOfListById(id);\r
a13899c5 2393 }\r
2394\r
2395 /**\r
2396 Open Package\r
2397\r
2398 @param path input file path\r
2399 \r
2400 **/\r
2401 private void openPlatform(String path) {\r
739c6b04 2402 PlatformIdentification id = GlobalData.openingPlatformList.getIdByPath(path);\r
2403 if (id == null) {\r
a13899c5 2404 //\r
739c6b04 2405 // The platform is not in current workspace\r
a13899c5 2406 //\r
ea7f8a93 2407 Log.wrn("Open Platform", "The platform has not been installed in the current workspace!");\r
a13899c5 2408 return;\r
2409 }\r
2410\r
2411 //\r
2412 // Make the node selected\r
2413 //\r
2414 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
535329b5 2415 IDefaultMutableTreeNode.PLATFORM)));\r
a13899c5 2416 //\r
2417 // Update opening package list information\r
2418 //\r
739c6b04 2419 if (!GlobalData.openingPlatformList.getPlatformOpen(id)) {\r
a13899c5 2420 //\r
2421 // Insert sub node of module\r
2422 //\r
2423 insertPlatformTreeNode(id);\r
2424 iTree.getSelectNode().setOpening(true);\r
2425\r
2426 //\r
2427 // Update opening module list\r
2428 //\r
739c6b04 2429 GlobalData.openingPlatformList.setPlatformOpen(id, true);\r
09ef9242 2430 Set<TreePath> temp = GlobalData.openingPlatformList.getTreePathById(id);\r
2431 temp.add(iTree.getSelectionPath());\r
2432 GlobalData.openingPlatformList.setTreePathById(id, temp);\r
a13899c5 2433 }\r
2434 //\r
2435 // Show fpd header in editor panel\r
2436 //\r
535329b5 2437 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,\r
2438 IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));\r
739c6b04 2439 showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER,\r
2440 GlobalData.openingPlatformList.getOpeningPlatformById(id));\r
2441 this.currentOpeningPlatformIndex = GlobalData.openingPlatformList.findIndexOfListById(id);\r
a13899c5 2442 }\r
2443\r
2444 /**\r
2445 Save module \r
2446 \r
2447 **/\r
2448 private void saveModule(int index) {\r
739c6b04 2449 OpeningModuleType omt = GlobalData.openingModuleList.getOpeningModuleByIndex(index);\r
a13899c5 2450 if (omt.isNew()) {\r
2451 if (getNewFilePath(DataType.MODULE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
2452 return;\r
2453 }\r
2454 }\r
2455 try {\r
2456 SaveFile.saveMsaFile(omt.getId().getPath(), omt.getXmlMsa());\r
739c6b04 2457 GlobalData.openingModuleList.setNew(omt.getId(), false);\r
2458 GlobalData.openingModuleList.setModuleSaved(omt.getId(), true);\r
a13899c5 2459 } catch (Exception e) {\r
ed1665f2 2460 Log.wrn("Save Module", e.getMessage());\r
a13899c5 2461 Log.err("Save Module", e.getMessage());\r
2462 }\r
2463 }\r
2464\r
2465 /**\r
2466 Save package \r
2467 \r
2468 **/\r
2469 private void savePackage(int index) {\r
739c6b04 2470 OpeningPackageType opt = GlobalData.openingPackageList.getOpeningPackageByIndex(index);\r
a13899c5 2471 if (opt.isNew()) {\r
2472 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
2473 return;\r
2474 }\r
2475 }\r
2476 try {\r
2477 SaveFile.saveSpdFile(opt.getId().getPath(), opt.getXmlSpd());\r
739c6b04 2478 GlobalData.openingPackageList.setNew(opt.getId(), false);\r
2479 GlobalData.openingPackageList.setPackageSaved(opt.getId(), true);\r
a13899c5 2480 } catch (Exception e) {\r
ed1665f2 2481 Log.wrn("Save Package", e.getMessage());\r
a13899c5 2482 Log.err("Save Package", e.getMessage());\r
2483 }\r
2484 }\r
2485\r
2486 /**\r
2487 Save platform \r
2488 \r
2489 **/\r
2490 private void savePlatform(int index) {\r
739c6b04 2491 OpeningPlatformType opt = GlobalData.openingPlatformList.getOpeningPlatformByIndex(index);\r
a13899c5 2492 if (opt.isNew()) {\r
2493 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {\r
2494 return;\r
2495 }\r
2496 }\r
2497 try {\r
2498 SaveFile.saveFpdFile(opt.getId().getPath(), opt.getXmlFpd());\r
739c6b04 2499 GlobalData.openingPlatformList.setNew(opt.getId(), false);\r
2500 GlobalData.openingPlatformList.setPlatformSaved(opt.getId(), true);\r
a13899c5 2501 } catch (Exception e) {\r
ed1665f2 2502 Log.wrn("Save Package", e.getMessage());\r
a13899c5 2503 Log.err("Save Package", e.getMessage());\r
2504 }\r
2505 }\r
2506\r
a13899c5 2507 public void componentResized(ComponentEvent arg0) {\r
8792f60f 2508 if (this.jSplitPane != null) {\r
2509 this.jSplitPane.setSize(this.getWidth() - DataType.MAIN_FRAME_WIDTH_SPACING,\r
2510 this.getHeight() - DataType.MAIN_FRAME_HEIGHT_SPACING);\r
2511 this.jSplitPane.validate();\r
2512 resizeDesktopPanel();\r
2513 }\r
a13899c5 2514 }\r
2515\r
2516 /**\r
2517 Resize JDesktopPanel\r
2518 \r
2519 */\r
2520 private void resizeDesktopPanel() {\r
2521 resizeDesktopPanel(this.jDesktopPaneModule);\r
2522 resizeDesktopPanel(this.jDesktopPanePackage);\r
2523 resizeDesktopPanel(this.jDesktopPanePlatform);\r
2524 }\r
2525\r
2526 /**\r
2527 Resize JDesktopPanel\r
2528 \r
2529 */\r
2530 private void resizeDesktopPanel(JDesktopPane jdk) {\r
2531 JInternalFrame[] iif = jdk.getAllFrames();\r
2532 for (int index = 0; index < iif.length; index++) {\r
2533 iif[index].setSize(jdk.getWidth(), jdk.getHeight());\r
2534 }\r
2535 }\r
2536\r
09ef9242 2537 private void insertModuleTreeNode(Identification id, IDefaultMutableTreeNode belongNode) {\r
2538 iTree.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode.MSA_HEADER, true, id,\r
2539 belongNode));\r
2540 iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id,\r
2541 belongNode));\r
a13899c5 2542 iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",\r
09ef9242 2543 IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id,\r
2544 belongNode));\r
55e83b18 2545 iTree\r
09ef9242 2546 .addNode(new IDefaultMutableTreeNode("Package Dependencies",\r
2547 IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id, belongNode));\r
2548 iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id,\r
2549 belongNode));\r
2550 iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id, belongNode));\r
2551 iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id, belongNode));\r
2552 iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id, belongNode));\r
2553 iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id,\r
2554 belongNode));\r
2555 iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id,\r
2556 belongNode));\r
2557 iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id,\r
2558 belongNode));\r
2559 iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id,\r
2560 belongNode));\r
2561 iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id,\r
2562 belongNode));\r
2563 iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id, belongNode));\r
2564 iTree.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode.MSA_EXTERNS, true, id,\r
2565 belongNode));\r
2566 iTree.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode.MSA_PCDS, true, id, belongNode));\r
b3cb8ee7 2567 iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.MSA_BUILDOPTIONS, true, id, belongNode));\r
a13899c5 2568 }\r
2569\r
2570 private void insertPackageTreeNode(Identification id) {\r
09ef9242 2571 IDefaultMutableTreeNode idmtTemp = this.dmtnPackageDescription;\r
2572 iTree.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode.SPD_HEADER, true, id,\r
2573 idmtTemp));\r
a13899c5 2574 iTree.addNode(new IDefaultMutableTreeNode("Library Class Declarations",\r
09ef9242 2575 IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id,\r
2576 idmtTemp));\r
2577 iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id,\r
2578 idmtTemp));\r
535329b5 2579 iTree.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,\r
09ef9242 2580 id, idmtTemp));\r
a13899c5 2581 iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,\r
09ef9242 2582 true, id, idmtTemp));\r
2583 iTree\r
2584 .addNode(new IDefaultMutableTreeNode("Protocol Declarations",\r
2585 IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id, idmtTemp));\r
a13899c5 2586 iTree.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode.SPD_PPIDECLARATIONS,\r
09ef9242 2587 true, id, idmtTemp));\r
a13899c5 2588 iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,\r
09ef9242 2589 true, id, idmtTemp));\r
2590 //\r
2591 // Add modules in this package\r
2592 //\r
2593 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
2594 IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
2595\r
2596 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
2597 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
2598 id, idmtTemp);\r
2599 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
2600 false, id, idmtTemp);\r
2601\r
2602 Vector<ModuleIdentification> vModule = wt.getAllModules(new PackageIdentification(id));\r
2603 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
2604 if (vModule.get(indexJ).isLibrary()) {\r
2605 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
2606 IDefaultMutableTreeNode.MODULE, false,\r
2607 vModule.get(indexJ), idmtTemp));\r
2608 } else {\r
2609 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
2610 IDefaultMutableTreeNode.MODULE, false,\r
2611 vModule.get(indexJ), idmtTemp));\r
2612 }\r
2613 }\r
2614 if (dmtnModulePackageModule.getChildCount() > 0) {\r
2615 iTree.addNode(dmtnModulePackageModule);\r
2616 }\r
2617 if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
2618 iTree.addNode(dmtnModulePackageLibrary);\r
2619 }\r
a13899c5 2620 }\r
2621\r
2622 private void insertPlatformTreeNode(Identification id) {\r
09ef9242 2623 IDefaultMutableTreeNode idmtTemp = this.dmtnPlatformDescription;\r
535329b5 2624 iTree.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode.FPD_PLATFORMHEADER, true,\r
09ef9242 2625 id, idmtTemp));\r
92e29378 2626 iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",\r
09ef9242 2627 IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id, idmtTemp));\r
2628 iTree.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode.FPD_FLASH, true, id,\r
2629 idmtTemp));\r
a13899c5 2630 iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,\r
09ef9242 2631 true, id, idmtTemp));\r
ea7f8a93 2632 iTree.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",\r
09ef9242 2633 IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id,\r
2634 idmtTemp));\r
2635 iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id,\r
2636 idmtTemp));\r
2637\r
2638 //\r
2639 // Add modules in this platform\r
2640 //\r
2641 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;\r
2642 IDefaultMutableTreeNode dmtnModulePackageModule = null;\r
2643\r
2644 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",\r
2645 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,\r
2646 id, idmtTemp);\r
2647 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,\r
2648 false, id, idmtTemp);\r
2649\r
2650 Vector<ModuleIdentification> vModule = wt.getAllModules(new PlatformIdentification(id));\r
2651 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {\r
2652 if (vModule.get(indexJ).isLibrary()) {\r
2653 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
2654 IDefaultMutableTreeNode.MODULE, false,\r
2655 vModule.get(indexJ), idmtTemp));\r
2656 } else {\r
2657 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),\r
2658 IDefaultMutableTreeNode.MODULE, false,\r
2659 vModule.get(indexJ), idmtTemp));\r
2660 }\r
2661 }\r
2662 if (dmtnModulePackageModule.getChildCount() > 0) {\r
2663 iTree.addNode(dmtnModulePackageModule);\r
2664 }\r
2665 if (dmtnModulePackageLibrary.getChildCount() > 0) {\r
2666 iTree.addNode(dmtnModulePackageLibrary);\r
2667 }\r
a13899c5 2668 }\r
2669\r
2670 /**\r
2671 Operate when double click a tree node\r
2672 \r
2673 **/\r
2674 private void doubleClickModuleTreeNode() {\r
a929458e 2675 Identification id = null;\r
2676 int intCategory = -1;\r
a13899c5 2677 String path = null;\r
09ef9242 2678 IDefaultMutableTreeNode belongNode = null;\r
fe1543a5 2679\r
b79fc835 2680 try {\r
b63cc1b6 2681 //\r
2682 // Get selected tree node\r
2683 //\r
2684 if (iTree.getSelectNode() != null) {\r
2685 id = iTree.getSelectNode().getId();\r
2686 }\r
739c6b04 2687\r
78b5fb82 2688 //\r
2689 // If id is null, return directly\r
2690 //\r
2691 if (id == null) {\r
2692 return;\r
2693 }\r
2694\r
b63cc1b6 2695 intCategory = iTree.getSelectCategory();\r
2696 belongNode = iTree.getSelectNode().getBelongNode();\r
2697\r
fe1543a5 2698 // \r
2699 // If the node is not opened yet\r
2700 // Insert top level elements first\r
2701 //\r
2702 if (intCategory == IDefaultMutableTreeNode.MODULE) {\r
09ef9242 2703 path = iTree.getSelectNode().getId().getPath();\r
2704 openModule(path, belongNode);\r
fe1543a5 2705 return;\r
2706 }\r
2707 if (intCategory == IDefaultMutableTreeNode.PACKAGE) {\r
2708 path = iTree.getSelectNode().getId().getPath();\r
2709 openPackage(path);\r
2710 return;\r
2711 }\r
2712 if (intCategory == IDefaultMutableTreeNode.PLATFORM) {\r
2713 path = iTree.getSelectNode().getId().getPath();\r
2714 openPlatform(path);\r
2715 return;\r
a13899c5 2716 }\r
739c6b04 2717\r
ed1665f2 2718 //\r
2719 // Show editor panel\r
2720 //\r
2721 if (intCategory >= IDefaultMutableTreeNode.MSA_HEADER && intCategory < IDefaultMutableTreeNode.SPD_HEADER) {\r
739c6b04 2722 showModuleElement(intCategory,\r
2723 GlobalData.openingModuleList.getOpeningModuleById(new ModuleIdentification(id)));\r
2724 this.currentOpeningModuleIndex = GlobalData.openingModuleList\r
2725 .findIndexOfListById(new ModuleIdentification(\r
2726 id));\r
ed1665f2 2727 }\r
2728 if (intCategory >= IDefaultMutableTreeNode.SPD_HEADER\r
2729 && intCategory < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
739c6b04 2730 showPackageElement(intCategory,\r
2731 GlobalData.openingPackageList.getOpeningPackageById(new PackageIdentification(id)));\r
2732 this.currentOpeningPackageIndex = GlobalData.openingPackageList\r
2733 .findIndexOfListById(new PackageIdentification(\r
2734 id));\r
ed1665f2 2735 }\r
2736 if (intCategory >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {\r
739c6b04 2737 showPlatformElement(\r
2738 intCategory,\r
2739 GlobalData.openingPlatformList\r
2740 .getOpeningPlatformById(new PlatformIdentification(id)));\r
2741 this.currentOpeningPlatformIndex = GlobalData.openingPlatformList\r
2742 .findIndexOfListById(new PlatformIdentification(\r
2743 id));\r
ed1665f2 2744 }\r
b79fc835 2745 } catch (Exception e) {\r
2746 Log.err("double click category: " + intCategory);\r
2747 Log.err("double click belong node: " + belongNode.toString());\r
2748 Log.err("double click id path: " + id);\r
2749 Log.err("double click exception: " + e.getMessage());\r
2750 }\r
a13899c5 2751 }\r
2752\r
2753 /**\r
2754 Show content of editor panel via selected element\r
2755 \r
2756 @param elementType\r
2757 @param fpd\r
2758 \r
92e29378 2759 **/\r
a13899c5 2760 private void showPlatformElement(int elementType, OpeningPlatformType fpd) {\r
2761 this.cleanDesktopPanePlatform();\r
92e29378 2762\r
a13899c5 2763 switch (elementType) {\r
2764 case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:\r
d6d24759 2765 FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd);\r
a13899c5 2766 getJDesktopPanePlatform().add(frmFpdPlatformDefs, 1);\r
2767 break;\r
2768 case IDefaultMutableTreeNode.FPD_PLATFORMHEADER:\r
d6d24759 2769 FpdHeader frmFpdHeader = new FpdHeader(fpd);\r
a13899c5 2770 getJDesktopPanePlatform().add(frmFpdHeader, 1);\r
2771 break;\r
2772 case IDefaultMutableTreeNode.FPD_FLASH:\r
d6d24759 2773 FpdFlash frmFpdFlash = new FpdFlash(fpd);\r
a13899c5 2774 getJDesktopPanePlatform().add(frmFpdFlash, 1);\r
2775 break;\r
2776 case IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES:\r
d6d24759 2777 FpdFrameworkModules frmFpdFrameworkModules = new FpdFrameworkModules(fpd);\r
a13899c5 2778 getJDesktopPanePlatform().add(frmFpdFrameworkModules, 1);\r
2779 break;\r
2780 case IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS:\r
d6d24759 2781 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions = new FpdDynamicPcdBuildDefinitions(fpd);\r
a13899c5 2782 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions, 1);\r
2783 break;\r
2784 case IDefaultMutableTreeNode.FPD_BUILDOPTIONS:\r
d6d24759 2785 FpdBuildOptions frmFpdBuildOptions = new FpdBuildOptions(fpd);\r
a13899c5 2786 getJDesktopPanePlatform().add(frmFpdBuildOptions, 1);\r
2787 break;\r
2788 }\r
2789 this.jTabbedPaneEditor.setSelectedIndex(2);\r
2790 resizeDesktopPanel();\r
2791 }\r
2792\r
2793 /**\r
2794 Show content of editor panel via selected element\r
2795 \r
2796 @param elementType\r
2797 @param spd\r
2798 \r
2799 */\r
2800 private void showPackageElement(int elementType, OpeningPackageType spd) {\r
2801 this.cleanDesktopPanePackage();\r
2802 Tools.dirForNewSpd = spd.getId().getPath();\r
2803 switch (elementType) {\r
2804 case IDefaultMutableTreeNode.SPD_HEADER:\r
d6d24759 2805 SpdHeader frmSpdHeader = new SpdHeader(spd);\r
a13899c5 2806 getJDesktopPanePackage().add(frmSpdHeader, 1);\r
2807 break;\r
a13899c5 2808 case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:\r
82484861 2809 SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd, this);\r
a13899c5 2810 getJDesktopPanePackage().add(frmSlcd, 1);\r
2811 break;\r
2812 case IDefaultMutableTreeNode.SPD_MSAFILES:\r
82484861 2813 SpdMsaFiles frmSmf = new SpdMsaFiles(spd, this);\r
a13899c5 2814 getJDesktopPanePackage().add(frmSmf, 1);\r
2815 break;\r
2816 case IDefaultMutableTreeNode.SPD_PACKAGEHEADERS:\r
82484861 2817 SpdPackageHeaders frmSph = new SpdPackageHeaders(spd, this);\r
a13899c5 2818 getJDesktopPanePackage().add(frmSph, 1);\r
2819 break;\r
2820 case IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS:\r
82484861 2821 SpdGuidDecls frmSgd = new SpdGuidDecls(spd, this);\r
a13899c5 2822 getJDesktopPanePackage().add(frmSgd, 1);\r
2823 break;\r
2824 case IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS:\r
82484861 2825 SpdProtocolDecls frmSprod = new SpdProtocolDecls(spd, this);\r
a13899c5 2826 getJDesktopPanePackage().add(frmSprod, 1);\r
2827 break;\r
2828 case IDefaultMutableTreeNode.SPD_PPIDECLARATIONS:\r
82484861 2829 SpdPpiDecls frmSppid = new SpdPpiDecls(spd, this);\r
a13899c5 2830 getJDesktopPanePackage().add(frmSppid, 1);\r
2831 break;\r
2832 case IDefaultMutableTreeNode.SPD_PCDDECLARATIONS:\r
82484861 2833 SpdPcdDefs frmSpcdd = new SpdPcdDefs(spd, this);\r
a13899c5 2834 getJDesktopPanePackage().add(frmSpcdd, 1);\r
2835 break;\r
2836 }\r
2837 this.jTabbedPaneEditor.setSelectedIndex(1);\r
2838 resizeDesktopPanel();\r
2839 }\r
2840\r
2841 /**\r
2842 Show content of editor panel via selected element\r
2843 \r
2844 @param elementType\r
2845 @param msa\r
2846 \r
2847 */\r
2848 private void showModuleElement(int elementType, OpeningModuleType msa) {\r
2849 this.cleanDesktopPaneModule();\r
2850 switch (elementType) {\r
2851 case IDefaultMutableTreeNode.MSA_HEADER:\r
2852 MsaHeader frmMsaHeader = new MsaHeader(msa);\r
2853 getJDesktopPaneModule().add(frmMsaHeader, 1);\r
2854 break;\r
a13899c5 2855 case IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS:\r
a9e882c9 2856 ModuleLibraryClassDefinitions frmMlcd = new ModuleLibraryClassDefinitions(msa, this);\r
a13899c5 2857 getJDesktopPaneModule().add(frmMlcd, 1);\r
2858 break;\r
2859 case IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES:\r
a9e882c9 2860 ModulePackageDependencies frmMpd = new ModulePackageDependencies(msa, this);\r
a13899c5 2861 getJDesktopPaneModule().add(frmMpd, 1);\r
2862 break;\r
2863 case IDefaultMutableTreeNode.MSA_SOURCEFILES:\r
a9e882c9 2864 ModuleSourceFiles frmMsf = new ModuleSourceFiles(msa, this);\r
a13899c5 2865 getJDesktopPaneModule().add(frmMsf, 1);\r
2866 break;\r
2867 case IDefaultMutableTreeNode.MSA_PROTOCOLS:\r
a9e882c9 2868 ModuleProtocols frmMp = new ModuleProtocols(msa, this);\r
a13899c5 2869 getJDesktopPaneModule().add(frmMp, 1);\r
2870 break;\r
2871 case IDefaultMutableTreeNode.MSA_EVENTS:\r
a9e882c9 2872 ModuleEvents frmMe = new ModuleEvents(msa, this);\r
a13899c5 2873 getJDesktopPaneModule().add(frmMe, 1);\r
2874 break;\r
2875 case IDefaultMutableTreeNode.MSA_HOBS:\r
a9e882c9 2876 ModuleHobs frmMh = new ModuleHobs(msa, this);\r
a13899c5 2877 getJDesktopPaneModule().add(frmMh, 1);\r
2878 break;\r
2879 case IDefaultMutableTreeNode.MSA_PPIS:\r
a9e882c9 2880 ModulePpis frmMpp = new ModulePpis(msa, this);\r
a13899c5 2881 getJDesktopPaneModule().add(frmMpp, 1);\r
2882 break;\r
2883 case IDefaultMutableTreeNode.MSA_VARIABLES:\r
a9e882c9 2884 ModuleVariables frmMv = new ModuleVariables(msa, this);\r
a13899c5 2885 getJDesktopPaneModule().add(frmMv, 1);\r
2886 break;\r
2887 case IDefaultMutableTreeNode.MSA_BOOTMODES:\r
a9e882c9 2888 ModuleBootModes frmMbm = new ModuleBootModes(msa, this);\r
a13899c5 2889 getJDesktopPaneModule().add(frmMbm, 1);\r
2890 break;\r
2891 case IDefaultMutableTreeNode.MSA_SYSTEMTABLES:\r
a9e882c9 2892 ModuleSystemTables frmMst = new ModuleSystemTables(msa, this);\r
a13899c5 2893 getJDesktopPaneModule().add(frmMst, 1);\r
2894 break;\r
2895 case IDefaultMutableTreeNode.MSA_DATAHUBS:\r
a9e882c9 2896 ModuleDataHubs frmMdh = new ModuleDataHubs(msa, this);\r
a13899c5 2897 getJDesktopPaneModule().add(frmMdh, 1);\r
2898 break;\r
2899 case IDefaultMutableTreeNode.MSA_HIIPACKAGES:\r
a9e882c9 2900 ModuleHiiPackages frmMf = new ModuleHiiPackages(msa, this);\r
a13899c5 2901 getJDesktopPaneModule().add(frmMf, 1);\r
2902 break;\r
2903 case IDefaultMutableTreeNode.MSA_GUIDS:\r
a9e882c9 2904 ModuleGuids frmGuid = new ModuleGuids(msa, this);\r
a13899c5 2905 getJDesktopPaneModule().add(frmGuid, 1);\r
2906 break;\r
2907 case IDefaultMutableTreeNode.MSA_EXTERNS:\r
a9e882c9 2908 ModuleExterns frmMex = new ModuleExterns(msa, this);\r
a13899c5 2909 getJDesktopPaneModule().add(frmMex, 1);\r
2910 break;\r
2911 case IDefaultMutableTreeNode.MSA_PCDS:\r
a9e882c9 2912 ModulePCDs frmPcd = new ModulePCDs(msa, this);\r
a13899c5 2913 getJDesktopPaneModule().add(frmPcd, 1);\r
2914 break;\r
b3cb8ee7 2915 case IDefaultMutableTreeNode.MSA_BUILDOPTIONS:\r
a9e882c9 2916 ModuleBuildOptions frmMbo = new ModuleBuildOptions(msa, this);\r
b3cb8ee7 2917 getJDesktopPaneModule().add(frmMbo, 1);\r
2918 break;\r
a13899c5 2919 }\r
2920 this.jTabbedPaneEditor.setSelectedIndex(0);\r
2921 resizeDesktopPanel();\r
2922 }\r
2923\r
2924 //\r
2925 // Define operations of menu\r
2926 //\r
2927 /**\r
2928 New a file\r
2929 \r
2930 **/\r
2931 private void fileNew() {\r
2932 int result = -1;\r
2933 //\r
2934 // Selece new file type\r
2935 //\r
2936 NewFileChooser nfc = new NewFileChooser(this, true);\r
2937 result = nfc.showDialog();\r
2938\r
2939 if (result == DataType.RETURN_TYPE_CANCEL) {\r
2940 nfc.dispose();\r
2941 return;\r
2942 } else if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
2943 //\r
2944 // To new a module\r
2945 //\r
2946 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
2947 result = smb.showDialog();\r
2948\r
2949 if (result == DataType.RETURN_TYPE_CANCEL) {\r
2950 nfc.dispose();\r
2951 smb.dispose();\r
2952 return;\r
2953 } else if (result == DataType.RETURN_TYPE_OK) {\r
739c6b04 2954 ModuleIdentification mid = smb.getMid();\r
2955 if (mid != null) {\r
2956 //\r
2957 // Update package of workspace first\r
2958 //\r
2959 PackageSurfaceAreaDocument.PackageSurfaceArea psa = null;\r
2960 if (GlobalData.openingPackageList.existsPackage(mid.getPackageId())) {\r
2961 psa = GlobalData.openingPackageList.getPackageSurfaceAreaFromId(mid.getPackageId());\r
2962 }\r
2963 try {\r
2964 wt.addModuleToPackage(mid, psa);\r
2965 } catch (IOException e) {\r
ea7f8a93 2966 Log.wrn("Update MsaFiles in Package", e.getMessage());\r
2967 Log.err("Update MsaFiles in Package", e.getMessage());\r
739c6b04 2968 return;\r
2969 } catch (XmlException e) {\r
ea7f8a93 2970 Log.wrn("Update MsaFiles in Package", e.getMessage());\r
2971 Log.err("Update MsaFiles in Package", e.getMessage());\r
739c6b04 2972 return;\r
2973 } catch (Exception e) {\r
ea7f8a93 2974 Log.wrn("Update MsaFiles in Package", e.getMessage());\r
2975 Log.err("Update MsaFiles in Package", e.getMessage());\r
739c6b04 2976 return;\r
2977 }\r
8792f60f 2978\r
739c6b04 2979 //\r
2980 // Update Global Data\r
2981 //\r
2982 GlobalData.openingModuleList.insertToOpeningModuleList(mid, smb.getMsa());\r
2983 GlobalData.vModuleList.addElement(mid);\r
8792f60f 2984\r
739c6b04 2985 //\r
2986 // Create new node on the tree\r
2987 //\r
2988 addModuleToTree(mid);\r
8792f60f 2989\r
739c6b04 2990 //\r
2991 // Open the node\r
2992 //\r
09ef9242 2993 this.openModule(mid.getPath(), this.dmtnModuleDescription);\r
a13899c5 2994 }\r
a13899c5 2995 }\r
2996 } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
2997 //\r
2998 // To new a package\r
2999 //\r
3000 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
3001 result = smb.showDialog();\r
3002\r
3003 if (result == DataType.RETURN_TYPE_CANCEL) {\r
3004 nfc.dispose();\r
3005 smb.dispose();\r
3006 return;\r
3007 } else if (result == DataType.RETURN_TYPE_OK) {\r
739c6b04 3008 PackageIdentification pid = smb.getPid();\r
3009 if (pid != null) {\r
3010 try {\r
3011 wt.addPackageToDatabase(smb.getPid());\r
3012 } catch (Exception e) {\r
3013 Log.err("addPackageToDatabase", e.getMessage());\r
3014 }\r
9a8d6d9f 3015\r
739c6b04 3016 //\r
3017 // Update Global Data\r
3018 //\r
3019 GlobalData.openingPackageList.insertToOpeningPackageList(pid, smb.getSpd());\r
3020 GlobalData.vPackageList.addElement(pid);\r
9a8d6d9f 3021\r
739c6b04 3022 //\r
3023 // Add to Module Description node\r
3024 //\r
3025 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(pid.getName(),\r
3026 IDefaultMutableTreeNode.MODULE_PACKAGE,\r
09ef9242 3027 false, pid, this.dmtnModuleDescription);\r
9a8d6d9f 3028\r
739c6b04 3029 iTree.addNode(dmtnModuleDescription, node);\r
3030\r
3031 //\r
3032 // Add new SpdHeader node to the tree\r
3033 //\r
09ef9242 3034 node = new IDefaultMutableTreeNode(pid.getName(), IDefaultMutableTreeNode.PACKAGE, true, pid,\r
3035 this.dmtnPackageDescription);\r
739c6b04 3036 iTree.addNode(dmtnPackageDescription, node);\r
9a8d6d9f 3037\r
739c6b04 3038 this.openPackage(pid.getPath());\r
3039 }\r
a13899c5 3040 }\r
3041 } else if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
3042 //\r
3043 // To new a platform\r
3044 //\r
3045 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);\r
3046 result = smb.showDialog();\r
3047\r
3048 if (result == DataType.RETURN_TYPE_CANCEL) {\r
3049 nfc.dispose();\r
3050 smb.dispose();\r
3051 return;\r
3052 } else if (result == DataType.RETURN_TYPE_OK) {\r
739c6b04 3053 PlatformIdentification fid = smb.getFid();\r
3054 if (fid != null) {\r
3055 try {\r
3056 wt.addPlatformToDatabase(fid);\r
3057 } catch (Exception e) {\r
3058 Log.err("addPlatformToDatabase", e.getMessage());\r
3059 }\r
3060\r
3061 //\r
3062 // Update global data\r
3063 //\r
3064 GlobalData.openingPlatformList.insertToOpeningPlatformList(fid, smb.getFpd());\r
3065 GlobalData.vPlatformList.addElement(fid);\r
3066 //\r
3067 // Add new SpdHeader node to the tree\r
3068 //\r
3069 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(fid.getName(),\r
3070 IDefaultMutableTreeNode.PLATFORM, true,\r
09ef9242 3071 fid, this.dmtnPlatformDescription);\r
739c6b04 3072 iTree.addNode(dmtnPlatformDescription, node);\r
3073 this.openPlatform(fid.getPath());\r
a13899c5 3074 }\r
a13899c5 3075 }\r
3076 }\r
3077 }\r
3078\r
3079 /**\r
3080 Open a file\r
3081 \r
3082 **/\r
3083 private void open() {\r
3084 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());\r
3085 fc.setAcceptAllFileFilterUsed(false);\r
3086 IFileFilter iffM = new IFileFilter(DataType.MODULE_SURFACE_AREA_EXT);\r
3087 IFileFilter iffP = new IFileFilter(DataType.PACKAGE_SURFACE_AREA_EXT);\r
3088 IFileFilter iffF = new IFileFilter(DataType.PLATFORM_SURFACE_AREA_EXT);\r
3089 fc.addChoosableFileFilter(iffM);\r
3090 fc.addChoosableFileFilter(iffP);\r
3091 fc.addChoosableFileFilter(iffF);\r
3092 fc.setFileFilter(iffM);\r
3093\r
3094 int result = fc.showOpenDialog(new JPanel());\r
3095\r
3096 if (result == JFileChooser.APPROVE_OPTION) {\r
3097 String path = fc.getSelectedFile().getPath();\r
3098 String match = path.substring(path.length() - 4);\r
3099 if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.MODULE_SURFACE_AREA_EXT)) {\r
09ef9242 3100 openModule(path, this.dmtnModuleDescription);\r
a13899c5 3101 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PACKAGE_SURFACE_AREA_EXT)) {\r
3102 openPackage(path);\r
3103 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PLATFORM_SURFACE_AREA_EXT)) {\r
3104 openPlatform(path);\r
3105 }\r
3106 }\r
3107 }\r
3108\r
3109 /**\r
3110 Close files\r
3111 \r
3112 **/\r
3113 private void close() {\r
09ef9242 3114 TreePath item = null;\r
a13899c5 3115 switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
3116 //\r
3117 // Current is module\r
3118 //\r
3119 case 0:\r
3120 if (this.currentOpeningModuleIndex > -1) {\r
739c6b04 3121 if (!GlobalData.openingModuleList.getModuleSaved(currentOpeningModuleIndex)) {\r
a13899c5 3122 int result = showSaveDialog();\r
3123 if (result == JOptionPane.YES_OPTION) {\r
e421fb25 3124 this.save();\r
a13899c5 3125 }\r
3126 if (result == JOptionPane.NO_OPTION) {\r
3127 // Do nothing\r
3128 }\r
3129 if (result == JOptionPane.CANCEL_OPTION) {\r
3130 return;\r
3131 }\r
3132 }\r
09ef9242 3133\r
3134 //\r
3135 // Remove all tree paths for the module\r
3136 //\r
3137 Set<TreePath> openingTreePaths = GlobalData.openingModuleList\r
3138 .getTreePathByIndex(currentOpeningModuleIndex);\r
3139 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
3140 while (openingTreePathsIter.hasNext()) {\r
3141 item = openingTreePathsIter.next();\r
3142 iTree.getNodeByPath(item).setOpening(false);\r
3143 iTree.removeNodeChildrenByPath(item);\r
3144 }\r
3145\r
fc87d0ba 3146 GlobalData.openingModuleList.reload(this.currentOpeningModuleIndex);\r
739c6b04 3147 GlobalData.openingModuleList.setModuleOpen(this.currentOpeningModuleIndex, false);\r
cc95b47b 3148 GlobalData.openingModuleList.setModuleSaved(this.currentOpeningModuleIndex, true);\r
fc87d0ba 3149 \r
a13899c5 3150 this.cleanDesktopPaneModule();\r
3151 this.currentOpeningModuleIndex = -1;\r
3152 }\r
3153 break;\r
3154 //\r
3155 // Current is package\r
b1cfb8a5 3156 //\r
a13899c5 3157 case 1:\r
3158 if (this.currentOpeningPackageIndex > -1) {\r
739c6b04 3159 if (!GlobalData.openingPackageList.getPackageSaved(currentOpeningPackageIndex)) {\r
a13899c5 3160 int result = showSaveDialog();\r
3161 if (result == JOptionPane.YES_OPTION) {\r
e421fb25 3162 this.save();\r
a13899c5 3163 }\r
3164 if (result == JOptionPane.NO_OPTION) {\r
3165 // Do nothing\r
3166 }\r
3167 if (result == JOptionPane.CANCEL_OPTION) {\r
3168 return;\r
3169 }\r
3170 }\r
09ef9242 3171\r
3172 //\r
3173 // Remove all tree paths for the module\r
3174 //\r
3175 Set<TreePath> openingTreePaths = GlobalData.openingPackageList\r
3176 .getTreePathByIndex(currentOpeningPackageIndex);\r
3177 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
3178 while (openingTreePathsIter.hasNext()) {\r
3179 item = openingTreePathsIter.next();\r
3180 iTree.getNodeByPath(item).setOpening(false);\r
3181 iTree.removeNodeChildrenByPath(item);\r
3182 }\r
3183\r
fc87d0ba 3184 GlobalData.openingPackageList.reload(this.currentOpeningPackageIndex);\r
739c6b04 3185 GlobalData.openingPackageList.setPackageOpen(this.currentOpeningPackageIndex, false);\r
cc95b47b 3186 GlobalData.openingPackageList.setPackageSaved(this.currentOpeningPackageIndex, true);\r
a13899c5 3187 this.cleanDesktopPanePackage();\r
3188 this.currentOpeningPackageIndex = -1;\r
3189 }\r
3190 break;\r
3191 //\r
3192 // Current is platform\r
3193 //\r
3194 case 2:\r
3195 if (this.currentOpeningPlatformIndex > -1) {\r
739c6b04 3196 if (!GlobalData.openingPlatformList.getPlatformSaved(currentOpeningPlatformIndex)) {\r
a13899c5 3197 int result = showSaveDialog();\r
3198 if (result == JOptionPane.YES_OPTION) {\r
e421fb25 3199 this.save();\r
a13899c5 3200 }\r
3201 if (result == JOptionPane.NO_OPTION) {\r
3202 // Do nothing\r
3203 }\r
3204 if (result == JOptionPane.CANCEL_OPTION) {\r
3205 return;\r
3206 }\r
3207 }\r
09ef9242 3208\r
3209 //\r
3210 // Remove all tree paths for the module\r
3211 //\r
3212 Set<TreePath> openingTreePaths = GlobalData.openingPlatformList\r
3213 .getTreePathByIndex(currentOpeningPlatformIndex);\r
3214 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();\r
3215 while (openingTreePathsIter.hasNext()) {\r
3216 item = openingTreePathsIter.next();\r
3217 iTree.getNodeByPath(item).setOpening(false);\r
3218 iTree.removeNodeChildrenByPath(item);\r
3219 }\r
3220\r
fc87d0ba 3221 GlobalData.openingPlatformList.reload(this.currentOpeningPlatformIndex);\r
739c6b04 3222 GlobalData.openingPlatformList.setPlatformOpen(this.currentOpeningPlatformIndex, false);\r
cc95b47b 3223 GlobalData.openingPlatformList.setPlatformSaved(this.currentOpeningPlatformIndex, true);\r
a13899c5 3224 this.cleanDesktopPanePlatform();\r
3225 this.currentOpeningPlatformIndex = -1;\r
3226 }\r
3227 break;\r
3228 }\r
3229 }\r
3230\r
3231 /**\r
3232 Close all opening files and clean all showing internal frame\r
3233 \r
3234 **/\r
57046e97 3235 private int closeAll() {\r
3236 int result = JOptionPane.NO_OPTION;\r
739c6b04 3237 if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
3238 || !GlobalData.openingPlatformList.isSaved()) {\r
a13899c5 3239 result = showSaveDialog();\r
3240 }\r
3241 if (result == JOptionPane.YES_OPTION) {\r
3242 this.saveAll();\r
3243 }\r
3244 if (result == JOptionPane.NO_OPTION) {\r
43dc3851 3245 //\r
a13899c5 3246 // Do nothing\r
43dc3851 3247 //\r
a13899c5 3248 }\r
57046e97 3249 if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {\r
3250 return -1;\r
a13899c5 3251 }\r
3252 this.cleanDesktopPane();\r
739c6b04 3253 GlobalData.openingModuleList.closeAll();\r
3254 GlobalData.openingPackageList.closeAll();\r
3255 GlobalData.openingPlatformList.closeAll();\r
e421fb25 3256\r
57046e97 3257 return 0;\r
ff383de4 3258 }\r
3259\r
3260 /**\r
3261 Refresh all global data from disk to memory\r
3262 \r
3263 **/\r
3264 private void refresh() {\r
3265 GlobalData.init();\r
a13899c5 3266 }\r
3267\r
3268 /**\r
3269 Save currentModule when press button OK\r
3270 \r
3271 **/\r
3272 private void save() {\r
3273 switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
3274 case 0:\r
3275 if (this.currentOpeningModuleIndex > -1) {\r
3276 saveModule(this.currentOpeningModuleIndex);\r
3277 }\r
3278 break;\r
3279 case 1:\r
3280 if (this.currentOpeningPackageIndex > -1) {\r
3281 savePackage(this.currentOpeningPackageIndex);\r
3282 }\r
3283 break;\r
3284 case 2:\r
3285 if (this.currentOpeningPlatformIndex > -1) {\r
3286 savePlatform(this.currentOpeningPlatformIndex);\r
3287 }\r
3288 break;\r
3289 }\r
3290 }\r
3291\r
3292 private void saveAs() {\r
3293\r
3294 }\r
3295\r
3296 private void saveAll() {\r
3297 //\r
3298 // Save all modules\r
3299 //\r
739c6b04 3300 for (int index = 0; index < GlobalData.openingModuleList.size(); index++) {\r
3301 if (!GlobalData.openingModuleList.getModuleSaved(index)) {\r
a13899c5 3302 saveModule(index);\r
3303 }\r
3304 }\r
3305\r
3306 //\r
3307 // Save all packages\r
3308 //\r
739c6b04 3309 for (int index = 0; index < GlobalData.openingPackageList.size(); index++) {\r
3310 if (!GlobalData.openingPackageList.getPackageSaved(index)) {\r
a13899c5 3311 savePackage(index);\r
3312 }\r
3313 }\r
3314\r
3315 //\r
3316 // Save all platforms\r
3317 //\r
739c6b04 3318 for (int index = 0; index < GlobalData.openingPlatformList.size(); index++) {\r
3319 if (!GlobalData.openingPlatformList.getPlatformSaved(index)) {\r
a13899c5 3320 savePlatform(index);\r
3321 }\r
3322 }\r
3323 }\r
3324\r
3325 /**\r
3326 To save changed items before exit.\r
3327 \r
3328 **/\r
3329 private void exit() {\r
57046e97 3330 int result = JOptionPane.NO_OPTION;\r
739c6b04 3331 if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()\r
3332 || !GlobalData.openingPlatformList.isSaved()) {\r
a13899c5 3333 result = showSaveDialog();\r
3334 }\r
3335 if (result == JOptionPane.YES_OPTION) {\r
3336 this.saveAll();\r
57046e97 3337 } else if (result == JOptionPane.NO_OPTION) {\r
a13899c5 3338 // Do nothing\r
57046e97 3339 } else if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {\r
a13899c5 3340 return;\r
3341 }\r
3342 this.dispose();\r
3343 System.exit(0);\r
3344 }\r
3345\r
8792f60f 3346 /**\r
3347 To find all defined PPIs in workspace\r
3348 \r
3349 **/\r
55e83b18 3350 private void findPpi() {\r
3351 FindResult fr = FindResult.getInstance("PPI");\r
3352 fr.setVisible(true);\r
3353 }\r
3354\r
3355 /**\r
3356 To find all defined PROTOCOLs in workspace\r
3357 \r
3358 **/\r
3359 private void findProtocol() {\r
3360 FindResult fr = FindResult.getInstance("PROTOCOL");\r
3361 fr.setVisible(true);\r
3362 }\r
3363\r
3364 /**\r
3365 To find all defined PROTOCOLs in workspace\r
3366 \r
3367 **/\r
3368 private void findGuid() {\r
3369 FindResult fr = FindResult.getInstance("GUID");\r
3370 fr.setVisible(true);\r
3371 }\r
3372\r
3373 /**\r
3374 To find all defined PROTOCOLs in workspace\r
3375 \r
3376 **/\r
3377 private void findPcd() {\r
3378 FindResult fr = FindResult.getInstance("PCD");\r
3379 fr.setVisible(true);\r
3380 }\r
3381\r
3382 /**\r
3383 To find all defined Library Classes in workspace\r
3384 \r
3385 **/\r
3386 private void findLibraryClass() {\r
3387 FindResult fr = FindResult.getInstance("LIBRARY_CLASS");\r
3388 fr.setVisible(true);\r
3389 }\r
3390\r
3391 /**\r
3392 To find all defined Library Instances in workspace\r
3393 \r
3394 **/\r
3395 private void findLibraryInstance() {\r
3396 FindResult fr = FindResult.getInstance("LIBRARY_INSTANCE");\r
3397 fr.setVisible(true);\r
3398 }\r
8792f60f 3399\r
a13899c5 3400 /**\r
3401 Switch current workspace to others\r
3402 \r
3403 **/\r
3404 private void changeWorkspace() {\r
3405 SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
3406 int result = sw.showDialog();\r
3407 if (result == DataType.RETURN_TYPE_CANCEL) {\r
3408 return;\r
3409 } else if (result == DataType.RETURN_TYPE_OK) {\r
3410 //\r
3411 // Reinit whole window\r
3412 //\r
4917d9dd 3413 this.closeAll();\r
92e29378 3414 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["\r
3415 + Workspace.getCurrentWorkspace() + "]");\r
b1cfb8a5 3416 //\r
4917d9dd 3417 // Refrash the tree\r
b1cfb8a5 3418 //\r
4917d9dd 3419 this.refresh();\r
d12f87d3 3420 this.makeEmptyTree();\r
a13899c5 3421 }\r
3422 sw.dispose();\r
3423 }\r
92e29378 3424\r
43dc3851 3425 /**\r
3426 To create a Far file from current workspace\r
3427 \r
3428 **/\r
3429 private void createFar() {\r
3430 CreateStepOne cso = new CreateStepOne(this, true);\r
3431 int result = cso.showDialog();\r
3432 if (result == DataType.RETURN_TYPE_OK) {\r
ea7f8a93 3433 String strReturn = "Far Creation Completed!";\r
82484861 3434 JOptionPane.showConfirmDialog(this, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
43dc3851 3435 JOptionPane.INFORMATION_MESSAGE);\r
3436 }\r
3437 cso.dispose();\r
3438 }\r
3439\r
3440 /**\r
3441 To install a Far file to current workspace\r
3442 \r
3443 **/\r
3444 private void installFar() {\r
3445 InstallStepOne iso = new InstallStepOne(this, true);\r
3446 int result = iso.showDialog();\r
3447 if (result == DataType.RETURN_TYPE_OK) {\r
ea7f8a93 3448 String strReturn = "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";\r
82484861 3449 JOptionPane.showConfirmDialog(this, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
43dc3851 3450 JOptionPane.INFORMATION_MESSAGE);\r
3451 this.closeAll();\r
ff383de4 3452 this.refresh();\r
3453 this.makeEmptyTree();\r
43dc3851 3454 }\r
3455 iso.dispose();\r
3456 }\r
3457\r
3458 /**\r
3459 To remove a Far's items from current workspace\r
3460 \r
3461 **/\r
3462 private void removeFar() {\r
3463 DeleteStepOne dso = new DeleteStepOne(this, true);\r
3464 int result = dso.showDialog();\r
3465 if (result == DataType.RETURN_TYPE_OK) {\r
ea7f8a93 3466 String strReturn = "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";\r
82484861 3467 JOptionPane.showConfirmDialog(this, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
43dc3851 3468 JOptionPane.INFORMATION_MESSAGE);\r
3469 this.closeAll();\r
ff383de4 3470 this.refresh();\r
3471 this.makeEmptyTree();\r
43dc3851 3472 }\r
3473 dso.dispose();\r
3474 }\r
3475\r
3476 /**\r
3477 To update an existing Far file\r
3478 \r
3479 **/\r
3480 private void updateFar() {\r
3481 UpdateStepOne uso = new UpdateStepOne(this, true);\r
3482 int result = uso.showDialog();\r
3483 if (result == DataType.RETURN_TYPE_OK) {\r
ea7f8a93 3484 String strReturn = "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";\r
82484861 3485 JOptionPane.showConfirmDialog(this, strReturn, "Done", JOptionPane.DEFAULT_OPTION,\r
43dc3851 3486 JOptionPane.INFORMATION_MESSAGE);\r
3487 this.closeAll();\r
ff383de4 3488 this.refresh();\r
3489 this.makeEmptyTree();\r
43dc3851 3490 }\r
3491 uso.dispose();\r
3492 }\r
3493\r
79cb6fdb 3494 /**\r
92e29378 3495 Show Tool Chain Configuration Dialog to setup Tool Chain\r
3496 \r
3497 **/\r
79cb6fdb 3498 private void setupToolChainConfiguration() {\r
8f4f211c 3499 ToolChainConfig tcc = ToolChainConfig.getInstance();\r
3500 tcc.showDialog();\r
79cb6fdb 3501 }\r
92e29378 3502\r
dbf5dd75 3503 private void configBuildPreferences() {\r
55e83b18 3504 Preferences bt = Preferences.getInstance();\r
3505 bt.showDialog();\r
dbf5dd75 3506 }\r
55e83b18 3507\r
a13899c5 3508 /**\r
3509 Clone selected item\r
3510 \r
3511 **/\r
3512 private void cloneItem() {\r
3513 int mode = -1;\r
92e29378 3514\r
a13899c5 3515 //\r
3516 // Check if there is any item can be cloned\r
3517 //\r
3518 if (iTree.getSelectionPath() == null) {\r
ed1665f2 3519 Log.wrn("Clone", "Please select a target to clone!");\r
a13899c5 3520 return;\r
3521 }\r
3522 int category = iTree.getSelectCategory();\r
3523 Identification id = iTree.getSelectNode().getId();\r
92e29378 3524\r
a13899c5 3525 if (category == IDefaultMutableTreeNode.WORKSPACE) {\r
3526 mode = DataType.RETURN_TYPE_WORKSPACE;\r
3527 id = null;\r
3528 }\r
09ef9242 3529 if ((category == IDefaultMutableTreeNode.MODULE)\r
3530 || (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER)) {\r
a13899c5 3531 mode = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;\r
3532 }\r
09ef9242 3533 if ((category == IDefaultMutableTreeNode.PACKAGE)\r
3534 || (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
a13899c5 3535 mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;\r
3536 }\r
09ef9242 3537 if ((category == IDefaultMutableTreeNode.PLATFORM) || (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {\r
a13899c5 3538 mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;\r
3539 }\r
92e29378 3540\r
a13899c5 3541 Clone c = new Clone(this, true, mode, id);\r
3542 int result = c.showDialog();\r
92e29378 3543\r
a13899c5 3544 if (result == DataType.RETURN_TYPE_CANCEL) {\r
3545 c.dispose();\r
3546 }\r
3547 if (result == DataType.RETURN_TYPE_WORKSPACE) {\r
ea7f8a93 3548 Tools.showInformationMessage("Workspace Clone Completed!");\r
a13899c5 3549 }\r
3550 if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {\r
ea7f8a93 3551 Tools.showInformationMessage("Module Clone Completed!");\r
55a2762d 3552 addModuleToTree(c.getMid());\r
a13899c5 3553 }\r
3554 if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {\r
ea7f8a93 3555 Tools.showInformationMessage("Package Clone Completed!");\r
a13899c5 3556 //\r
3557 // Add new SpdHeader node to the tree\r
3558 //\r
739c6b04 3559 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(GlobalData.vPackageList.lastElement().getName(),\r
09ef9242 3560 IDefaultMutableTreeNode.PACKAGE, false,\r
3561 GlobalData.vPackageList.lastElement(),\r
3562 this.dmtnPackageDescription);\r
3563 iTree.addNode(this.dmtnPackageDescription, node);\r
a13899c5 3564 }\r
3565 if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {\r
3566 Tools.showInformationMessage("Platform Surface Area Clone Finished");\r
a13899c5 3567 //\r
3568 // Add new SpdHeader node to the tree\r
3569 //\r
739c6b04 3570 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(\r
3571 GlobalData.vPlatformList.lastElement().getName(),\r
4917d9dd 3572 IDefaultMutableTreeNode.PLATFORM, false,\r
3573 GlobalData.vPlatformList.lastElement(),\r
09ef9242 3574 this.dmtnPlatformDescription);\r
3575 iTree.addNode(this.dmtnPlatformDescription, node);\r
a13899c5 3576 }\r
3577 if (result == DataType.RETURN_TYPE_OK) {\r
3578\r
3579 }\r
3580 }\r
3581\r
3582 public void valueChanged(TreeSelectionEvent arg0) {\r
3583 // TODO Auto-generated method stub\r
3584\r
3585 }\r
3586\r
3587 public void menuCanceled(MenuEvent arg0) {\r
3588 // TODO Auto-generated method stub\r
3589\r
3590 }\r
3591\r
3592 public void menuDeselected(MenuEvent arg0) {\r
3593 // TODO Auto-generated method stub\r
3594\r
3595 }\r
3596\r
3597 public void menuSelected(MenuEvent arg0) {\r
3598 if (arg0.getSource() == jMenuFile) {\r
3599 //\r
3600 // Enable close/close all if some files are opened\r
3601 //\r
e421fb25 3602 switch (this.jTabbedPaneEditor.getSelectedIndex()) {\r
3603 case 0:\r
3604 jMenuItemFileClose\r
3605 .setEnabled(GlobalData.openingModuleList\r
3606 .getModuleOpen(this.currentOpeningModuleIndex));\r
3607 jMenuItemFileSave\r
3608 .setEnabled(!GlobalData.openingModuleList\r
3609 .getModuleSaved(this.currentOpeningModuleIndex));\r
3610 break;\r
3611 case 1:\r
3612 jMenuItemFileClose\r
3613 .setEnabled(GlobalData.openingPackageList\r
3614 .getPackageOpen(this.currentOpeningPackageIndex));\r
3615 jMenuItemFileSave\r
3616 .setEnabled(!GlobalData.openingPackageList\r
3617 .getPackageSaved(this.currentOpeningPackageIndex));\r
3618 break;\r
3619 case 2:\r
3620 jMenuItemFileClose\r
3621 .setEnabled(GlobalData.openingPlatformList\r
3622 .getPlatformOpen(this.currentOpeningPlatformIndex));\r
3623 jMenuItemFileSave\r
3624 .setEnabled(!GlobalData.openingPlatformList\r
3625 .getPlatformSaved(this.currentOpeningPlatformIndex));\r
3626 break;\r
3627 }\r
739c6b04 3628 jMenuItemFileCloseAll.setEnabled(GlobalData.openingModuleList.isOpen()\r
3629 || GlobalData.openingPackageList.isOpen()\r
3630 || GlobalData.openingPlatformList.isOpen());\r
a13899c5 3631\r
3632 //\r
3633 // Enable save/save all if some files are changed\r
3634 //\r
739c6b04 3635 jMenuItemFileSaveAll.setEnabled(!GlobalData.openingModuleList.isSaved()\r
3636 || !GlobalData.openingPackageList.isSaved()\r
3637 || !GlobalData.openingPlatformList.isSaved());\r
a13899c5 3638 }\r
3639\r
3640 if (arg0.getSource() == jMenuTools) {\r
3641 //\r
3642 // Enable clone when select some items\r
3643 //\r
3644 if (iTree.getSelectionPath() == null) {\r
3645 jMenuItemToolsClone.setEnabled(false);\r
3646 } else {\r
3647 int category = iTree.getSelectCategory();\r
09ef9242 3648 if (category == IDefaultMutableTreeNode.MODULE_DESCRIPTION\r
3649 || category == IDefaultMutableTreeNode.PACKAGE_DESCRIPTION\r
3650 || category == IDefaultMutableTreeNode.PLATFORM_DESCRIPTION\r
55a2762d 3651 || category == IDefaultMutableTreeNode.MODULE_PACKAGE\r
3652 || category == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY\r
3653 || category == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {\r
a13899c5 3654 jMenuItemToolsClone.setEnabled(false);\r
3655 } else {\r
3656 jMenuItemToolsClone.setEnabled(true);\r
3657 }\r
3658 }\r
3659 }\r
3660 }\r
78b5fb82 3661\r
3662 public void keyTyped(KeyEvent arg0) {\r
3663 // TODO Auto-generated method stub\r
3664\r
3665 }\r
3666\r
3667 public void keyPressed(KeyEvent arg0) {\r
3668 // TODO Auto-generated method stub\r
3669\r
3670 }\r
3671\r
3672 public void keyReleased(KeyEvent arg0) {\r
3673 if (arg0.getSource() == this.iTree) {\r
3674 if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {\r
3675 this.doubleClickModuleTreeNode();\r
3676 }\r
3677 }\r
3678 }\r
b63cc1b6 3679\r
3680 /**\r
3681 Search whole workspace and find all module's name and guid, and save them to a file\r
3682 \r
3683 **/\r
3684 private void generateGuidsXref() {\r
3685 //\r
3686 // Init File Chooser\r
3687 //\r
3688 JFileChooser fc = new JFileChooser();\r
3689 fc.setCurrentDirectory(new File(Workspace.getCurrentWorkspace()));\r
3690 fc.setSelectedFile(new File(Workspace.getCurrentWorkspace() + DataType.FILE_SEPARATOR\r
3691 + DataType.GUIDS_XREF_FILE_NAME));\r
3692 fc.setMultiSelectionEnabled(false);\r
3693\r
3694 //\r
3695 // Get guids xref and save to file\r
3696 //\r
0e8d8bc7 3697 int result = fc.showSaveDialog(new JPanel());\r
b63cc1b6 3698 if (result == JFileChooser.APPROVE_OPTION) {\r
3699 Vector<String> v = wt.getAllModuleGuidXref();\r
3700 if (v.size() < 1) {\r
3701 Log.wrn("No guids found!!!");\r
3702 return;\r
3703 }\r
3704 File f = fc.getSelectedFile();\r
3705 if (!f.exists()) {\r
3706 try {\r
3707 f.createNewFile();\r
3708 } catch (IOException e) {\r
3709 Log.wrn("Fail to create file", e.getMessage());\r
3710 Log.err("Fail to create file when generating guids.xref", e.getMessage());\r
3711 }\r
3712 }\r
3713 FileWriter fw = null;\r
3714 BufferedWriter bw = null;\r
3715 try {\r
3716 fw = new FileWriter(f);\r
3717 bw = new BufferedWriter(fw);\r
3718 for (int index = 0; index < v.size(); index++) {\r
3719 bw.write(v.get(index));\r
3720 bw.newLine();\r
3721 }\r
3722 bw.flush();\r
3723 fw.flush();\r
3724 bw.close();\r
3725 fw.close();\r
3726 } catch (IOException e) {\r
3727 Log.wrn("Fail to write file", e.getMessage());\r
3728 Log.err("Fail to write file when generating guids.xref", e.getMessage());\r
0e8d8bc7 3729 return;\r
b63cc1b6 3730 }\r
0e8d8bc7 3731\r
82484861 3732 JOptionPane.showConfirmDialog(this, "File is created", "Generate guids.xref", JOptionPane.DEFAULT_OPTION,\r
0e8d8bc7 3733 JOptionPane.INFORMATION_MESSAGE);\r
b63cc1b6 3734 }\r
3735 }\r
007f887e 3736\r
3737 /**\r
3738 Check if WORKSPACE Environment is valid\r
3739 \r
3740 **/\r
3741 private void checkWorkspace() {\r
3742 switch (Workspace.checkCurrentWorkspace()) {\r
3743 case Workspace.WORKSPACE_VALID:\r
3744 break;\r
3745 case Workspace.WORKSPACE_NOT_DEFINED:\r
3746 JOptionPane\r
3747 .showConfirmDialog(\r
82484861 3748 this,\r
e421fb25 3749 "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. "\r
3750 + DataType.LINE_SEPARATOR\r
3751 + DataType.LINE_SEPARATOR\r
3752 + "NOTICE:"\r
3753 + DataType.LINE_SEPARATOR\r
3754 + "This does not change the System Environment Variable."\r
3755 + DataType.LINE_SEPARATOR\r
3756 + "It only applies to where the Wizard will manage modification and file creations.",\r
007f887e 3757 "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
3758 SwitchWorkspace sw = new SwitchWorkspace(this, true);\r
3759 int result = sw.showDialog();\r
3760 if (result == DataType.RETURN_TYPE_CANCEL) {\r
3761 this.dispose();\r
3762 System.exit(0);\r
3763 } else if (result == DataType.RETURN_TYPE_OK) {\r
3764 sw.dispose();\r
3765 break;\r
3766 }\r
3767 case Workspace.WORKSPACE_NOT_EXIST:\r
82484861 3768 JOptionPane.showConfirmDialog(this, "Defined WORKSPACE Is Not Existed", "Error",\r
007f887e 3769 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
3770 this.dispose();\r
3771 System.exit(0);\r
3772 case Workspace.WORKSPACE_NOT_DIRECTORY:\r
82484861 3773 JOptionPane.showConfirmDialog(this, "Defined WORKSPACE Is Not A Directory", "Error",\r
007f887e 3774 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
3775 this.dispose();\r
3776 System.exit(0);\r
3777 case Workspace.WORKSPACE_NOT_VALID:\r
82484861 3778 JOptionPane.showConfirmDialog(this, "WORKSPACE Environment Variable Is Not Valid", "Error",\r
007f887e 3779 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);\r
3780 this.dispose();\r
3781 System.exit(0);\r
ae69d4da 3782 case Workspace.WORKSPACE_NO_TARGET_FILE:\r
82484861 3783 JOptionPane.showConfirmDialog(this, "Target.txt File Is Not Existed", "Error", JOptionPane.DEFAULT_OPTION,\r
e421fb25 3784 JOptionPane.ERROR_MESSAGE);\r
ae69d4da 3785 this.dispose();\r
3786 System.exit(0);\r
007f887e 3787 }\r
3788 }\r
a13899c5 3789}\r