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