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