3 The main GUI for module editor.
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 package org
.tianocore
.frameworkwizard
;
18 import java
.awt
.event
.ActionEvent
;
19 import java
.awt
.event
.ComponentEvent
;
20 import java
.awt
.event
.ComponentListener
;
21 import java
.awt
.event
.MouseEvent
;
22 import java
.awt
.event
.MouseListener
;
23 import java
.awt
.event
.WindowEvent
;
24 import java
.io
.IOException
;
25 import java
.util
.Vector
;
27 import javax
.swing
.JButton
;
28 import javax
.swing
.JCheckBoxMenuItem
;
29 import javax
.swing
.JDesktopPane
;
30 import javax
.swing
.JFileChooser
;
31 import javax
.swing
.JFrame
;
32 import javax
.swing
.JInternalFrame
;
33 import javax
.swing
.JMenu
;
34 import javax
.swing
.JMenuBar
;
35 import javax
.swing
.JMenuItem
;
36 import javax
.swing
.JOptionPane
;
37 import javax
.swing
.JPanel
;
38 import javax
.swing
.JScrollPane
;
39 import javax
.swing
.JSplitPane
;
40 import javax
.swing
.JTabbedPane
;
41 import javax
.swing
.event
.MenuEvent
;
42 import javax
.swing
.event
.MenuListener
;
43 import javax
.swing
.event
.TreeSelectionEvent
;
44 import javax
.swing
.event
.TreeSelectionListener
;
46 import org
.apache
.xmlbeans
.XmlException
;
47 import org
.tianocore
.ModuleSurfaceAreaDocument
;
48 import org
.tianocore
.PackageSurfaceAreaDocument
;
49 import org
.tianocore
.PlatformSurfaceAreaDocument
;
50 import org
.tianocore
.frameworkwizard
.common
.DataType
;
51 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
52 import org
.tianocore
.frameworkwizard
.common
.Log
;
53 import org
.tianocore
.frameworkwizard
.common
.OpenFile
;
54 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
55 import org
.tianocore
.frameworkwizard
.common
.Tools
;
56 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
57 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleList
;
58 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
59 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageList
;
60 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
61 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformList
;
62 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
63 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
64 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
65 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
66 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
67 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
68 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
69 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
70 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
71 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
72 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
73 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
74 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDefinitions
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
83 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
84 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
85 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
86 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
87 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
88 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
89 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
90 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
91 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
92 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
93 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
94 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
95 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
96 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
97 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
98 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
99 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
100 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
101 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
102 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
103 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
104 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
105 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
106 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
107 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
110 The class is used to show main GUI of FrameworkWizard
111 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
114 public class FrameworkWizardUI
extends IFrame
implements MouseListener
, TreeSelectionListener
, ComponentListener
,
117 /// Define class Serial Version UID
119 private static final long serialVersionUID
= -7103240960573031772L;
122 /// Used to save information of all files
124 private Vector
<ModuleIdentification
> vModuleList
= new Vector
<ModuleIdentification
>();
126 private Vector
<PackageIdentification
> vPackageList
= new Vector
<PackageIdentification
>();
128 private Vector
<PlatformIdentification
> vPlatformList
= new Vector
<PlatformIdentification
>();
130 private OpeningModuleList openingModuleList
= new OpeningModuleList();
132 private OpeningPackageList openingPackageList
= new OpeningPackageList();
134 private OpeningPlatformList openingPlatformList
= new OpeningPlatformList();
136 private int currentOpeningModuleIndex
= -1;
138 private int currentOpeningPackageIndex
= -1;
140 private int currentOpeningPlatformIndex
= -1;
143 /// Used to generate tree structure
145 private IDefaultMutableTreeNode dmtnRoot
= null;
147 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
149 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
151 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
156 private JPanel jContentPane
= null;
158 private JMenuBar jMenuBar
= null;
160 private JMenu jMenuFile
= null;
162 private JMenuItem jMenuItemFileNew
= null;
164 private JMenuItem jMenuItemFileSaveAs
= null;
166 private JMenuItem jMenuItemFileExit
= null;
168 private JMenu jMenuEdit
= null;
170 private JDesktopPane jDesktopPaneModule
= null;
172 private JDesktopPane jDesktopPanePackage
= null;
174 private JDesktopPane jDesktopPanePlatform
= null;
176 private JTabbedPane jTabbedPaneTree
= null;
178 private JTabbedPane jTabbedPaneEditor
= null;
180 private IDesktopManager iDesktopManager
= new IDesktopManager();
182 private JScrollPane jScrollPaneTree
= null;
184 private ITree iTree
= null;
186 private JMenu jMenuHelp
= null;
188 private JMenuItem jMenuItemHelpAbout
= null;
190 private JMenuItem jMenuItemEditDelete
= null;
192 private WorkspaceTools wt
= new WorkspaceTools();
194 private JMenuItem jMenuItemFileSave
= null;
196 private JMenuItem jMenuItemFileClose
= null;
198 private JMenu jMenuTools
= null;
200 private JMenu jMenuWindow
= null;
202 private JPanel jPanelOperation
= null;
204 private JButton jButtonOk
= null;
206 private JButton jButtonCancel
= null;
208 private JMenuItem jMenuItemFileOpen
= null;
210 private JMenuItem jMenuItemFileCloseAll
= null;
212 private JMenuItem jMenuItemFileSaveAll
= null;
214 private JMenuItem jMenuItemFilePageSetup
= null;
216 private JMenuItem jMenuItemFilePrint
= null;
218 private JMenuItem jMenuItemFileImport
= null;
220 private JMenuItem jMenuItemFileProperties
= null;
222 private JMenu jMenuFileRecentFiles
= null;
224 private JSplitPane jSplitPane
= null;
226 private JMenuItem jMenuItemEditUndo
= null;
228 private JMenuItem jMenuItemEditRedo
= null;
230 private JMenuItem jMenuItemEditCut
= null;
232 private JMenuItem jMenuItemEditCopy
= null;
234 private JMenuItem jMenuItemEditPaste
= null;
236 private JMenuItem jMenuItemEditSelectAll
= null;
238 private JMenuItem jMenuItemEditFind
= null;
240 private JMenuItem jMenuItemEditFindNext
= null;
242 private JMenu jMenuView
= null;
244 private JMenu jMenuViewToolbars
= null;
246 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
248 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
250 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
252 private JMenuItem jMenuItemViewStandard
= null;
254 private JMenuItem jMenuItemViewAdvanced
= null;
256 private JMenu jMenuProject
= null;
258 private JMenuItem jMenuItemProjectAdmin
= null;
260 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
262 private JMenu jMenuProjectBuildTargets
= null;
264 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug
= null;
266 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease
= null;
268 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
270 private JMenuItem jMenuItemToolsClone
= null;
272 private JMenuItem jMenuItemToolsCodeScan
= null;
274 private JMenuItem jMenuItemWindowDisplaySide
= null;
276 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
278 private JMenuItem jMenuItemViewXML
= null;
280 private JMenuItem jMenuItemWindowTabView
= null;
282 private JMenuItem jMenuItemWindowSource
= null;
284 private JMenuItem jMenuItemWindowXML
= null;
286 private JMenuItem jMenuItemWindowPreferences
= null;
288 private JMenuItem jMenuItemHelpContents
= null;
290 private JMenuItem jMenuItemHelpIndex
= null;
292 private JMenuItem jMenuItemHelpSearch
= null;
294 private JMenuItem jMenuItemProjectInstallFar
= null;
296 private JMenuItem jMenuItemProjectUpdateFar
= null;
298 private JMenuItem jMenuItemProjectRemoveFar
= null;
300 private JMenuItem jMenuItemProjectCreateFar
= null;
303 /// A static definition for this class itself
305 private static FrameworkWizardUI fwui
= null;
308 If the class hasn't an instnace, new one.
310 @return FrameworkWizardUI The instance of this class
313 public static FrameworkWizardUI
getInstance() {
315 fwui
= new FrameworkWizardUI();
321 This method initializes jMenuBar
323 @return javax.swing.JMenuBar Main menu bar for the entire GUI
326 private JMenuBar
getjJMenuBar() {
327 if (jMenuBar
== null) {
328 jMenuBar
= new JMenuBar();
329 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
330 jMenuBar
.add(getJMenuFile());
331 jMenuBar
.add(getJMenuEdit());
332 jMenuBar
.add(getJMenuView());
333 jMenuBar
.add(getJMenuProject());
334 jMenuBar
.add(getJMenuTools());
335 jMenuBar
.add(getJMenuWindow());
336 jMenuBar
.add(getJMenuHelp());
342 This method initializes jSplitPane
344 @return javax.swing.JSplitPane
347 private JSplitPane
getJSplitPane() {
348 if (jSplitPane
== null) {
349 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
350 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
351 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
352 jSplitPane
.addComponentListener(this);
358 This method initializes jTabbedPaneEditor
360 @return javax.swing.JTabbedPane
363 private JTabbedPane
getJTabbedPaneEditor() {
364 if (jTabbedPaneEditor
== null) {
365 jTabbedPaneEditor
= new JTabbedPane();
366 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
367 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
368 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
369 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
371 .setMinimumSize(new java
.awt
.Dimension(
372 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
373 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
374 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
375 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
376 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
378 return jTabbedPaneEditor
;
382 This method initializes jTabbedPaneTree
384 @return javax.swing.JTabbedPane
387 private JTabbedPane
getJTabbedPaneTree() {
388 if (jTabbedPaneTree
== null) {
389 jTabbedPaneTree
= new JTabbedPane();
391 .setPreferredSize(new java
.awt
.Dimension(
392 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
393 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
395 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
396 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
397 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
399 return jTabbedPaneTree
;
403 This method initializes jMenuFile
405 @return javax.swing.JMenu jMenuModule
408 private JMenu
getJMenuFile() {
409 if (jMenuFile
== null) {
411 // Set jMenuFile's attributes
413 jMenuFile
= new JMenu();
414 jMenuFile
.setText("File");
415 jMenuFile
.setMnemonic('F');
416 jMenuFile
.addMenuListener(this);
419 // Add sub menu items
421 jMenuFile
.add(getJMenuItemFileNew());
422 jMenuFile
.add(getJMenuItemFileOpen());
423 jMenuFile
.add(getJMenuItemFileClose());
424 jMenuFile
.add(getJMenuItemFileCloseAll());
425 jMenuFile
.addSeparator();
427 jMenuFile
.add(getJMenuFileRecentFiles());
428 jMenuFile
.add(getJMenuItemFileSave());
429 jMenuFile
.add(getJMenuItemFileSaveAs());
430 jMenuFile
.add(getJMenuItemFileSaveAll());
431 jMenuFile
.addSeparator();
433 jMenuFile
.add(getJMenuItemFilePageSetup());
434 jMenuFile
.add(getJMenuItemFilePrint());
435 jMenuFile
.add(getJMenuItemFileImport());
436 jMenuFile
.add(getJMenuItemFileProperties());
438 jMenuFile
.add(getJMenuItemFileExit());
444 This method initializes jMenuItemFileSaveAs
446 @return javax.swing.JMenuItem jMenuItemFileSaveAs
449 private JMenuItem
getJMenuItemFileSaveAs() {
450 if (jMenuItemFileSaveAs
== null) {
451 jMenuItemFileSaveAs
= new JMenuItem();
452 jMenuItemFileSaveAs
.setText("Save As...");
453 jMenuItemFileSaveAs
.setMnemonic('a');
454 jMenuItemFileSaveAs
.addActionListener(this);
455 jMenuItemFileSaveAs
.setEnabled(false);
456 jMenuItemFileSaveAs
.setVisible(false);
458 return jMenuItemFileSaveAs
;
462 This method initializes jMenuItemModuleExit
464 @return javax.swing.JMenuItem jMenuItemModuleExit
467 private JMenuItem
getJMenuItemFileExit() {
468 if (jMenuItemFileExit
== null) {
469 jMenuItemFileExit
= new JMenuItem();
470 jMenuItemFileExit
.setText("Exit");
471 jMenuItemFileExit
.setMnemonic('x');
472 jMenuItemFileExit
.addActionListener(this);
474 return jMenuItemFileExit
;
478 This method initializes jMenuEdit
480 @return javax.swing.JMenu jMenuEdit
483 private JMenu
getJMenuEdit() {
484 if (jMenuEdit
== null) {
486 // Set jMenuEdit's attributes
488 jMenuEdit
= new JMenu();
489 jMenuEdit
.setText("Edit");
490 jMenuEdit
.setMnemonic('E');
491 jMenuEdit
.setVisible(false);
494 // Add sub menu items
496 jMenuEdit
.add(getJMenuItemEditUndo());
497 jMenuEdit
.add(getJMenuItemEditRedo());
498 jMenuEdit
.addSeparator();
500 jMenuEdit
.add(getJMenuItemEditCut());
501 jMenuEdit
.add(getJMenuItemEditCopy());
502 jMenuEdit
.add(getJMenuItemEditPaste());
503 jMenuEdit
.add(getJMenuItemEditDelete());
504 jMenuEdit
.addSeparator();
506 jMenuEdit
.add(getJMenuItemEditSelectAll());
507 jMenuEdit
.add(getJMenuItemEditFind());
508 jMenuEdit
.add(getJMenuItemEditFindNext());
509 jMenuEdit
.addSeparator();
515 This method initializes jDesktopPane
517 @return javax.swing.JDesktopPane jDesktopPane
520 private JDesktopPane
getJDesktopPaneModule() {
521 if (jDesktopPaneModule
== null) {
522 jDesktopPaneModule
= new JDesktopPane();
524 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
525 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
526 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
527 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
529 .setMinimumSize(new java
.awt
.Dimension(
530 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
531 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
532 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
533 jDesktopPaneModule
.addComponentListener(this);
535 return jDesktopPaneModule
;
539 This method initializes jDesktopPane
541 @return javax.swing.JDesktopPane jDesktopPane
544 private JDesktopPane
getJDesktopPanePackage() {
545 if (jDesktopPanePackage
== null) {
546 jDesktopPanePackage
= new JDesktopPane();
548 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
549 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
550 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
551 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
553 .setMinimumSize(new java
.awt
.Dimension(
554 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
555 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
556 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
557 jDesktopPanePackage
.addComponentListener(this);
559 return jDesktopPanePackage
;
563 This method initializes jDesktopPane
565 @return javax.swing.JDesktopPane jDesktopPane
568 private JDesktopPane
getJDesktopPanePlatform() {
569 if (jDesktopPanePlatform
== null) {
570 jDesktopPanePlatform
= new JDesktopPane();
572 .setBounds(new java
.awt
.Rectangle(
573 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
574 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
575 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
576 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
578 .setMinimumSize(new java
.awt
.Dimension(
579 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
580 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
581 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
582 jDesktopPanePlatform
.addComponentListener(this);
584 return jDesktopPanePlatform
;
588 This method initializes jScrollPaneTree
590 @return javax.swing.JScrollPane jScrollPaneTree
593 private JScrollPane
getJScrollPaneTree() {
594 if (jScrollPaneTree
== null) {
595 jScrollPaneTree
= new JScrollPane();
597 .setPreferredSize(new java
.awt
.Dimension(
598 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
599 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
601 .setMinimumSize(new java
.awt
.Dimension(
602 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
603 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
604 jScrollPaneTree
.setViewportView(getITree());
606 return jScrollPaneTree
;
610 This method initializes iTree
612 @return org.tianocore.packaging.common.ui.ITree iTree
615 private ITree
getITree() {
617 //Before open a real module, use an empty root node for the tree
624 This method initializes jMenuHelp
626 @return javax.swing.JMenu jMenuHelp
629 private JMenu
getJMenuHelp() {
630 if (jMenuHelp
== null) {
632 // Set jMenuHelp's attributes
634 jMenuHelp
= new JMenu();
635 jMenuHelp
.setText("Help");
638 // Add sub menu items
640 jMenuHelp
.add(getJMenuItemHelpContents());
641 jMenuHelp
.add(getJMenuItemHelpIndex());
642 jMenuHelp
.add(getJMenuItemHelpSearch());
644 jMenuHelp
.add(getJMenuItemHelpAbout());
650 This method initializes jMenuItemHelpAbout
652 @return javax.swing.JMenuItem jMenuItemHelpAbout
655 private JMenuItem
getJMenuItemHelpAbout() {
656 if (jMenuItemHelpAbout
== null) {
657 jMenuItemHelpAbout
= new JMenuItem();
658 jMenuItemHelpAbout
.setText("About...");
659 jMenuItemHelpAbout
.addActionListener(this);
661 return jMenuItemHelpAbout
;
665 This method initializes jMenuItemEditDelete
667 @return javax.swing.JMenuItem jMenuItemEditDelete
670 private JMenuItem
getJMenuItemEditDelete() {
671 if (jMenuItemEditDelete
== null) {
672 jMenuItemEditDelete
= new JMenuItem();
673 jMenuItemEditDelete
.setText("Delete");
674 jMenuItemEditDelete
.setMnemonic('D');
675 jMenuItemEditDelete
.addActionListener(this);
677 //Disabled first when no module is open
679 jMenuItemEditDelete
.setEnabled(false);
681 return jMenuItemEditDelete
;
685 This method initializes jMenuFileNew
687 @return javax.swing.JMenuItem jMenuFileNew
690 private JMenuItem
getJMenuItemFileNew() {
691 if (jMenuItemFileNew
== null) {
692 jMenuItemFileNew
= new JMenuItem();
693 jMenuItemFileNew
.setText("New...");
694 jMenuItemFileNew
.setMnemonic('N');
695 jMenuItemFileNew
.addActionListener(this);
697 return jMenuItemFileNew
;
701 This method initializes jMenuItemFileSave
703 @return javax.swing.JMenuItem jMenuItemModuleSave
706 private JMenuItem
getJMenuItemFileSave() {
707 if (jMenuItemFileSave
== null) {
708 jMenuItemFileSave
= new JMenuItem();
709 jMenuItemFileSave
.setText("Save");
710 jMenuItemFileSave
.setMnemonic('S');
711 jMenuItemFileSave
.addActionListener(this);
712 jMenuItemFileSave
.setEnabled(true);
714 return jMenuItemFileSave
;
718 This method initializes jMenuItemModuleClose
720 @return javax.swing.JMenuItem jMenuItemModuleClose
723 private JMenuItem
getJMenuItemFileClose() {
724 if (jMenuItemFileClose
== null) {
725 jMenuItemFileClose
= new JMenuItem();
726 jMenuItemFileClose
.setText("Close");
727 jMenuItemFileClose
.setMnemonic('C');
728 jMenuItemFileClose
.setEnabled(true);
729 jMenuItemFileClose
.addActionListener(this);
731 return jMenuItemFileClose
;
735 This method initializes jMenuTools
738 @return javax.swing.JMenu jMenuTools
741 private JMenu
getJMenuTools() {
742 if (jMenuTools
== null) {
744 // Set jMenuTools's attributes
746 jMenuTools
= new JMenu();
747 jMenuTools
.setText("Tools");
748 jMenuTools
.setMnemonic('T');
749 jMenuTools
.addMenuListener(this);
752 // Add sub menu items
754 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
755 jMenuTools
.addSeparator();
757 jMenuTools
.add(getJMenuItemToolsClone());
758 jMenuTools
.add(getJMenuItemToolsCodeScan());
764 This method initializes jMenuWindow
767 @return javax.swing.JMenu jMenuWindow
770 private JMenu
getJMenuWindow() {
771 if (jMenuWindow
== null) {
773 // Set jMenuWindow's attribute
775 jMenuWindow
= new JMenu();
776 jMenuWindow
.setText("Window");
777 jMenuWindow
.setMnemonic('W');
778 jMenuWindow
.setVisible(false);
781 // Add sub menu items
783 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
784 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
785 jMenuWindow
.addSeparator();
787 jMenuWindow
.add(getJMenuItemWindowTabView());
788 jMenuWindow
.addSeparator();
790 jMenuWindow
.add(getJMenuItemWindowSource());
791 jMenuWindow
.add(getJMenuItemWindowXML());
792 jMenuWindow
.addSeparator();
794 jMenuWindow
.add(getJMenuItemWindowPreferences());
800 This method initializes jPanelOperation
803 @return javax.swing.JPanel jPanelOperation
806 private JPanel
getJPanelOperation() {
807 if (jPanelOperation
== null) {
808 jPanelOperation
= new JPanel();
809 jPanelOperation
.setLayout(null);
810 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
811 jPanelOperation
.add(getJButtonOk(), null);
812 jPanelOperation
.add(getJButtonCancel(), null);
813 jPanelOperation
.setVisible(false);
815 return jPanelOperation
;
819 This method initializes jButtonOk
822 @return javax.swing.JButton jButtonOk
825 private JButton
getJButtonOk() {
826 if (jButtonOk
== null) {
827 jButtonOk
= new JButton();
828 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
829 jButtonOk
.setText("Ok");
830 jButtonOk
.setEnabled(false);
831 jButtonOk
.addActionListener(this);
837 This method initializes jButtonCancel
840 @return javax.swing.JButton jButtonCancel
843 private JButton
getJButtonCancel() {
844 if (jButtonCancel
== null) {
845 jButtonCancel
= new JButton();
846 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
847 jButtonCancel
.setText("Cancel");
848 jButtonCancel
.setEnabled(false);
849 jButtonCancel
.addActionListener(this);
850 jButtonCancel
.setVisible(false);
852 return jButtonCancel
;
856 This method initializes jMenuItemFileOpen
858 @return javax.swing.JMenuItem jMenuItemFileOpen
861 private JMenuItem
getJMenuItemFileOpen() {
862 if (jMenuItemFileOpen
== null) {
863 jMenuItemFileOpen
= new JMenuItem();
864 jMenuItemFileOpen
.setText("Open...");
865 jMenuItemFileOpen
.setMnemonic('O');
866 jMenuItemFileOpen
.addActionListener(this);
868 return jMenuItemFileOpen
;
872 This method initializes jMenuItemFileCloseAll
874 @return javax.swing.JMenuItem jMenuItemFileOpen
877 private JMenuItem
getJMenuItemFileCloseAll() {
878 if (jMenuItemFileCloseAll
== null) {
879 jMenuItemFileCloseAll
= new JMenuItem();
880 jMenuItemFileCloseAll
.setText("Close All");
881 jMenuItemFileCloseAll
.setEnabled(true);
882 jMenuItemFileCloseAll
.addActionListener(this);
884 return jMenuItemFileCloseAll
;
888 This method initializes jMenuItemFileSaveAll
890 @return javax.swing.JMenuItem jMenuItemFileSaveAll
893 private JMenuItem
getJMenuItemFileSaveAll() {
894 if (jMenuItemFileSaveAll
== null) {
895 jMenuItemFileSaveAll
= new JMenuItem();
896 jMenuItemFileSaveAll
.setText("Save All");
897 jMenuItemFileSaveAll
.setMnemonic('v');
898 jMenuItemFileSaveAll
.setEnabled(true);
899 jMenuItemFileSaveAll
.addActionListener(this);
901 return jMenuItemFileSaveAll
;
905 This method initializes jMenuItemFilePageSetup
907 @return javax.swing.JMenuItem
910 private JMenuItem
getJMenuItemFilePageSetup() {
911 if (jMenuItemFilePageSetup
== null) {
912 jMenuItemFilePageSetup
= new JMenuItem();
913 jMenuItemFilePageSetup
.setText("Page Setup");
914 jMenuItemFilePageSetup
.setMnemonic('u');
915 jMenuItemFilePageSetup
.setEnabled(false);
916 jMenuItemFilePageSetup
.addActionListener(this);
917 jMenuItemFilePageSetup
.setVisible(false);
919 return jMenuItemFilePageSetup
;
923 This method initializes jMenuItemFilePrint
925 @return javax.swing.JMenuItem
928 private JMenuItem
getJMenuItemFilePrint() {
929 if (jMenuItemFilePrint
== null) {
930 jMenuItemFilePrint
= new JMenuItem();
931 jMenuItemFilePrint
.setText("Print");
932 jMenuItemFilePrint
.setMnemonic('P');
933 jMenuItemFilePrint
.setEnabled(false);
934 jMenuItemFilePrint
.addActionListener(this);
935 jMenuItemFilePrint
.setVisible(false);
937 return jMenuItemFilePrint
;
941 This method initializes jMenuItemFileImport
943 @return javax.swing.JMenuItem
946 private JMenuItem
getJMenuItemFileImport() {
947 if (jMenuItemFileImport
== null) {
948 jMenuItemFileImport
= new JMenuItem();
949 jMenuItemFileImport
.setText("Import");
950 jMenuItemFileImport
.setMnemonic('I');
951 jMenuItemFileImport
.setEnabled(false);
952 jMenuItemFileImport
.addActionListener(this);
953 jMenuItemFileImport
.setVisible(false);
955 return jMenuItemFileImport
;
959 This method initializes jMenuItemFileProperties
961 @return javax.swing.JMenuItem
964 private JMenuItem
getJMenuItemFileProperties() {
965 if (jMenuItemFileProperties
== null) {
966 jMenuItemFileProperties
= new JMenuItem();
967 jMenuItemFileProperties
.setText("Properties");
968 jMenuItemFileProperties
.setMnemonic('t');
969 jMenuItemFileProperties
.setEnabled(false);
970 jMenuItemFileProperties
.addActionListener(this);
971 jMenuItemFileProperties
.setVisible(false);
973 return jMenuItemFileProperties
;
977 This method initializes jMenuFileRecentFiles
979 @return javax.swing.JMenu
982 private JMenu
getJMenuFileRecentFiles() {
983 if (jMenuFileRecentFiles
== null) {
984 jMenuFileRecentFiles
= new JMenu();
985 jMenuFileRecentFiles
.setText("Recent Files");
986 jMenuFileRecentFiles
.setMnemonic('F');
987 jMenuFileRecentFiles
.setEnabled(false);
988 jMenuFileRecentFiles
.addActionListener(this);
989 jMenuFileRecentFiles
.setVisible(false);
991 return jMenuFileRecentFiles
;
995 This method initializes jMenuItemEditUndo
997 @return javax.swing.JMenuItem
1000 private JMenuItem
getJMenuItemEditUndo() {
1001 if (jMenuItemEditUndo
== null) {
1002 jMenuItemEditUndo
= new JMenuItem();
1003 jMenuItemEditUndo
.setText("Undo");
1004 jMenuItemEditUndo
.setMnemonic('U');
1005 jMenuItemEditUndo
.setEnabled(false);
1006 jMenuItemEditUndo
.addActionListener(this);
1008 return jMenuItemEditUndo
;
1012 This method initializes jMenuItemEditRedo
1014 @return javax.swing.JMenuItem
1017 private JMenuItem
getJMenuItemEditRedo() {
1018 if (jMenuItemEditRedo
== null) {
1019 jMenuItemEditRedo
= new JMenuItem();
1020 jMenuItemEditRedo
.setText("Redo");
1021 jMenuItemEditRedo
.setMnemonic('R');
1022 jMenuItemEditRedo
.setEnabled(false);
1023 jMenuItemEditRedo
.addActionListener(this);
1025 return jMenuItemEditRedo
;
1029 This method initializes jMenuItemEditCut
1031 @return javax.swing.JMenuItem
1034 private JMenuItem
getJMenuItemEditCut() {
1035 if (jMenuItemEditCut
== null) {
1036 jMenuItemEditCut
= new JMenuItem();
1037 jMenuItemEditCut
.setText("Cut");
1038 jMenuItemEditCut
.setMnemonic('t');
1039 jMenuItemEditCut
.setEnabled(false);
1040 jMenuItemEditCut
.addActionListener(this);
1042 return jMenuItemEditCut
;
1046 This method initializes jMenuItemEditCopy
1048 @return javax.swing.JMenuItem
1051 private JMenuItem
getJMenuItemEditCopy() {
1052 if (jMenuItemEditCopy
== null) {
1053 jMenuItemEditCopy
= new JMenuItem();
1054 jMenuItemEditCopy
.setText("Copy");
1055 jMenuItemEditCopy
.setMnemonic('C');
1056 jMenuItemEditCopy
.setEnabled(false);
1057 jMenuItemEditCopy
.addActionListener(this);
1059 return jMenuItemEditCopy
;
1063 This method initializes jMenuItemEditPaste
1065 return javax.swing.JMenuItem
1068 private JMenuItem
getJMenuItemEditPaste() {
1069 if (jMenuItemEditPaste
== null) {
1070 jMenuItemEditPaste
= new JMenuItem();
1071 jMenuItemEditPaste
.setText("Paste");
1072 jMenuItemEditPaste
.setMnemonic('P');
1073 jMenuItemEditPaste
.setEnabled(false);
1074 jMenuItemEditPaste
.addActionListener(this);
1076 return jMenuItemEditPaste
;
1080 This method initializes jMenuItem
1082 @return javax.swing.JMenuItem
1085 private JMenuItem
getJMenuItemEditSelectAll() {
1086 if (jMenuItemEditSelectAll
== null) {
1087 jMenuItemEditSelectAll
= new JMenuItem();
1088 jMenuItemEditSelectAll
.setText("Select All");
1089 jMenuItemEditSelectAll
.setMnemonic('A');
1090 jMenuItemEditSelectAll
.setEnabled(false);
1091 jMenuItemEditSelectAll
.addActionListener(this);
1093 return jMenuItemEditSelectAll
;
1097 This method initializes jMenuItemEditFind
1099 @return javax.swing.JMenuItem
1102 private JMenuItem
getJMenuItemEditFind() {
1103 if (jMenuItemEditFind
== null) {
1104 jMenuItemEditFind
= new JMenuItem();
1105 jMenuItemEditFind
.setText("Find");
1106 jMenuItemEditFind
.setMnemonic('F');
1107 jMenuItemEditFind
.setEnabled(false);
1108 jMenuItemEditFind
.addActionListener(this);
1110 return jMenuItemEditFind
;
1114 This method initializes jMenuItemEditFindNext
1116 @return javax.swing.JMenuItem
1119 private JMenuItem
getJMenuItemEditFindNext() {
1120 if (jMenuItemEditFindNext
== null) {
1121 jMenuItemEditFindNext
= new JMenuItem();
1122 jMenuItemEditFindNext
.setText("Find Next");
1123 jMenuItemEditFindNext
.setMnemonic('n');
1124 jMenuItemEditFindNext
.setEnabled(false);
1125 jMenuItemEditFindNext
.addActionListener(this);
1127 return jMenuItemEditFindNext
;
1131 This method initializes jMenuView
1133 @return javax.swing.JMenu
1136 private JMenu
getJMenuView() {
1137 if (jMenuView
== null) {
1139 // Set jMenuView's attributes
1141 jMenuView
= new JMenu();
1142 jMenuView
.setText("View");
1143 jMenuView
.setMnemonic('V');
1144 jMenuView
.setVisible(false);
1147 // Add sub menu items
1149 jMenuView
.add(getJMenuViewToolbars());
1150 jMenuView
.add(getJMenuItemViewAdvanced());
1151 jMenuView
.add(getJMenuItemViewStandard());
1152 jMenuView
.add(getJMenuItemViewXML());
1158 This method initializes jMenuViewToolbars
1160 @return javax.swing.JMenu
1163 private JMenu
getJMenuViewToolbars() {
1164 if (jMenuViewToolbars
== null) {
1165 jMenuViewToolbars
= new JMenu();
1166 jMenuViewToolbars
.setText("Toolbars");
1167 jMenuViewToolbars
.setMnemonic('T');
1169 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1170 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1171 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1173 return jMenuViewToolbars
;
1177 This method initializes jCheckBoxMenuItemViewToolbarsFile
1179 @return javax.swing.JCheckBoxMenuItem
1182 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1183 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1184 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1185 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1186 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1187 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1189 return jCheckBoxMenuItemViewToolbarsFile
;
1193 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1195 @return javax.swing.JCheckBoxMenuItem
1198 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1199 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1200 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1201 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1202 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1203 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1205 return jCheckBoxMenuItemViewToolbarsEdit
;
1209 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1211 @return javax.swing.JCheckBoxMenuItem
1214 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1215 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1216 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1217 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1218 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1219 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1221 return jCheckBoxMenuItemViewToolbarsWindow
;
1225 This method initializes jMenuItemStandard
1227 @return javax.swing.JMenuItem
1230 private JMenuItem
getJMenuItemViewStandard() {
1231 if (jMenuItemViewStandard
== null) {
1232 jMenuItemViewStandard
= new JMenuItem();
1233 jMenuItemViewStandard
.setText("Standard");
1234 jMenuItemViewStandard
.setMnemonic('S');
1235 jMenuItemViewStandard
.setEnabled(false);
1236 jMenuItemViewStandard
.addActionListener(this);
1238 return jMenuItemViewStandard
;
1242 This method initializes jMenuItemAdvanced
1244 @return javax.swing.JMenuItem
1247 private JMenuItem
getJMenuItemViewAdvanced() {
1248 if (jMenuItemViewAdvanced
== null) {
1249 jMenuItemViewAdvanced
= new JMenuItem();
1250 jMenuItemViewAdvanced
.setText("Advanced");
1251 jMenuItemViewAdvanced
.setMnemonic('A');
1252 jMenuItemViewAdvanced
.setEnabled(false);
1253 jMenuItemViewAdvanced
.addActionListener(this);
1255 return jMenuItemViewAdvanced
;
1259 This method initializes jMenuProject
1261 @return javax.swing.JMenu
1264 private JMenu
getJMenuProject() {
1265 if (jMenuProject
== null) {
1267 // Set jMenuProject's attributes
1269 jMenuProject
= new JMenu();
1270 jMenuProject
.setText("Project");
1271 jMenuProject
.setMnemonic('P');
1274 // Add sub menu items
1276 jMenuProject
.add(getJMenuItemProjectAdmin());
1278 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1279 jMenuProject
.addSeparator();
1281 jMenuProject
.add(getJMenuItemProjectCreateFar());
1282 jMenuProject
.add(getJMenuItemProjectInstallFar());
1283 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1284 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1286 jMenuProject
.add(getJMenuProjectBuildTargets());
1288 return jMenuProject
;
1292 This method initializes jMenuItemProjectAdmin
1294 @return javax.swing.JMenuItem
1297 private JMenuItem
getJMenuItemProjectAdmin() {
1298 if (jMenuItemProjectAdmin
== null) {
1299 jMenuItemProjectAdmin
= new JMenuItem();
1300 jMenuItemProjectAdmin
.setText("Admin...");
1301 jMenuItemProjectAdmin
.setMnemonic('A');
1302 jMenuItemProjectAdmin
.setEnabled(false);
1303 jMenuItemProjectAdmin
.addActionListener(this);
1304 jMenuItemProjectAdmin
.setVisible(false);
1306 return jMenuItemProjectAdmin
;
1310 This method initializes jMenuItemProjectChangeWorkspace
1312 @return javax.swing.JMenuItem
1315 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1316 if (jMenuItemProjectChangeWorkspace
== null) {
1317 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1318 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1319 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1320 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1321 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1323 return jMenuItemProjectChangeWorkspace
;
1327 This method initializes jMenuProjectBuildTargets
1329 @return javax.swing.JMenu
1332 private JMenu
getJMenuProjectBuildTargets() {
1333 if (jMenuProjectBuildTargets
== null) {
1334 jMenuProjectBuildTargets
= new JMenu();
1335 jMenuProjectBuildTargets
.setText("Build Targets");
1336 jMenuProjectBuildTargets
.setMnemonic('T');
1337 jMenuProjectBuildTargets
.setVisible(false);
1339 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());
1340 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());
1342 return jMenuProjectBuildTargets
;
1346 This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug
1348 @return javax.swing.JCheckBoxMenuItem
1351 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsDebug() {
1352 if (jCheckBoxMenuItemProjectBuildTargetsDebug
== null) {
1353 jCheckBoxMenuItemProjectBuildTargetsDebug
= new JCheckBoxMenuItem();
1354 jCheckBoxMenuItemProjectBuildTargetsDebug
.setText("Debug");
1355 jCheckBoxMenuItemProjectBuildTargetsDebug
.setEnabled(false);
1357 return jCheckBoxMenuItemProjectBuildTargetsDebug
;
1361 This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease
1363 @return javax.swing.JCheckBoxMenuItem
1366 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsRelease() {
1367 if (jCheckBoxMenuItemProjectBuildTargetsRelease
== null) {
1368 jCheckBoxMenuItemProjectBuildTargetsRelease
= new JCheckBoxMenuItem();
1369 jCheckBoxMenuItemProjectBuildTargetsRelease
.setText("Release");
1370 jCheckBoxMenuItemProjectBuildTargetsRelease
.setEnabled(false);
1372 return jCheckBoxMenuItemProjectBuildTargetsRelease
;
1376 This method initializes jMenuItemToolsToolChainConfiguration
1378 @return javax.swing.JMenuItem
1381 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1382 if (jMenuItemToolsToolChainConfiguration
== null) {
1383 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1384 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1385 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1386 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1388 return jMenuItemToolsToolChainConfiguration
;
1392 This method initializes jMenuItemToolsClone
1394 @return javax.swing.JMenuItem
1397 private JMenuItem
getJMenuItemToolsClone() {
1398 if (jMenuItemToolsClone
== null) {
1399 jMenuItemToolsClone
= new JMenuItem();
1400 jMenuItemToolsClone
.setText("Clone...");
1401 jMenuItemToolsClone
.setMnemonic('l');
1402 jMenuItemToolsClone
.setEnabled(true);
1403 jMenuItemToolsClone
.addActionListener(this);
1405 return jMenuItemToolsClone
;
1409 This method initializes jMenuItemToolsCodeScan
1411 @return javax.swing.JMenuItem
1414 private JMenuItem
getJMenuItemToolsCodeScan() {
1415 if (jMenuItemToolsCodeScan
== null) {
1416 jMenuItemToolsCodeScan
= new JMenuItem();
1417 jMenuItemToolsCodeScan
.setText("Code Scan...");
1418 jMenuItemToolsCodeScan
.setMnemonic('S');
1419 jMenuItemToolsCodeScan
.setEnabled(false);
1420 jMenuItemToolsCodeScan
.addActionListener(this);
1421 jMenuItemToolsCodeScan
.setVisible(false);
1423 return jMenuItemToolsCodeScan
;
1427 This method initializes jMenuItemWindowSplitVertical
1429 @return javax.swing.JMenuItem
1432 private JMenuItem
getJMenuItemWindowDisplaySide() {
1433 if (jMenuItemWindowDisplaySide
== null) {
1434 jMenuItemWindowDisplaySide
= new JMenuItem();
1435 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1436 jMenuItemWindowDisplaySide
.setMnemonic('S');
1437 jMenuItemWindowDisplaySide
.setEnabled(false);
1438 jMenuItemWindowDisplaySide
.addActionListener(this);
1440 return jMenuItemWindowDisplaySide
;
1444 This method initializes jMenuItemWindowSplitHorizontal
1446 @return javax.swing.JMenuItem
1449 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1450 if (jMenuItemWindowDisplayTopBottom
== null) {
1451 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1452 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1453 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1454 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1455 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1457 return jMenuItemWindowDisplayTopBottom
;
1461 This method initializes jMenuItemViewXML
1463 @return javax.swing.JMenuItem
1466 private JMenuItem
getJMenuItemViewXML() {
1467 if (jMenuItemViewXML
== null) {
1468 jMenuItemViewXML
= new JMenuItem();
1469 jMenuItemViewXML
.setText("XML");
1470 jMenuItemViewXML
.setMnemonic('X');
1471 jMenuItemViewXML
.setEnabled(false);
1472 jMenuItemViewXML
.addActionListener(this);
1474 return jMenuItemViewXML
;
1478 This method initializes jMenuItemWindowTabView
1480 @return javax.swing.JMenuItem
1483 private JMenuItem
getJMenuItemWindowTabView() {
1484 if (jMenuItemWindowTabView
== null) {
1485 jMenuItemWindowTabView
= new JMenuItem();
1486 jMenuItemWindowTabView
.setText("Tab View");
1487 jMenuItemWindowTabView
.setMnemonic('T');
1488 jMenuItemWindowTabView
.setEnabled(false);
1489 jMenuItemWindowTabView
.addActionListener(this);
1491 return jMenuItemWindowTabView
;
1495 This method initializes jMenuItemWindowSource
1497 @return javax.swing.JMenuItem
1500 private JMenuItem
getJMenuItemWindowSource() {
1501 if (jMenuItemWindowSource
== null) {
1502 jMenuItemWindowSource
= new JMenuItem();
1503 jMenuItemWindowSource
.setText("Source");
1504 jMenuItemWindowSource
.setMnemonic('S');
1505 jMenuItemWindowSource
.setEnabled(false);
1506 jMenuItemWindowSource
.addActionListener(this);
1508 return jMenuItemWindowSource
;
1512 This method initializes jMenuItemWindowXML
1514 @return javax.swing.JMenuItem
1517 private JMenuItem
getJMenuItemWindowXML() {
1518 if (jMenuItemWindowXML
== null) {
1519 jMenuItemWindowXML
= new JMenuItem();
1520 jMenuItemWindowXML
.setText("XML");
1521 jMenuItemWindowXML
.setMnemonic('X');
1522 jMenuItemWindowXML
.setEnabled(false);
1523 jMenuItemWindowXML
.addActionListener(this);
1525 return jMenuItemWindowXML
;
1529 This method initializes jMenuItemWindowPreferences
1531 @return javax.swing.JMenuItem
1534 private JMenuItem
getJMenuItemWindowPreferences() {
1535 if (jMenuItemWindowPreferences
== null) {
1536 jMenuItemWindowPreferences
= new JMenuItem();
1537 jMenuItemWindowPreferences
.setText("Preferences");
1538 jMenuItemWindowPreferences
.setMnemonic('P');
1539 jMenuItemWindowPreferences
.setEnabled(false);
1540 jMenuItemWindowPreferences
.addActionListener(this);
1542 return jMenuItemWindowPreferences
;
1546 This method initializes jMenuItemHelpContents
1548 @return javax.swing.JMenuItem
1551 private JMenuItem
getJMenuItemHelpContents() {
1552 if (jMenuItemHelpContents
== null) {
1553 jMenuItemHelpContents
= new JMenuItem();
1554 jMenuItemHelpContents
.setText("Contents");
1555 jMenuItemHelpContents
.setMnemonic('C');
1556 jMenuItemHelpContents
.setEnabled(false);
1557 jMenuItemHelpContents
.addActionListener(this);
1558 jMenuItemHelpContents
.setVisible(false);
1560 return jMenuItemHelpContents
;
1564 This method initializes jMenuItemHelpIndex
1566 @return javax.swing.JMenuItem
1569 private JMenuItem
getJMenuItemHelpIndex() {
1570 if (jMenuItemHelpIndex
== null) {
1571 jMenuItemHelpIndex
= new JMenuItem();
1572 jMenuItemHelpIndex
.setText("Index");
1573 jMenuItemHelpIndex
.setMnemonic('I');
1574 jMenuItemHelpIndex
.setEnabled(false);
1575 jMenuItemHelpIndex
.addActionListener(this);
1576 jMenuItemHelpIndex
.setVisible(false);
1578 return jMenuItemHelpIndex
;
1582 This method initializes jMenuItemHelpSearch
1584 @return javax.swing.JMenuItem
1587 private JMenuItem
getJMenuItemHelpSearch() {
1588 if (jMenuItemHelpSearch
== null) {
1589 jMenuItemHelpSearch
= new JMenuItem();
1590 jMenuItemHelpSearch
.setText("Search");
1591 jMenuItemHelpSearch
.setMnemonic('S');
1592 jMenuItemHelpSearch
.setEnabled(false);
1593 jMenuItemHelpSearch
.addActionListener(this);
1594 jMenuItemHelpSearch
.setVisible(false);
1596 return jMenuItemHelpSearch
;
1600 * This method initializes jMenuItemToolsInstallPackage
1602 * @return javax.swing.JMenuItem
1604 private JMenuItem
getJMenuItemProjectInstallFar() {
1605 if (jMenuItemProjectInstallFar
== null) {
1606 jMenuItemProjectInstallFar
= new JMenuItem();
1607 jMenuItemProjectInstallFar
.setText("Install FAR");
1608 jMenuItemProjectInstallFar
.setMnemonic('I');
1609 jMenuItemProjectInstallFar
.setEnabled(true);
1610 jMenuItemProjectInstallFar
.addActionListener(this);
1612 return jMenuItemProjectInstallFar
;
1616 * This method initializes jMenuItemToolsUpdatePackage
1618 * @return javax.swing.JMenuItem
1620 private JMenuItem
getJMenuItemProjectUpdateFar() {
1621 if (jMenuItemProjectUpdateFar
== null) {
1622 jMenuItemProjectUpdateFar
= new JMenuItem();
1623 jMenuItemProjectUpdateFar
.setText("Update FAR");
1624 jMenuItemProjectUpdateFar
.setMnemonic('U');
1625 jMenuItemProjectUpdateFar
.setEnabled(true);
1626 jMenuItemProjectUpdateFar
.addActionListener(this);
1627 jMenuItemProjectUpdateFar
.setVisible(true);
1629 return jMenuItemProjectUpdateFar
;
1633 * This method initializes jMenuItemRemovePackage
1635 * @return javax.swing.JMenuItem
1637 private JMenuItem
getJMenuItemProjectRemoveFar() {
1638 if (jMenuItemProjectRemoveFar
== null) {
1639 jMenuItemProjectRemoveFar
= new JMenuItem();
1640 jMenuItemProjectRemoveFar
.setText("Remove FAR");
1641 jMenuItemProjectRemoveFar
.setMnemonic('R');
1642 jMenuItemProjectRemoveFar
.setEnabled(true);
1643 jMenuItemProjectRemoveFar
.addActionListener(this);
1645 return jMenuItemProjectRemoveFar
;
1649 * This method initializes jMenuItemProjectCreateFar
1651 * @return javax.swing.JMenuItem
1653 private JMenuItem
getJMenuItemProjectCreateFar() {
1654 if (jMenuItemProjectCreateFar
== null) {
1655 jMenuItemProjectCreateFar
= new JMenuItem();
1656 jMenuItemProjectCreateFar
.setText("Create FAR");
1657 jMenuItemProjectCreateFar
.setMnemonic('C');
1658 jMenuItemProjectCreateFar
.addActionListener(this);
1660 return jMenuItemProjectCreateFar
;
1664 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1666 * Main class, start the GUI
1669 public static void main(String
[] args
) {
1670 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance();
1671 module
.setVisible(true);
1675 This is the default constructor
1678 public FrameworkWizardUI() {
1684 This method initializes this
1688 private void init() {
1690 // Set current workspace and check
1691 // Check if exists WORKSPACE
1694 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1695 if (!Workspace
.checkCurrentWorkspace()) {
1696 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1697 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1702 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1703 this.setResizable(true);
1704 this.setJMenuBar(getjJMenuBar());
1705 this.addComponentListener(this);
1706 this.getCompontentsFromFrameworkDatabase();
1707 this.setContentPane(getJContentPane());
1708 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1709 + Workspace
.getCurrentWorkspace() + "]");
1710 this.setExitType(1);
1715 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1719 This method initializes jContentPane
1721 @return javax.swing.JPanel jContentPane
1724 private JPanel
getJContentPane() {
1725 if (jContentPane
== null) {
1726 jContentPane
= new JPanel();
1727 jContentPane
.setLayout(null);
1728 jContentPane
.add(getJPanelOperation(), null);
1729 jContentPane
.add(getJSplitPane(), null);
1731 return jContentPane
;
1735 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1737 * Override actionPerformed to listen all actions
1740 public void actionPerformed(ActionEvent arg0
) {
1742 // Operations of Menu
1744 if (arg0
.getSource() == jMenuItemFileNew
) {
1748 if (arg0
.getSource() == jMenuItemFileOpen
) {
1752 if (arg0
.getSource() == jMenuItemFileClose
) {
1756 if (arg0
.getSource() == jMenuItemFileCloseAll
) {
1760 if (arg0
.getSource() == jMenuItemFileSave
) {
1764 if (arg0
.getSource() == jMenuItemFileSaveAs
) {
1768 if (arg0
.getSource() == jMenuItemFileSaveAll
) {
1772 if (arg0
.getSource() == jMenuItemFileExit
) {
1776 if (arg0
.getSource() == jMenuItemProjectChangeWorkspace
) {
1780 if (arg0
.getSource() == jMenuItemProjectCreateFar
) {
1784 if (arg0
.getSource() == jMenuItemProjectInstallFar
) {
1788 if (arg0
.getSource() == jMenuItemProjectRemoveFar
) {
1792 if (arg0
.getSource() == jMenuItemProjectUpdateFar
) {
1796 if (arg0
.getSource() == jMenuItemToolsClone
) {
1800 if (arg0
.getSource() == jMenuItemToolsToolChainConfiguration
) {
1801 setupToolChainConfiguration();
1804 if (arg0
.getSource() == jMenuItemHelpAbout
) {
1805 About a
= new About(this, true);
1806 int result
= a
.showDialog();
1807 if (result
== DataType
.RETURN_TYPE_OK
) {
1814 Create an empty tree if no file is open
1817 private void makeEmptyTree() {
1821 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1824 // Make Module Description
1826 dmtnModuleDescription
= new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode
.MODULE
, -1);
1829 // First add package
1831 if (this.vPackageList
.size() > 0) {
1832 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1833 IDefaultMutableTreeNode dmtnModulePackage
= null;
1834 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
1835 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
1837 dmtnModulePackage
= new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1838 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
1839 this.vPackageList
.elementAt(index
));
1840 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
1841 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
1842 false, this.vPackageList
.elementAt(index
));
1843 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
1844 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
1845 false, this.vPackageList
.elementAt(index
));
1847 // And then add each module in its package
1849 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(this.vPackageList
.elementAt(index
));
1850 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
1851 if (vModule
.get(indexJ
).isLibrary()) {
1852 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1853 IDefaultMutableTreeNode
.MODULE
,
1854 false, vModule
.get(indexJ
)));
1856 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1857 IDefaultMutableTreeNode
.MODULE
,
1858 false, vModule
.get(indexJ
)));
1861 if (dmtnModulePackageModule
.getChildCount() > 0) {
1862 dmtnModulePackage
.add(dmtnModulePackageModule
);
1864 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
1865 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
1868 dmtnModuleDescription
.add(dmtnModulePackage
);
1873 // Make Package Description
1875 dmtnPackageDescription
= new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode
.PACKAGE
, -1);
1876 if (this.vPackageList
.size() > 0) {
1877 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1878 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1879 IDefaultMutableTreeNode
.PACKAGE
, false,
1880 this.vPackageList
.elementAt(index
)));
1885 // Make Platform Description
1887 dmtnPlatformDescription
= new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode
.PLATFORM
,
1889 if (this.vPlatformList
.size() > 0) {
1890 for (int index
= 0; index
< this.vPlatformList
.size(); index
++) {
1891 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(this.vPlatformList
.elementAt(index
).getName(),
1892 IDefaultMutableTreeNode
.PLATFORM
,
1893 false, this.vPlatformList
.elementAt(index
)));
1898 // Add sub nodes to root node
1900 dmtnRoot
.add(dmtnModuleDescription
);
1901 dmtnRoot
.add(dmtnPackageDescription
);
1902 dmtnRoot
.add(dmtnPlatformDescription
);
1903 iTree
= new ITree(dmtnRoot
);
1904 iTree
.addMouseListener(this);
1905 jScrollPaneTree
.setViewportView(iTree
);
1909 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
1911 * Override windowClosing to popup warning message to confirm quit
1914 public void windowClosing(WindowEvent arg0
) {
1919 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
1921 * Override mouseClicked to check if need display popup menu
1924 public void mouseClicked(MouseEvent arg0
) {
1925 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
1927 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
1930 // When double click
1932 if (arg0
.getClickCount() == 2) {
1933 doubleClickModuleTreeNode();
1937 public void mouseEntered(MouseEvent arg0
) {
1938 // TODO Auto-generated method stub
1941 public void mouseExited(MouseEvent arg0
) {
1942 // TODO Auto-generated method stub
1945 public void mousePressed(MouseEvent arg0
) {
1946 // TODO Auto-generated method stub
1949 public void mouseReleased(MouseEvent arg0
) {
1950 // TODO Auto-generated method stub
1954 Remove all Internal Frame of Module Desktop Pane
1957 private void cleanDesktopPaneModule() {
1958 if (jDesktopPaneModule
!= null) {
1959 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
1960 for (int index
= 0; index
< iif
.length
; index
++) {
1961 iif
[index
].dispose();
1967 Remove all Internal Frame of package Desktop Pane
1970 private void cleanDesktopPanePackage() {
1971 if (jDesktopPanePlatform
!= null) {
1972 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
1973 for (int index
= 0; index
< iif
.length
; index
++) {
1974 iif
[index
].dispose();
1980 Remove all Internal Frame of platform Desktop Pane
1983 private void cleanDesktopPanePlatform() {
1984 if (jDesktopPanePlatform
!= null) {
1985 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
1986 for (int index
= 0; index
< iif
.length
; index
++) {
1987 iif
[index
].dispose();
1993 Remove all Internal Frame of all Desktop Panes
1996 private void cleanDesktopPane() {
1997 cleanDesktopPaneModule();
1998 cleanDesktopPanePackage();
1999 cleanDesktopPanePlatform();
2003 Set file filter as input ext
2009 private int getNewFilePath(String ext
) {
2010 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2011 fc
.setAcceptAllFileFilterUsed(false);
2012 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2013 return fc
.showSaveDialog(new JPanel());
2017 Add a module to tree
2019 @param mid The module node to be added
2022 private void addModuleToTree(ModuleIdentification mid
) {
2024 // Add new MsaHeader node to the tree
2026 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MSA_HEADER
,
2029 // First find the module belongs to which package
2031 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2032 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2034 // To check if has module node or library node
2036 IDefaultMutableTreeNode parentModuleNode
= null;
2037 IDefaultMutableTreeNode parentLibraryNode
= null;
2038 boolean hasModule
= false;
2039 boolean hasLibrary
= false;
2040 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2041 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2042 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2044 parentLibraryNode
= iNode
;
2046 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2048 parentModuleNode
= iNode
;
2055 if (!mid
.isLibrary()) {
2057 // Create parent node first if has no parent node
2060 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2061 false, mid
.getPackageId());
2062 iTree
.addNode(packageNode
, parentModuleNode
);
2065 iTree
.addNode(parentModuleNode
, node
);
2071 if (mid
.isLibrary()) {
2073 // Create parent node first if has no parent node
2076 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2077 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2078 mid
.getPackageId());
2079 iTree
.addNode(packageNode
, parentLibraryNode
);
2082 iTree
.addNode(parentLibraryNode
, node
);
2089 @param path input file path
2092 private void openModule(String path
, ModuleIdentification moduleId
) {
2093 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
2095 msa
= OpenFile
.openMsaFile(path
);
2096 } catch (IOException e
) {
2097 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2098 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2100 } catch (XmlException e
) {
2101 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2102 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2104 } catch (Exception e
) {
2105 Log
.wrn("Open Module Surface Area " + path
, "Invalid file type");
2106 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
2109 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
2110 msa
.getMsaHeader().getVersion(), path
);
2112 // Generate module id
2114 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
2117 // To judge if the module existed in vModuleList
2118 // If not, add it to vModuleList
2120 boolean isFind
= false;
2121 for (int index
= 0; index
< vModuleList
.size(); index
++) {
2122 if (vModuleList
.elementAt(index
).equals(id
)) {
2128 ModuleIdentification mid
= new ModuleIdentification(id
, pid
, moduleId
.isLibrary());
2129 vModuleList
.addElement(mid
);
2130 addModuleToTree(mid
);
2134 // The module is not in existing packages
2136 Log
.err("The module hasn't been added to any package of current workspace!");
2141 // Make the node selected
2143 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2144 IDefaultMutableTreeNode
.MODULE
)));
2146 // Update opening Module list information
2148 if (!openingModuleList
.existsModule(id
)) {
2150 // Insert sub node of module
2152 insertModuleTreeNode(id
);
2153 iTree
.getSelectNode().setOpening(true);
2156 // Update opening module list
2158 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2159 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2162 // Select msa header node and show it in editor panel
2164 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2165 IDefaultMutableTreeNode
.MSA_HEADER
)));
2166 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2167 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2173 @param path input file path
2176 private void openModule(String path
) {
2177 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
2179 msa
= OpenFile
.openMsaFile(path
);
2180 } catch (IOException e
) {
2181 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2182 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2184 } catch (XmlException e
) {
2185 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2186 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2188 } catch (Exception e
) {
2189 Log
.wrn("Open Module Surface Area " + path
, "Invalid file type");
2190 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
2193 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
2194 msa
.getMsaHeader().getVersion(), path
);
2196 // Generate module id
2198 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
2201 // To judge if the module existed in vModuleList
2202 // If not, add it to vModuleList
2204 boolean isFind
= false;
2205 for (int index
= 0; index
< vModuleList
.size(); index
++) {
2206 if (vModuleList
.elementAt(index
).equals(id
)) {
2212 ModuleIdentification mid
= new ModuleIdentification(id
, pid
);
2213 vModuleList
.addElement(mid
);
2214 addModuleToTree(mid
);
2218 // The module is not in existing packages
2220 Log
.wrn("Open Module", "The module hasn't been added to any package of current workspace!");
2225 // Make the node selected
2227 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2228 IDefaultMutableTreeNode
.MODULE
)));
2230 // Update opening Module list information
2232 if (!openingModuleList
.existsModule(id
)) {
2234 // Insert sub node of module
2236 insertModuleTreeNode(id
);
2237 iTree
.getSelectNode().setOpening(true);
2240 // Update opening module list
2242 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2243 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2246 // Select msa header node and show it in editor panel
2248 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2249 IDefaultMutableTreeNode
.MSA_HEADER
)));
2250 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2251 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2257 @param path input file path
2260 private void openPackage(String path
) {
2261 PackageSurfaceAreaDocument
.PackageSurfaceArea spd
= null;
2263 spd
= OpenFile
.openSpdFile(path
);
2264 } catch (IOException e
) {
2265 Log
.wrn("Open Package Surface Area " + path
, e
.getMessage());
2266 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2268 } catch (XmlException e
) {
2269 Log
.wrn("Open Package Surface Area " + path
, e
.getMessage());
2270 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2272 } catch (Exception e
) {
2273 Log
.wrn("Open Package Surface Area " + path
, "Invalid file type");
2274 Log
.err("Open Package Surface Area " + path
, "Invalid file type");
2277 Identification id
= new Identification(spd
.getSpdHeader().getPackageName(), spd
.getSpdHeader().getGuidValue(),
2278 spd
.getSpdHeader().getVersion(), path
);
2280 // To judge if the package existed in vPackageList
2281 // If not, add it to vPackageList
2283 boolean isFind
= false;
2284 for (int index
= 0; index
< vPackageList
.size(); index
++) {
2285 if (vPackageList
.elementAt(index
).equals(id
)) {
2292 // The module is not in existing packages
2294 Log
.wrn("Open Package", "The package hasn't been added to current workspace!");
2299 // Make the node selected
2301 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2302 IDefaultMutableTreeNode
.PACKAGE
)));
2304 // Update opening package list information
2306 if (!openingPackageList
.existsPackage(id
)) {
2308 // Insert sub node of module
2310 insertPackageTreeNode(id
);
2311 iTree
.getSelectNode().setOpening(true);
2314 // Update opening module list
2316 openingPackageList
.insertToOpeningPackageList(id
, spd
);
2317 openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2320 // Show spd header in editor panel
2322 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2323 IDefaultMutableTreeNode
.SPD_HEADER
)));
2324 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, openingPackageList
.getOpeningPackageById(id
));
2325 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2331 @param path input file path
2334 private void openPlatform(String path
) {
2335 PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
= null;
2337 fpd
= OpenFile
.openFpdFile(path
);
2338 } catch (IOException e
) {
2339 Log
.wrn("Open Platform Surface Area " + path
, e
.getMessage());
2340 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2342 } catch (XmlException e
) {
2343 Log
.wrn("Open Platform Surface Area " + path
, e
.getMessage());
2344 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2346 } catch (Exception e
) {
2347 Log
.wrn("Open Platform Surface Area " + path
, "Invalid file type");
2348 Log
.err("Open Platform Surface Area " + path
, "Invalid file type");
2351 Identification id
= new Identification(fpd
.getPlatformHeader().getPlatformName(), fpd
.getPlatformHeader()
2353 fpd
.getPlatformHeader().getVersion(), path
);
2355 // To judge if the platform existed in vPlatformList
2356 // If not, add it to vPlatformList
2358 boolean isFind
= false;
2359 for (int index
= 0; index
< vPlatformList
.size(); index
++) {
2360 if (vPlatformList
.elementAt(index
).equals(id
)) {
2367 // The module is not in existing packages
2369 Log
.wrn("Open Platform", "The platform hasn't been added to current workspace!");
2374 // Make the node selected
2376 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2377 IDefaultMutableTreeNode
.PLATFORM
)));
2379 // Update opening package list information
2381 if (!openingPlatformList
.existsPlatform(id
)) {
2383 // Insert sub node of module
2385 insertPlatformTreeNode(id
);
2386 iTree
.getSelectNode().setOpening(true);
2389 // Update opening module list
2391 openingPlatformList
.insertToOpeningPlatformList(id
, fpd
);
2392 openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2395 // Show fpd header in editor panel
2397 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2398 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2399 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, openingPlatformList
.getOpeningPlatformById(id
));
2400 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2407 private void saveModule(int index
) {
2408 OpeningModuleType omt
= openingModuleList
.getOpeningModuleByIndex(index
);
2410 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2415 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2416 openingModuleList
.setNew(omt
.getId(), false);
2417 openingModuleList
.setModuleSaved(omt
.getId(), true);
2418 } catch (Exception e
) {
2419 Log
.wrn("Save Module", e
.getMessage());
2420 Log
.err("Save Module", e
.getMessage());
2428 private void savePackage(int index
) {
2429 OpeningPackageType opt
= openingPackageList
.getOpeningPackageByIndex(index
);
2431 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2436 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2437 openingPackageList
.setNew(opt
.getId(), false);
2438 openingPackageList
.setPackageSaved(opt
.getId(), true);
2439 } catch (Exception e
) {
2440 Log
.wrn("Save Package", e
.getMessage());
2441 Log
.err("Save Package", e
.getMessage());
2449 private void savePlatform(int index
) {
2450 OpeningPlatformType opt
= openingPlatformList
.getOpeningPlatformByIndex(index
);
2452 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2457 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2458 openingPlatformList
.setNew(opt
.getId(), false);
2459 openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2460 } catch (Exception e
) {
2461 Log
.wrn("Save Package", e
.getMessage());
2462 Log
.err("Save Package", e
.getMessage());
2466 public void componentHidden(ComponentEvent arg0
) {
2467 // TODO Auto-generated method stub
2471 public void componentMoved(ComponentEvent arg0
) {
2472 // TODO Auto-generated method stub
2476 public void componentResized(ComponentEvent arg0
) {
2477 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2478 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2479 this.jSplitPane
.validate();
2480 resizeDesktopPanel();
2483 public void componentShown(ComponentEvent arg0
) {
2484 // TODO Auto-generated method stub
2489 Resize JDesktopPanel
2492 private void resizeDesktopPanel() {
2493 resizeDesktopPanel(this.jDesktopPaneModule
);
2494 resizeDesktopPanel(this.jDesktopPanePackage
);
2495 resizeDesktopPanel(this.jDesktopPanePlatform
);
2499 Resize JDesktopPanel
2502 private void resizeDesktopPanel(JDesktopPane jdk
) {
2503 JInternalFrame
[] iif
= jdk
.getAllFrames();
2504 for (int index
= 0; index
< iif
.length
; index
++) {
2505 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2509 private void getCompontentsFromFrameworkDatabase() {
2510 this.vModuleList
= wt
.getAllModules();
2511 this.vPackageList
= wt
.getAllPackages();
2512 this.vPlatformList
= wt
.getAllPlatforms();
2515 private void insertModuleTreeNode(Identification id
) {
2516 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
));
2517 iTree
.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
,
2519 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2520 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2521 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2522 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2523 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2524 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2525 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2526 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2527 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2528 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2529 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2530 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2531 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2532 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2533 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2534 iTree
.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2535 iTree
.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2538 private void insertPackageTreeNode(Identification id
) {
2539 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
));
2540 iTree
.addNode(new IDefaultMutableTreeNode("Package Definitions",
2541 IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
, true, id
));
2542 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2543 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2544 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2545 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2547 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2549 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2550 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2551 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2553 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2557 private void insertPlatformTreeNode(Identification id
) {
2558 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2560 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2561 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2562 iTree
.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2563 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2565 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",
2566 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2567 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2571 Operate when double click a tree node
2574 private void doubleClickModuleTreeNode() {
2575 Identification id
= null;
2576 int intCategory
= -1;
2578 boolean isOpen
= false;
2580 id
= iTree
.getSelectNode().getId();
2581 intCategory
= iTree
.getSelectCategory();
2582 isOpen
= iTree
.getSelectNode().isOpening();
2586 // If the node is not opened yet
2587 // Insert top level elements first
2589 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2591 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2592 path
= iTree
.getSelectNode().getId().getPath();
2594 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2595 path
= iTree
.getSelectNode().getId().getPath();
2600 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2601 path
= iTree
.getSelectNode().getId().getPath();
2605 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2606 path
= iTree
.getSelectNode().getId().getPath();
2613 // Show editor panel
2615 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2616 showModuleElement(intCategory
, openingModuleList
.getOpeningModuleById(id
));
2617 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2619 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2620 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2621 showPackageElement(intCategory
, openingPackageList
.getOpeningPackageById(id
));
2622 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2624 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2625 showPlatformElement(intCategory
, openingPlatformList
.getOpeningPlatformById(id
));
2626 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2628 } catch (RuntimeException e
) {
2629 Log
.log("double click category: " + intCategory
);
2630 Log
.log("double click id path: " + id
);
2631 Log
.log("double click exception: " + e
.getMessage());
2636 Show content of editor panel via selected element
2642 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2643 this.cleanDesktopPanePlatform();
2645 switch (elementType
) {
2646 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2647 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2648 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2650 case IDefaultMutableTre