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