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
.MouseEvent
;
21 import java
.awt
.event
.MouseListener
;
22 import java
.awt
.event
.WindowEvent
;
23 import java
.io
.IOException
;
24 import java
.util
.Vector
;
26 import javax
.swing
.JButton
;
27 import javax
.swing
.JCheckBoxMenuItem
;
28 import javax
.swing
.JDesktopPane
;
29 import javax
.swing
.JFileChooser
;
30 import javax
.swing
.JFrame
;
31 import javax
.swing
.JInternalFrame
;
32 import javax
.swing
.JMenu
;
33 import javax
.swing
.JMenuBar
;
34 import javax
.swing
.JMenuItem
;
35 import javax
.swing
.JOptionPane
;
36 import javax
.swing
.JPanel
;
37 import javax
.swing
.JScrollPane
;
38 import javax
.swing
.JSplitPane
;
39 import javax
.swing
.JTabbedPane
;
40 import javax
.swing
.event
.MenuEvent
;
41 import javax
.swing
.event
.MenuListener
;
42 import javax
.swing
.event
.TreeSelectionEvent
;
43 import javax
.swing
.event
.TreeSelectionListener
;
45 import org
.apache
.xmlbeans
.XmlException
;
46 import org
.tianocore
.PackageSurfaceAreaDocument
;
47 import org
.tianocore
.frameworkwizard
.common
.DataType
;
48 import org
.tianocore
.frameworkwizard
.common
.GlobalData
;
49 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
50 import org
.tianocore
.frameworkwizard
.common
.Log
;
51 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
52 import org
.tianocore
.frameworkwizard
.common
.Tools
;
53 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
54 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
55 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
56 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
57 import org
.tianocore
.frameworkwizard
.common
.find
.FindResult
;
58 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
59 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
60 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
61 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
62 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
63 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
64 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
65 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
66 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
67 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
68 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
69 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
70 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
71 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
72 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
73 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
74 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
83 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
84 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
85 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
86 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
87 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
88 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
89 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
90 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
91 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
92 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
93 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
94 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
95 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
96 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
97 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
98 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
99 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
100 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
101 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
102 import org
.tianocore
.frameworkwizard
.toolchain
.Preferences
;
105 The class is used to show main GUI of FrameworkWizard
106 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
109 public class FrameworkWizardUI
extends IFrame
implements MouseListener
, TreeSelectionListener
, MenuListener
{
111 /// Define class Serial Version UID
113 private static final long serialVersionUID
= -7103240960573031772L;
116 /// Used to record current operation target
118 private int currentOpeningModuleIndex
= -1;
120 private int currentOpeningPackageIndex
= -1;
122 private int currentOpeningPlatformIndex
= -1;
125 /// Used to generate tree structure
127 private IDefaultMutableTreeNode dmtnRoot
= null;
129 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
131 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
133 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
138 private JPanel jContentPane
= null;
140 private JMenuBar jMenuBar
= null;
142 private JMenu jMenuFile
= null;
144 private JMenuItem jMenuItemFileNew
= null;
146 private JMenuItem jMenuItemFileSaveAs
= null;
148 private JMenuItem jMenuItemFileExit
= null;
150 private JMenu jMenuEdit
= null;
152 private JDesktopPane jDesktopPaneModule
= null;
154 private JDesktopPane jDesktopPanePackage
= null;
156 private JDesktopPane jDesktopPanePlatform
= null;
158 private JTabbedPane jTabbedPaneTree
= null;
160 private JTabbedPane jTabbedPaneEditor
= null;
162 private IDesktopManager iDesktopManager
= new IDesktopManager();
164 private JScrollPane jScrollPaneTree
= null;
166 private ITree iTree
= null;
168 private JMenu jMenuHelp
= null;
170 private JMenuItem jMenuItemHelpAbout
= null;
172 private JMenuItem jMenuItemEditDelete
= null;
174 private WorkspaceTools wt
= new WorkspaceTools();
176 private JMenuItem jMenuItemFileSave
= null;
178 private JMenuItem jMenuItemFileClose
= null;
180 private JMenu jMenuTools
= null;
182 private JMenu jMenuWindow
= null;
184 private JPanel jPanelOperation
= null;
186 private JButton jButtonOk
= null;
188 private JButton jButtonCancel
= null;
190 private JMenuItem jMenuItemFileOpen
= null;
192 private JMenuItem jMenuItemFileCloseAll
= null;
194 private JMenuItem jMenuItemFileSaveAll
= null;
196 private JMenuItem jMenuItemFilePageSetup
= null;
198 private JMenuItem jMenuItemFilePrint
= null;
200 private JMenuItem jMenuItemFileImport
= null;
202 private JMenuItem jMenuItemFileProperties
= null;
204 private JMenu jMenuFileRecentFiles
= null;
206 private JSplitPane jSplitPane
= null;
208 private JMenuItem jMenuItemEditUndo
= null;
210 private JMenuItem jMenuItemEditRedo
= null;
212 private JMenuItem jMenuItemEditCut
= null;
214 private JMenuItem jMenuItemEditCopy
= null;
216 private JMenuItem jMenuItemEditPaste
= null;
218 private JMenuItem jMenuItemEditSelectAll
= null;
220 private JMenuItem jMenuItemEditFindNext
= null;
222 private JMenu jMenuView
= null;
224 private JMenu jMenuViewToolbars
= null;
226 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
228 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
230 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
232 private JMenuItem jMenuItemViewStandard
= null;
234 private JMenuItem jMenuItemViewAdvanced
= null;
236 private JMenu jMenuProject
= null;
238 private JMenuItem jMenuItemProjectAdmin
= null;
240 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
242 private JMenuItem jMenuItemToolsBuildPreferences
= null;
244 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
246 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
248 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
250 private JMenuItem jMenuItemToolsClone
= null;
252 private JMenuItem jMenuItemToolsCodeScan
= null;
254 private JMenuItem jMenuItemWindowDisplaySide
= null;
256 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
258 private JMenuItem jMenuItemViewXML
= null;
260 private JMenuItem jMenuItemWindowTabView
= null;
262 private JMenuItem jMenuItemWindowSource
= null;
264 private JMenuItem jMenuItemWindowXML
= null;
266 private JMenuItem jMenuItemWindowPreferences
= null;
268 private JMenuItem jMenuItemHelpContents
= null;
270 private JMenuItem jMenuItemHelpIndex
= null;
272 private JMenuItem jMenuItemHelpSearch
= null;
274 private JMenuItem jMenuItemProjectInstallFar
= null;
276 private JMenuItem jMenuItemProjectUpdateFar
= null;
278 private JMenuItem jMenuItemProjectRemoveFar
= null;
280 private JMenuItem jMenuItemProjectCreateFar
= null;
282 private JMenu jMenuEditFind
= null;
284 private JMenuItem jMenuItemEditFindPcd
= null;
286 private JMenuItem jMenuItemEditFindLibraryClass
= null;
288 private JMenuItem jMenuItemEditFindPpi
= null;
290 private JMenuItem jMenuItemEditFindProtocol
= null;
292 private JMenuItem jMenuItemEditFindGuid
= null;
294 private JMenuItem jMenuItemEditFindLibraryInstance
= null;
297 /// A static definition for this class itself
299 private static FrameworkWizardUI fwui
= null;
302 If the class hasn't an instnace, new one.
304 @return FrameworkWizardUI The instance of this class
307 public static FrameworkWizardUI
getInstance() {
309 fwui
= new FrameworkWizardUI();
315 This method initializes jMenuBar
317 @return javax.swing.JMenuBar Main menu bar for the entire GUI
320 private JMenuBar
getjJMenuBar() {
321 if (jMenuBar
== null) {
322 jMenuBar
= new JMenuBar();
323 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
324 jMenuBar
.add(getJMenuFile());
325 jMenuBar
.add(getJMenuEdit());
326 jMenuBar
.add(getJMenuView());
327 jMenuBar
.add(getJMenuProject());
328 jMenuBar
.add(getJMenuTools());
329 jMenuBar
.add(getJMenuWindow());
330 jMenuBar
.add(getJMenuHelp());
336 This method initializes jSplitPane
338 @return javax.swing.JSplitPane
341 private JSplitPane
getJSplitPane() {
342 if (jSplitPane
== null) {
343 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
344 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
345 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
346 jSplitPane
.addComponentListener(this);
352 This method initializes jTabbedPaneEditor
354 @return javax.swing.JTabbedPane
357 private JTabbedPane
getJTabbedPaneEditor() {
358 if (jTabbedPaneEditor
== null) {
359 jTabbedPaneEditor
= new JTabbedPane();
360 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
361 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
362 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
363 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
365 .setMinimumSize(new java
.awt
.Dimension(
366 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
367 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
368 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
369 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
370 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
372 return jTabbedPaneEditor
;
376 This method initializes jTabbedPaneTree
378 @return javax.swing.JTabbedPane
381 private JTabbedPane
getJTabbedPaneTree() {
382 if (jTabbedPaneTree
== null) {
383 jTabbedPaneTree
= new JTabbedPane();
385 .setPreferredSize(new java
.awt
.Dimension(
386 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
387 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
389 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
390 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
391 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
393 return jTabbedPaneTree
;
397 This method initializes jMenuFile
399 @return javax.swing.JMenu jMenuModule
402 private JMenu
getJMenuFile() {
403 if (jMenuFile
== null) {
405 // Set jMenuFile's attributes
407 jMenuFile
= new JMenu();
408 jMenuFile
.setText("File");
409 jMenuFile
.setMnemonic('F');
410 jMenuFile
.addMenuListener(this);
413 // Add sub menu items
415 jMenuFile
.add(getJMenuItemFileNew());
416 jMenuFile
.add(getJMenuItemFileOpen());
417 jMenuFile
.add(getJMenuItemFileClose());
418 jMenuFile
.add(getJMenuItemFileCloseAll());
419 jMenuFile
.addSeparator();
421 jMenuFile
.add(getJMenuFileRecentFiles());
422 jMenuFile
.add(getJMenuItemFileSave());
423 jMenuFile
.add(getJMenuItemFileSaveAs());
424 jMenuFile
.add(getJMenuItemFileSaveAll());
425 jMenuFile
.addSeparator();
427 jMenuFile
.add(getJMenuItemFilePageSetup());
428 jMenuFile
.add(getJMenuItemFilePrint());
429 jMenuFile
.add(getJMenuItemFileImport());
430 jMenuFile
.add(getJMenuItemFileProperties());
432 jMenuFile
.add(getJMenuItemFileExit());
438 This method initializes jMenuItemFileSaveAs
440 @return javax.swing.JMenuItem jMenuItemFileSaveAs
443 private JMenuItem
getJMenuItemFileSaveAs() {
444 if (jMenuItemFileSaveAs
== null) {
445 jMenuItemFileSaveAs
= new JMenuItem();
446 jMenuItemFileSaveAs
.setText("Save As...");
447 jMenuItemFileSaveAs
.setMnemonic('a');
448 jMenuItemFileSaveAs
.addActionListener(this);
449 jMenuItemFileSaveAs
.setEnabled(false);
450 jMenuItemFileSaveAs
.setVisible(false);
452 return jMenuItemFileSaveAs
;
456 This method initializes jMenuItemModuleExit
458 @return javax.swing.JMenuItem jMenuItemModuleExit
461 private JMenuItem
getJMenuItemFileExit() {
462 if (jMenuItemFileExit
== null) {
463 jMenuItemFileExit
= new JMenuItem();
464 jMenuItemFileExit
.setText("Exit");
465 jMenuItemFileExit
.setMnemonic('x');
466 jMenuItemFileExit
.addActionListener(this);
468 return jMenuItemFileExit
;
472 This method initializes jMenuEdit
474 @return javax.swing.JMenu jMenuEdit
477 private JMenu
getJMenuEdit() {
478 if (jMenuEdit
== null) {
480 // Set jMenuEdit's attributes
482 jMenuEdit
= new JMenu();
483 jMenuEdit
.setText("Edit");
484 jMenuEdit
.setMnemonic('E');
485 jMenuEdit
.setVisible(true);
488 // Add sub menu items
490 jMenuEdit
.add(getJMenuItemEditUndo());
491 jMenuEdit
.add(getJMenuItemEditRedo());
492 //jMenuEdit.addSeparator();
494 jMenuEdit
.add(getJMenuItemEditCut());
495 jMenuEdit
.add(getJMenuItemEditCopy());
496 jMenuEdit
.add(getJMenuItemEditPaste());
497 jMenuEdit
.add(getJMenuItemEditDelete());
498 //jMenuEdit.addSeparator();
500 jMenuEdit
.add(getJMenuItemEditSelectAll());
501 jMenuEdit
.add(getJMenuEditFind());
502 jMenuEdit
.add(getJMenuItemEditFindNext());
503 //jMenuEdit.addSeparator();
509 This method initializes jDesktopPane
511 @return javax.swing.JDesktopPane jDesktopPane
514 private JDesktopPane
getJDesktopPaneModule() {
515 if (jDesktopPaneModule
== null) {
516 jDesktopPaneModule
= new JDesktopPane();
518 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
519 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
520 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
521 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
523 .setMinimumSize(new java
.awt
.Dimension(
524 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
525 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
526 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
527 jDesktopPaneModule
.addComponentListener(this);
529 return jDesktopPaneModule
;
533 This method initializes jDesktopPane
535 @return javax.swing.JDesktopPane jDesktopPane
538 private JDesktopPane
getJDesktopPanePackage() {
539 if (jDesktopPanePackage
== null) {
540 jDesktopPanePackage
= new JDesktopPane();
542 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
543 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
544 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
545 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
547 .setMinimumSize(new java
.awt
.Dimension(
548 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
549 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
550 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
551 jDesktopPanePackage
.addComponentListener(this);
553 return jDesktopPanePackage
;
557 This method initializes jDesktopPane
559 @return javax.swing.JDesktopPane jDesktopPane
562 private JDesktopPane
getJDesktopPanePlatform() {
563 if (jDesktopPanePlatform
== null) {
564 jDesktopPanePlatform
= new JDesktopPane();
566 .setBounds(new java
.awt
.Rectangle(
567 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
568 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
569 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
570 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
572 .setMinimumSize(new java
.awt
.Dimension(
573 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
574 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
575 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
576 jDesktopPanePlatform
.addComponentListener(this);
578 return jDesktopPanePlatform
;
582 This method initializes jScrollPaneTree
584 @return javax.swing.JScrollPane jScrollPaneTree
587 private JScrollPane
getJScrollPaneTree() {
588 if (jScrollPaneTree
== null) {
589 jScrollPaneTree
= new JScrollPane();
591 .setPreferredSize(new java
.awt
.Dimension(
592 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
593 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
595 .setMinimumSize(new java
.awt
.Dimension(
596 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
597 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
598 jScrollPaneTree
.setViewportView(getITree());
600 return jScrollPaneTree
;
604 This method initializes iTree
606 @return org.tianocore.packaging.common.ui.ITree iTree
609 private ITree
getITree() {
611 //Before open a real module, use an empty root node for the tree
618 This method initializes jMenuHelp
620 @return javax.swing.JMenu jMenuHelp
623 private JMenu
getJMenuHelp() {
624 if (jMenuHelp
== null) {
626 // Set jMenuHelp's attributes
628 jMenuHelp
= new JMenu();
629 jMenuHelp
.setText("Help");
632 // Add sub menu items
634 jMenuHelp
.add(getJMenuItemHelpContents());
635 jMenuHelp
.add(getJMenuItemHelpIndex());
636 jMenuHelp
.add(getJMenuItemHelpSearch());
638 jMenuHelp
.add(getJMenuItemHelpAbout());
644 This method initializes jMenuItemHelpAbout
646 @return javax.swing.JMenuItem jMenuItemHelpAbout
649 private JMenuItem
getJMenuItemHelpAbout() {
650 if (jMenuItemHelpAbout
== null) {
651 jMenuItemHelpAbout
= new JMenuItem();
652 jMenuItemHelpAbout
.setText("About...");
653 jMenuItemHelpAbout
.addActionListener(this);
655 return jMenuItemHelpAbout
;
659 This method initializes jMenuItemEditDelete
661 @return javax.swing.JMenuItem jMenuItemEditDelete
664 private JMenuItem
getJMenuItemEditDelete() {
665 if (jMenuItemEditDelete
== null) {
666 jMenuItemEditDelete
= new JMenuItem();
667 jMenuItemEditDelete
.setText("Delete");
668 jMenuItemEditDelete
.setMnemonic('D');
669 jMenuItemEditDelete
.setVisible(false);
670 jMenuItemEditDelete
.setEnabled(false);
671 jMenuItemEditDelete
.addActionListener(this);
673 //Disabled first when no module is open
675 jMenuItemEditDelete
.setEnabled(false);
677 return jMenuItemEditDelete
;
681 This method initializes jMenuFileNew
683 @return javax.swing.JMenuItem jMenuFileNew
686 private JMenuItem
getJMenuItemFileNew() {
687 if (jMenuItemFileNew
== null) {
688 jMenuItemFileNew
= new JMenuItem();
689 jMenuItemFileNew
.setText("New...");
690 jMenuItemFileNew
.setMnemonic('N');
691 jMenuItemFileNew
.addActionListener(this);
693 return jMenuItemFileNew
;
697 This method initializes jMenuItemFileSave
699 @return javax.swing.JMenuItem jMenuItemModuleSave
702 private JMenuItem
getJMenuItemFileSave() {
703 if (jMenuItemFileSave
== null) {
704 jMenuItemFileSave
= new JMenuItem();
705 jMenuItemFileSave
.setText("Save");
706 jMenuItemFileSave
.setMnemonic('S');
707 jMenuItemFileSave
.addActionListener(this);
708 jMenuItemFileSave
.setEnabled(true);
710 return jMenuItemFileSave
;
714 This method initializes jMenuItemModuleClose
716 @return javax.swing.JMenuItem jMenuItemModuleClose
719 private JMenuItem
getJMenuItemFileClose() {
720 if (jMenuItemFileClose
== null) {
721 jMenuItemFileClose
= new JMenuItem();
722 jMenuItemFileClose
.setText("Close");
723 jMenuItemFileClose
.setMnemonic('C');
724 jMenuItemFileClose
.setEnabled(true);
725 jMenuItemFileClose
.addActionListener(this);
727 return jMenuItemFileClose
;
731 This method initializes jMenuTools
734 @return javax.swing.JMenu jMenuTools
737 private JMenu
getJMenuTools() {
738 if (jMenuTools
== null) {
740 // Set jMenuTools's attributes
742 jMenuTools
= new JMenu();
743 jMenuTools
.setText("Tools");
744 jMenuTools
.setMnemonic('T');
745 jMenuTools
.addMenuListener(this);
748 // Add sub menu items
751 jMenuTools
.add(getJMenuItemToolsClone());
752 jMenuTools
.add(getJMenuItemToolsCodeScan());
753 jMenuTools
.addSeparator();
755 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
756 jMenuTools
.add(getJMenuItemToolsBuildPreferences());
762 This method initializes jMenuWindow
765 @return javax.swing.JMenu jMenuWindow
768 private JMenu
getJMenuWindow() {
769 if (jMenuWindow
== null) {
771 // Set jMenuWindow's attribute
773 jMenuWindow
= new JMenu();
774 jMenuWindow
.setText("Window");
775 jMenuWindow
.setMnemonic('W');
776 jMenuWindow
.setVisible(false);
779 // Add sub menu items
781 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
782 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
783 jMenuWindow
.addSeparator();
785 jMenuWindow
.add(getJMenuItemWindowTabView());
786 jMenuWindow
.addSeparator();
788 jMenuWindow
.add(getJMenuItemWindowSource());
789 jMenuWindow
.add(getJMenuItemWindowXML());
790 jMenuWindow
.addSeparator();
792 jMenuWindow
.add(getJMenuItemWindowPreferences());
798 This method initializes jPanelOperation
801 @return javax.swing.JPanel jPanelOperation
804 private JPanel
getJPanelOperation() {
805 if (jPanelOperation
== null) {
806 jPanelOperation
= new JPanel();
807 jPanelOperation
.setLayout(null);
808 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
809 jPanelOperation
.add(getJButtonOk(), null);
810 jPanelOperation
.add(getJButtonCancel(), null);
811 jPanelOperation
.setVisible(false);
813 return jPanelOperation
;
817 This method initializes jButtonOk
820 @return javax.swing.JButton jButtonOk
823 private JButton
getJButtonOk() {
824 if (jButtonOk
== null) {
825 jButtonOk
= new JButton();
826 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
827 jButtonOk
.setText("Ok");
828 jButtonOk
.setEnabled(false);
829 jButtonOk
.addActionListener(this);
835 This method initializes jButtonCancel
838 @return javax.swing.JButton jButtonCancel
841 private JButton
getJButtonCancel() {
842 if (jButtonCancel
== null) {
843 jButtonCancel
= new JButton();
844 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
845 jButtonCancel
.setText("Cancel");
846 jButtonCancel
.setEnabled(false);
847 jButtonCancel
.addActionListener(this);
848 jButtonCancel
.setVisible(false);
850 return jButtonCancel
;
854 This method initializes jMenuItemFileOpen
856 @return javax.swing.JMenuItem jMenuItemFileOpen
859 private JMenuItem
getJMenuItemFileOpen() {
860 if (jMenuItemFileOpen
== null) {
861 jMenuItemFileOpen
= new JMenuItem();
862 jMenuItemFileOpen
.setText("Open...");
863 jMenuItemFileOpen
.setMnemonic('O');
864 jMenuItemFileOpen
.addActionListener(this);
866 return jMenuItemFileOpen
;
870 This method initializes jMenuItemFileCloseAll
872 @return javax.swing.JMenuItem jMenuItemFileOpen
875 private JMenuItem
getJMenuItemFileCloseAll() {
876 if (jMenuItemFileCloseAll
== null) {
877 jMenuItemFileCloseAll
= new JMenuItem();
878 jMenuItemFileCloseAll
.setText("Close All");
879 jMenuItemFileCloseAll
.setEnabled(true);
880 jMenuItemFileCloseAll
.addActionListener(this);
882 return jMenuItemFileCloseAll
;
886 This method initializes jMenuItemFileSaveAll
888 @return javax.swing.JMenuItem jMenuItemFileSaveAll
891 private JMenuItem
getJMenuItemFileSaveAll() {
892 if (jMenuItemFileSaveAll
== null) {
893 jMenuItemFileSaveAll
= new JMenuItem();
894 jMenuItemFileSaveAll
.setText("Save All");
895 jMenuItemFileSaveAll
.setMnemonic('v');
896 jMenuItemFileSaveAll
.setEnabled(true);
897 jMenuItemFileSaveAll
.addActionListener(this);
899 return jMenuItemFileSaveAll
;
903 This method initializes jMenuItemFilePageSetup
905 @return javax.swing.JMenuItem
908 private JMenuItem
getJMenuItemFilePageSetup() {
909 if (jMenuItemFilePageSetup
== null) {
910 jMenuItemFilePageSetup
= new JMenuItem();
911 jMenuItemFilePageSetup
.setText("Page Setup");
912 jMenuItemFilePageSetup
.setMnemonic('u');
913 jMenuItemFilePageSetup
.setEnabled(false);
914 jMenuItemFilePageSetup
.addActionListener(this);
915 jMenuItemFilePageSetup
.setVisible(false);
917 return jMenuItemFilePageSetup
;
921 This method initializes jMenuItemFilePrint
923 @return javax.swing.JMenuItem
926 private JMenuItem
getJMenuItemFilePrint() {
927 if (jMenuItemFilePrint
== null) {
928 jMenuItemFilePrint
= new JMenuItem();
929 jMenuItemFilePrint
.setText("Print");
930 jMenuItemFilePrint
.setMnemonic('P');
931 jMenuItemFilePrint
.setEnabled(false);
932 jMenuItemFilePrint
.addActionListener(this);
933 jMenuItemFilePrint
.setVisible(false);
935 return jMenuItemFilePrint
;
939 This method initializes jMenuItemFileImport
941 @return javax.swing.JMenuItem
944 private JMenuItem
getJMenuItemFileImport() {
945 if (jMenuItemFileImport
== null) {
946 jMenuItemFileImport
= new JMenuItem();
947 jMenuItemFileImport
.setText("Import");
948 jMenuItemFileImport
.setMnemonic('I');
949 jMenuItemFileImport
.setEnabled(false);
950 jMenuItemFileImport
.addActionListener(this);
951 jMenuItemFileImport
.setVisible(false);
953 return jMenuItemFileImport
;
957 This method initializes jMenuItemFileProperties
959 @return javax.swing.JMenuItem
962 private JMenuItem
getJMenuItemFileProperties() {
963 if (jMenuItemFileProperties
== null) {
964 jMenuItemFileProperties
= new JMenuItem();
965 jMenuItemFileProperties
.setText("Properties");
966 jMenuItemFileProperties
.setMnemonic('t');
967 jMenuItemFileProperties
.setEnabled(false);
968 jMenuItemFileProperties
.addActionListener(this);
969 jMenuItemFileProperties
.setVisible(false);
971 return jMenuItemFileProperties
;
975 This method initializes jMenuFileRecentFiles
977 @return javax.swing.JMenu
980 private JMenu
getJMenuFileRecentFiles() {
981 if (jMenuFileRecentFiles
== null) {
982 jMenuFileRecentFiles
= new JMenu();
983 jMenuFileRecentFiles
.setText("Recent Files");
984 jMenuFileRecentFiles
.setMnemonic('F');
985 jMenuFileRecentFiles
.setEnabled(false);
986 jMenuFileRecentFiles
.addActionListener(this);
987 jMenuFileRecentFiles
.setVisible(false);
989 return jMenuFileRecentFiles
;
993 This method initializes jMenuItemEditUndo
995 @return javax.swing.JMenuItem
998 private JMenuItem
getJMenuItemEditUndo() {
999 if (jMenuItemEditUndo
== null) {
1000 jMenuItemEditUndo
= new JMenuItem();
1001 jMenuItemEditUndo
.setText("Undo");
1002 jMenuItemEditUndo
.setMnemonic('U');
1003 jMenuItemEditUndo
.setEnabled(false);
1004 jMenuItemEditUndo
.setVisible(false);
1005 jMenuItemEditUndo
.addActionListener(this);
1007 return jMenuItemEditUndo
;
1011 This method initializes jMenuItemEditRedo
1013 @return javax.swing.JMenuItem
1016 private JMenuItem
getJMenuItemEditRedo() {
1017 if (jMenuItemEditRedo
== null) {
1018 jMenuItemEditRedo
= new JMenuItem();
1019 jMenuItemEditRedo
.setText("Redo");
1020 jMenuItemEditRedo
.setMnemonic('R');
1021 jMenuItemEditRedo
.setEnabled(false);
1022 jMenuItemEditRedo
.setVisible(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
.setVisible(false);
1041 jMenuItemEditCut
.addActionListener(this);
1043 return jMenuItemEditCut
;
1047 This method initializes jMenuItemEditCopy
1049 @return javax.swing.JMenuItem
1052 private JMenuItem
getJMenuItemEditCopy() {
1053 if (jMenuItemEditCopy
== null) {
1054 jMenuItemEditCopy
= new JMenuItem();
1055 jMenuItemEditCopy
.setText("Copy");
1056 jMenuItemEditCopy
.setMnemonic('C');
1057 jMenuItemEditCopy
.setEnabled(false);
1058 jMenuItemEditCopy
.setVisible(false);
1059 jMenuItemEditCopy
.addActionListener(this);
1061 return jMenuItemEditCopy
;
1065 This method initializes jMenuItemEditPaste
1067 return javax.swing.JMenuItem
1070 private JMenuItem
getJMenuItemEditPaste() {
1071 if (jMenuItemEditPaste
== null) {
1072 jMenuItemEditPaste
= new JMenuItem();
1073 jMenuItemEditPaste
.setText("Paste");
1074 jMenuItemEditPaste
.setMnemonic('P');
1075 jMenuItemEditPaste
.setEnabled(false);
1076 jMenuItemEditPaste
.setVisible(false);
1077 jMenuItemEditPaste
.addActionListener(this);
1079 return jMenuItemEditPaste
;
1083 This method initializes jMenuItem
1085 @return javax.swing.JMenuItem
1088 private JMenuItem
getJMenuItemEditSelectAll() {
1089 if (jMenuItemEditSelectAll
== null) {
1090 jMenuItemEditSelectAll
= new JMenuItem();
1091 jMenuItemEditSelectAll
.setText("Select All");
1092 jMenuItemEditSelectAll
.setMnemonic('A');
1093 jMenuItemEditSelectAll
.setEnabled(false);
1094 jMenuItemEditSelectAll
.setVisible(false);
1095 jMenuItemEditSelectAll
.addActionListener(this);
1097 return jMenuItemEditSelectAll
;
1101 This method initializes jMenuItemEditFindNext
1103 @return javax.swing.JMenuItem
1106 private JMenuItem
getJMenuItemEditFindNext() {
1107 if (jMenuItemEditFindNext
== null) {
1108 jMenuItemEditFindNext
= new JMenuItem();
1109 jMenuItemEditFindNext
.setText("Find Next");
1110 jMenuItemEditFindNext
.setMnemonic('n');
1111 jMenuItemEditFindNext
.setEnabled(false);
1112 jMenuItemEditFindNext
.setVisible(false);
1113 jMenuItemEditFindNext
.addActionListener(this);
1115 return jMenuItemEditFindNext
;
1119 This method initializes jMenuView
1121 @return javax.swing.JMenu
1124 private JMenu
getJMenuView() {
1125 if (jMenuView
== null) {
1127 // Set jMenuView's attributes
1129 jMenuView
= new JMenu();
1130 jMenuView
.setText("View");
1131 jMenuView
.setMnemonic('V');
1132 jMenuView
.setVisible(false);
1135 // Add sub menu items
1137 jMenuView
.add(getJMenuViewToolbars());
1138 jMenuView
.add(getJMenuItemViewAdvanced());
1139 jMenuView
.add(getJMenuItemViewStandard());
1140 jMenuView
.add(getJMenuItemViewXML());
1146 This method initializes jMenuViewToolbars
1148 @return javax.swing.JMenu
1151 private JMenu
getJMenuViewToolbars() {
1152 if (jMenuViewToolbars
== null) {
1153 jMenuViewToolbars
= new JMenu();
1154 jMenuViewToolbars
.setText("Toolbars");
1155 jMenuViewToolbars
.setMnemonic('T');
1157 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1158 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1159 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1161 return jMenuViewToolbars
;
1165 This method initializes jCheckBoxMenuItemViewToolbarsFile
1167 @return javax.swing.JCheckBoxMenuItem
1170 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1171 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1172 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1173 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1174 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1175 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1177 return jCheckBoxMenuItemViewToolbarsFile
;
1181 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1183 @return javax.swing.JCheckBoxMenuItem
1186 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1187 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1188 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1189 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1190 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1191 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1193 return jCheckBoxMenuItemViewToolbarsEdit
;
1197 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1199 @return javax.swing.JCheckBoxMenuItem
1202 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1203 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1204 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1205 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1206 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1207 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1209 return jCheckBoxMenuItemViewToolbarsWindow
;
1213 This method initializes jMenuItemStandard
1215 @return javax.swing.JMenuItem
1218 private JMenuItem
getJMenuItemViewStandard() {
1219 if (jMenuItemViewStandard
== null) {
1220 jMenuItemViewStandard
= new JMenuItem();
1221 jMenuItemViewStandard
.setText("Standard");
1222 jMenuItemViewStandard
.setMnemonic('S');
1223 jMenuItemViewStandard
.setEnabled(false);
1224 jMenuItemViewStandard
.addActionListener(this);
1226 return jMenuItemViewStandard
;
1230 This method initializes jMenuItemAdvanced
1232 @return javax.swing.JMenuItem
1235 private JMenuItem
getJMenuItemViewAdvanced() {
1236 if (jMenuItemViewAdvanced
== null) {
1237 jMenuItemViewAdvanced
= new JMenuItem();
1238 jMenuItemViewAdvanced
.setText("Advanced");
1239 jMenuItemViewAdvanced
.setMnemonic('A');
1240 jMenuItemViewAdvanced
.setEnabled(false);
1241 jMenuItemViewAdvanced
.addActionListener(this);
1243 return jMenuItemViewAdvanced
;
1247 This method initializes jMenuProject
1249 @return javax.swing.JMenu
1252 private JMenu
getJMenuProject() {
1253 if (jMenuProject
== null) {
1255 // Set jMenuProject's attributes
1257 jMenuProject
= new JMenu();
1258 jMenuProject
.setText("Project");
1259 jMenuProject
.setMnemonic('P');
1262 // Add sub menu items
1264 jMenuProject
.add(getJMenuItemProjectAdmin());
1266 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1267 jMenuProject
.addSeparator();
1269 jMenuProject
.add(getJMenuItemProjectCreateFar());
1270 jMenuProject
.add(getJMenuItemProjectInstallFar());
1271 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1272 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1275 return jMenuProject
;
1279 This method initializes jMenuItemProjectAdmin
1281 @return javax.swing.JMenuItem
1284 private JMenuItem
getJMenuItemProjectAdmin() {
1285 if (jMenuItemProjectAdmin
== null) {
1286 jMenuItemProjectAdmin
= new JMenuItem();
1287 jMenuItemProjectAdmin
.setText("Admin...");
1288 jMenuItemProjectAdmin
.setMnemonic('A');
1289 jMenuItemProjectAdmin
.setEnabled(false);
1290 jMenuItemProjectAdmin
.addActionListener(this);
1291 jMenuItemProjectAdmin
.setVisible(false);
1293 return jMenuItemProjectAdmin
;
1297 This method initializes jMenuItemProjectChangeWorkspace
1299 @return javax.swing.JMenuItem
1302 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1303 if (jMenuItemProjectChangeWorkspace
== null) {
1304 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1305 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1306 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1307 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1308 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1310 return jMenuItemProjectChangeWorkspace
;
1314 This method initializes jMenuProjectBuildPreferences
1316 @return javax.swing.JMenu
1319 private JMenuItem
getJMenuItemToolsBuildPreferences() {
1320 if (jMenuItemToolsBuildPreferences
== null) {
1321 jMenuItemToolsBuildPreferences
= new JMenuItem();
1322 jMenuItemToolsBuildPreferences
.setText("Build Preferences");
1323 jMenuItemToolsBuildPreferences
.setMnemonic('P');
1324 jMenuItemToolsBuildPreferences
.setEnabled(true);
1325 jMenuItemToolsBuildPreferences
.addActionListener(this);
1327 return jMenuItemToolsBuildPreferences
;
1331 This method initializes jMenuItemToolsToolChainConfiguration
1333 @return javax.swing.JMenuItem
1336 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1337 if (jMenuItemToolsToolChainConfiguration
== null) {
1338 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1339 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1340 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1341 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1343 return jMenuItemToolsToolChainConfiguration
;
1347 This method initializes jMenuItemToolsClone
1349 @return javax.swing.JMenuItem
1352 private JMenuItem
getJMenuItemToolsClone() {
1353 if (jMenuItemToolsClone
== null) {
1354 jMenuItemToolsClone
= new JMenuItem();
1355 jMenuItemToolsClone
.setText("Clone...");
1356 jMenuItemToolsClone
.setMnemonic('l');
1357 jMenuItemToolsClone
.setEnabled(true);
1358 jMenuItemToolsClone
.addActionListener(this);
1360 return jMenuItemToolsClone
;
1364 This method initializes jMenuItemToolsCodeScan
1366 @return javax.swing.JMenuItem
1369 private JMenuItem
getJMenuItemToolsCodeScan() {
1370 if (jMenuItemToolsCodeScan
== null) {
1371 jMenuItemToolsCodeScan
= new JMenuItem();
1372 jMenuItemToolsCodeScan
.setText("Code Scan...");
1373 jMenuItemToolsCodeScan
.setMnemonic('S');
1374 jMenuItemToolsCodeScan
.setEnabled(false);
1375 jMenuItemToolsCodeScan
.addActionListener(this);
1376 jMenuItemToolsCodeScan
.setVisible(false);
1378 return jMenuItemToolsCodeScan
;
1382 This method initializes jMenuItemWindowSplitVertical
1384 @return javax.swing.JMenuItem
1387 private JMenuItem
getJMenuItemWindowDisplaySide() {
1388 if (jMenuItemWindowDisplaySide
== null) {
1389 jMenuItemWindowDisplaySide
= new JMenuItem();
1390 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1391 jMenuItemWindowDisplaySide
.setMnemonic('S');
1392 jMenuItemWindowDisplaySide
.setEnabled(false);
1393 jMenuItemWindowDisplaySide
.addActionListener(this);
1395 return jMenuItemWindowDisplaySide
;
1399 This method initializes jMenuItemWindowSplitHorizontal
1401 @return javax.swing.JMenuItem
1404 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1405 if (jMenuItemWindowDisplayTopBottom
== null) {
1406 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1407 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1408 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1409 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1410 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1412 return jMenuItemWindowDisplayTopBottom
;
1416 This method initializes jMenuItemViewXML
1418 @return javax.swing.JMenuItem
1421 private JMenuItem
getJMenuItemViewXML() {
1422 if (jMenuItemViewXML
== null) {
1423 jMenuItemViewXML
= new JMenuItem();
1424 jMenuItemViewXML
.setText("XML");
1425 jMenuItemViewXML
.setMnemonic('X');
1426 jMenuItemViewXML
.setEnabled(false);
1427 jMenuItemViewXML
.addActionListener(this);
1429 return jMenuItemViewXML
;
1433 This method initializes jMenuItemWindowTabView
1435 @return javax.swing.JMenuItem
1438 private JMenuItem
getJMenuItemWindowTabView() {
1439 if (jMenuItemWindowTabView
== null) {
1440 jMenuItemWindowTabView
= new JMenuItem();
1441 jMenuItemWindowTabView
.setText("Tab View");
1442 jMenuItemWindowTabView
.setMnemonic('T');
1443 jMenuItemWindowTabView
.setEnabled(false);
1444 jMenuItemWindowTabView
.addActionListener(this);
1446 return jMenuItemWindowTabView
;
1450 This method initializes jMenuItemWindowSource
1452 @return javax.swing.JMenuItem
1455 private JMenuItem
getJMenuItemWindowSource() {
1456 if (jMenuItemWindowSource
== null) {
1457 jMenuItemWindowSource
= new JMenuItem();
1458 jMenuItemWindowSource
.setText("Source");
1459 jMenuItemWindowSource
.setMnemonic('S');
1460 jMenuItemWindowSource
.setEnabled(false);
1461 jMenuItemWindowSource
.addActionListener(this);
1463 return jMenuItemWindowSource
;
1467 This method initializes jMenuItemWindowXML
1469 @return javax.swing.JMenuItem
1472 private JMenuItem
getJMenuItemWindowXML() {
1473 if (jMenuItemWindowXML
== null) {
1474 jMenuItemWindowXML
= new JMenuItem();
1475 jMenuItemWindowXML
.setText("XML");
1476 jMenuItemWindowXML
.setMnemonic('X');
1477 jMenuItemWindowXML
.setEnabled(false);
1478 jMenuItemWindowXML
.addActionListener(this);
1480 return jMenuItemWindowXML
;
1484 This method initializes jMenuItemWindowPreferences
1486 @return javax.swing.JMenuItem
1489 private JMenuItem
getJMenuItemWindowPreferences() {
1490 if (jMenuItemWindowPreferences
== null) {
1491 jMenuItemWindowPreferences
= new JMenuItem();
1492 jMenuItemWindowPreferences
.setText("Preferences");
1493 jMenuItemWindowPreferences
.setMnemonic('P');
1494 jMenuItemWindowPreferences
.setEnabled(false);
1495 jMenuItemWindowPreferences
.addActionListener(this);
1497 return jMenuItemWindowPreferences
;
1501 This method initializes jMenuItemHelpContents
1503 @return javax.swing.JMenuItem
1506 private JMenuItem
getJMenuItemHelpContents() {
1507 if (jMenuItemHelpContents
== null) {
1508 jMenuItemHelpContents
= new JMenuItem();
1509 jMenuItemHelpContents
.setText("Contents");
1510 jMenuItemHelpContents
.setMnemonic('C');
1511 jMenuItemHelpContents
.setEnabled(false);
1512 jMenuItemHelpContents
.addActionListener(this);
1513 jMenuItemHelpContents
.setVisible(false);
1515 return jMenuItemHelpContents
;
1519 This method initializes jMenuItemHelpIndex
1521 @return javax.swing.JMenuItem
1524 private JMenuItem
getJMenuItemHelpIndex() {
1525 if (jMenuItemHelpIndex
== null) {
1526 jMenuItemHelpIndex
= new JMenuItem();
1527 jMenuItemHelpIndex
.setText("Index");
1528 jMenuItemHelpIndex
.setMnemonic('I');
1529 jMenuItemHelpIndex
.setEnabled(false);
1530 jMenuItemHelpIndex
.addActionListener(this);
1531 jMenuItemHelpIndex
.setVisible(false);
1533 return jMenuItemHelpIndex
;
1537 This method initializes jMenuItemHelpSearch
1539 @return javax.swing.JMenuItem
1542 private JMenuItem
getJMenuItemHelpSearch() {
1543 if (jMenuItemHelpSearch
== null) {
1544 jMenuItemHelpSearch
= new JMenuItem();
1545 jMenuItemHelpSearch
.setText("Search");
1546 jMenuItemHelpSearch
.setMnemonic('S');
1547 jMenuItemHelpSearch
.setEnabled(false);
1548 jMenuItemHelpSearch
.addActionListener(this);
1549 jMenuItemHelpSearch
.setVisible(false);
1551 return jMenuItemHelpSearch
;
1555 * This method initializes jMenuItemToolsInstallPackage
1557 * @return javax.swing.JMenuItem
1559 private JMenuItem
getJMenuItemProjectInstallFar() {
1560 if (jMenuItemProjectInstallFar
== null) {
1561 jMenuItemProjectInstallFar
= new JMenuItem();
1562 jMenuItemProjectInstallFar
.setText("Install FAR");
1563 jMenuItemProjectInstallFar
.setMnemonic('I');
1564 jMenuItemProjectInstallFar
.setEnabled(true);
1565 jMenuItemProjectInstallFar
.addActionListener(this);
1567 return jMenuItemProjectInstallFar
;
1571 * This method initializes jMenuItemToolsUpdatePackage
1573 * @return javax.swing.JMenuItem
1575 private JMenuItem
getJMenuItemProjectUpdateFar() {
1576 if (jMenuItemProjectUpdateFar
== null) {
1577 jMenuItemProjectUpdateFar
= new JMenuItem();
1578 jMenuItemProjectUpdateFar
.setText("Update FAR");
1579 jMenuItemProjectUpdateFar
.setMnemonic('U');
1580 jMenuItemProjectUpdateFar
.setEnabled(true);
1581 jMenuItemProjectUpdateFar
.addActionListener(this);
1582 jMenuItemProjectUpdateFar
.setVisible(true);
1584 return jMenuItemProjectUpdateFar
;
1588 * This method initializes jMenuItemRemovePackage
1590 * @return javax.swing.JMenuItem
1592 private JMenuItem
getJMenuItemProjectRemoveFar() {
1593 if (jMenuItemProjectRemoveFar
== null) {
1594 jMenuItemProjectRemoveFar
= new JMenuItem();
1595 jMenuItemProjectRemoveFar
.setText("Remove FAR");
1596 jMenuItemProjectRemoveFar
.setMnemonic('R');
1597 jMenuItemProjectRemoveFar
.setEnabled(true);
1598 jMenuItemProjectRemoveFar
.addActionListener(this);
1600 return jMenuItemProjectRemoveFar
;
1604 * This method initializes jMenuItemProjectCreateFar
1606 * @return javax.swing.JMenuItem
1608 private JMenuItem
getJMenuItemProjectCreateFar() {
1609 if (jMenuItemProjectCreateFar
== null) {
1610 jMenuItemProjectCreateFar
= new JMenuItem();
1611 jMenuItemProjectCreateFar
.setText("Create FAR");
1612 jMenuItemProjectCreateFar
.setMnemonic('C');
1613 jMenuItemProjectCreateFar
.addActionListener(this);
1615 return jMenuItemProjectCreateFar
;
1619 * This method initializes jMenuEditFind
1621 * @return javax.swing.JMenu
1623 private JMenu
getJMenuEditFind() {
1624 if (jMenuEditFind
== null) {
1625 jMenuEditFind
= new JMenu();
1626 jMenuEditFind
.setText("Find");
1627 jMenuEditFind
.setMnemonic('F');
1629 jMenuEditFind
.add(getJMenuItemEditFindPpi());
1630 jMenuEditFind
.add(getJMenuItemEditFindProtocol());
1631 jMenuEditFind
.add(getJMenuItemEditFindGuid());
1632 jMenuEditFind
.add(getJMenuItemEditFindPcd());
1633 jMenuEditFind
.add(getJMenuItemEditFindLibraryClass());
1634 jMenuEditFind
.add(getJMenuItemEditFindLibraryInstance());
1636 return jMenuEditFind
;
1640 * This method initializes jMenuItemEditFindPcd
1642 * @return javax.swing.JMenuItem
1644 private JMenuItem
getJMenuItemEditFindPcd() {
1645 if (jMenuItemEditFindPcd
== null) {
1646 jMenuItemEditFindPcd
= new JMenuItem();
1647 jMenuItemEditFindPcd
.setText("All PCD entries");
1648 jMenuItemEditFindPcd
.setMnemonic('P');
1649 jMenuItemEditFindPcd
.addActionListener(this);
1651 return jMenuItemEditFindPcd
;
1655 * This method initializes jMenuItemEditFindLibraryClass
1657 * @return javax.swing.JMenuItem
1659 private JMenuItem
getJMenuItemEditFindLibraryClass() {
1660 if (jMenuItemEditFindLibraryClass
== null) {
1661 jMenuItemEditFindLibraryClass
= new JMenuItem();
1662 jMenuItemEditFindLibraryClass
.setText("All Library Classes");
1663 jMenuItemEditFindLibraryClass
.setMnemonic('C');
1664 jMenuItemEditFindLibraryClass
.addActionListener(this);
1666 return jMenuItemEditFindLibraryClass
;
1670 * This method initializes jMenuItemEditFindPpi
1672 * @return javax.swing.JMenuItem
1674 private JMenuItem
getJMenuItemEditFindPpi() {
1675 if (jMenuItemEditFindPpi
== null) {
1676 jMenuItemEditFindPpi
= new JMenuItem();
1677 jMenuItemEditFindPpi
.setText("All PPIs");
1678 jMenuItemEditFindPpi
.setMnemonic('I');
1679 jMenuItemEditFindPpi
.addActionListener(this);
1681 return jMenuItemEditFindPpi
;
1685 * This method initializes jMenuItemEditFindProtocol
1687 * @return javax.swing.JMenuItem
1689 private JMenuItem
getJMenuItemEditFindProtocol() {
1690 if (jMenuItemEditFindProtocol
== null) {
1691 jMenuItemEditFindProtocol
= new JMenuItem();
1692 jMenuItemEditFindProtocol
.setText("All Protocols");
1693 jMenuItemEditFindProtocol
.setMnemonic('r');
1694 jMenuItemEditFindProtocol
.addActionListener(this);
1696 return jMenuItemEditFindProtocol
;
1700 * This method initializes jMenuItemEditFindGuid
1702 * @return javax.swing.JMenuItem
1704 private JMenuItem
getJMenuItemEditFindGuid() {
1705 if (jMenuItemEditFindGuid
== null) {
1706 jMenuItemEditFindGuid
= new JMenuItem();
1707 jMenuItemEditFindGuid
.setText("All GUIDs");
1708 jMenuItemEditFindGuid
.setMnemonic('G');
1709 jMenuItemEditFindGuid
.addActionListener(this);
1711 return jMenuItemEditFindGuid
;
1715 * This method initializes jMenuItemEditFindLibraryInstance
1717 * @return javax.swing.JMenuItem
1719 private JMenuItem
getJMenuItemEditFindLibraryInstance() {
1720 if (jMenuItemEditFindLibraryInstance
== null) {
1721 jMenuItemEditFindLibraryInstance
= new JMenuItem();
1722 jMenuItemEditFindLibraryInstance
.setText("All Library Instances");
1723 jMenuItemEditFindLibraryInstance
.setMnemonic('n');
1724 jMenuItemEditFindLibraryInstance
.addActionListener(this);
1725 jMenuItemEditFindLibraryInstance
.setVisible(false);
1727 return jMenuItemEditFindLibraryInstance
;
1731 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1733 * Main class, start the GUI
1736 public static void main(String
[] args
) {
1737 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance();
1738 module
.setVisible(true);
1742 This is the default constructor
1745 public FrameworkWizardUI() {
1751 This method initializes this
1755 private void init() {
1757 // Set current workspace and check
1758 // Check if exists WORKSPACE
1761 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1762 if (!Workspace
.checkCurrentWorkspace()) {
1763 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1764 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1777 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1778 this.setResizable(true);
1779 this.setJMenuBar(getjJMenuBar());
1780 this.setContentPane(getJContentPane());
1781 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1782 + Workspace
.getCurrentWorkspace() + "]");
1783 this.setExitType(1);
1788 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1792 This method initializes jContentPane
1794 @return javax.swing.JPanel jContentPane
1797 private JPanel
getJContentPane() {
1798 if (jContentPane
== null) {
1799 jContentPane
= new JPanel();
1800 jContentPane
.setLayout(null);
1801 jContentPane
.add(getJPanelOperation(), null);
1802 jContentPane
.add(getJSplitPane(), null);
1804 return jContentPane
;
1808 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1810 * Override actionPerformed to listen all actions
1813 public void actionPerformed(ActionEvent arg0
) {
1815 // Operations of Menu
1817 if (arg0
.getSource() == this.jMenuItemFileNew
) {
1821 if (arg0
.getSource() == this.jMenuItemFileOpen
) {
1825 if (arg0
.getSource() == this.jMenuItemFileClose
) {
1829 if (arg0
.getSource() == this.jMenuItemFileCloseAll
) {
1831 this.makeEmptyTree();
1834 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1838 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1842 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1846 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1850 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1854 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1855 this.findProtocol();
1858 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1862 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1866 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1867 this.findLibraryClass();
1870 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1871 this.findLibraryInstance();
1874 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1875 configBuildPreferences();
1878 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1879 this.changeWorkspace();
1882 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1886 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1890 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1894 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1898 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1902 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1903 this.setupToolChainConfiguration();
1906 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
1907 About a
= new About(this, true);
1908 int result
= a
.showDialog();
1909 if (result
== DataType
.RETURN_TYPE_OK
) {
1916 Create an empty tree if no file is open
1919 private void makeEmptyTree() {
1923 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1926 // Make Module Description
1928 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE
, -1);
1931 // First add package
1933 if (GlobalData
.vPackageList
.size() > 0) {
1934 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1935 IDefaultMutableTreeNode dmtnModulePackage
= null;
1936 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
1937 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
1939 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
1940 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
1941 GlobalData
.vPackageList
.elementAt(index
));
1942 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
1943 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
1944 false, GlobalData
.vPackageList
.elementAt(index
));
1945 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
1946 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
1947 false, GlobalData
.vPackageList
.elementAt(index
));
1949 // And then add each module in its package
1951 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
1952 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
1953 if (vModule
.get(indexJ
).isLibrary()) {
1954 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1955 IDefaultMutableTreeNode
.MODULE
, false,
1956 vModule
.get(indexJ
)));
1958 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1959 IDefaultMutableTreeNode
.MODULE
, false,
1960 vModule
.get(indexJ
)));
1963 if (dmtnModulePackageModule
.getChildCount() > 0) {
1964 dmtnModulePackage
.add(dmtnModulePackageModule
);
1966 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
1967 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
1970 dmtnModuleDescription
.add(dmtnModulePackage
);
1975 // Make Package Description
1977 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE
, -1);
1978 if (GlobalData
.vPackageList
.size() > 0) {
1979 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1980 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
1982 IDefaultMutableTreeNode
.PACKAGE
, false,
1983 GlobalData
.vPackageList
.elementAt(index
)));
1988 // Make Platform Description
1990 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms", IDefaultMutableTreeNode
.PLATFORM
, -1);
1991 if (GlobalData
.vPlatformList
.size() > 0) {
1992 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
1993 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
1995 IDefaultMutableTreeNode
.PLATFORM
, false,
1996 GlobalData
.vPlatformList
.elementAt(index
)));
2001 // Add sub nodes to root node
2003 dmtnRoot
.add(dmtnModuleDescription
);
2004 dmtnRoot
.add(dmtnPackageDescription
);
2005 dmtnRoot
.add(dmtnPlatformDescription
);
2006 iTree
= new ITree(dmtnRoot
);
2007 iTree
.addMouseListener(this);
2008 jScrollPaneTree
.setViewportView(iTree
);
2012 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2014 * Override windowClosing to popup warning message to confirm quit
2017 public void windowClosing(WindowEvent arg0
) {
2022 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2024 * Override mouseClicked to check if need display popup menu
2027 public void mouseClicked(MouseEvent arg0
) {
2028 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
2030 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
2033 // When double click
2035 if (arg0
.getClickCount() == 2) {
2036 doubleClickModuleTreeNode();
2040 public void mouseEntered(MouseEvent arg0
) {
2041 // TODO Auto-generated method stub
2044 public void mouseExited(MouseEvent arg0
) {
2045 // TODO Auto-generated method stub
2048 public void mousePressed(MouseEvent arg0
) {
2049 // TODO Auto-generated method stub
2052 public void mouseReleased(MouseEvent arg0
) {
2053 // TODO Auto-generated method stub
2057 Remove all Internal Frame of Module Desktop Pane
2060 private void cleanDesktopPaneModule() {
2061 if (jDesktopPaneModule
!= null) {
2062 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2063 for (int index
= 0; index
< iif
.length
; index
++) {
2064 iif
[index
].dispose();
2070 Remove all Internal Frame of package Desktop Pane
2073 private void cleanDesktopPanePackage() {
2074 if (jDesktopPanePlatform
!= null) {
2075 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2076 for (int index
= 0; index
< iif
.length
; index
++) {
2077 iif
[index
].dispose();
2083 Remove all Internal Frame of platform Desktop Pane
2086 private void cleanDesktopPanePlatform() {
2087 if (jDesktopPanePlatform
!= null) {
2088 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2089 for (int index
= 0; index
< iif
.length
; index
++) {
2090 iif
[index
].dispose();
2096 Remove all Internal Frame of all Desktop Panes
2099 private void cleanDesktopPane() {
2100 cleanDesktopPaneModule();
2101 cleanDesktopPanePackage();
2102 cleanDesktopPanePlatform();
2106 Set file filter as input ext
2112 private int getNewFilePath(String ext
) {
2113 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2114 fc
.setAcceptAllFileFilterUsed(false);
2115 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2116 return fc
.showSaveDialog(new JPanel());
2120 Add a module to tree
2122 @param mid The module node to be added
2125 private void addModuleToTree(ModuleIdentification mid
) {
2127 // Add new MsaHeader node to the tree
2129 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
, true,
2132 // First find the module belongs to which package
2134 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2135 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2137 // To check if has module node or library node
2139 IDefaultMutableTreeNode parentModuleNode
= null;
2140 IDefaultMutableTreeNode parentLibraryNode
= null;
2141 boolean hasModule
= false;
2142 boolean hasLibrary
= false;
2143 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2144 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2145 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2147 parentLibraryNode
= iNode
;
2149 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2151 parentModuleNode
= iNode
;
2158 if (!mid
.isLibrary()) {
2160 // Create parent node first if has no parent node
2163 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2164 false, mid
.getPackageId());
2165 iTree
.addNode(packageNode
, parentModuleNode
);
2168 iTree
.addNode(parentModuleNode
, node
);
2174 if (mid
.isLibrary()) {
2176 // Create parent node first if has no parent node
2179 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2180 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2181 mid
.getPackageId());
2182 iTree
.addNode(packageNode
, parentLibraryNode
);
2185 iTree
.addNode(parentLibraryNode
, node
);
2192 @param path input file path
2195 private void openModule(String path
) {
2196 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2199 // The module is not in existing packages
2201 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2206 // Make the node selected
2208 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2209 IDefaultMutableTreeNode
.MODULE
)));
2211 // Update opening Module list information
2213 if (!GlobalData
.openingModuleList
.getModuleOpen(id
)) {
2215 // Insert sub node of module
2217 insertModuleTreeNode(id
);
2218 iTree
.getSelectNode().setOpening(true);
2221 // Update opening module list
2223 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2224 GlobalData
.openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2227 // Select msa header node and show it in editor panel
2229 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2230 IDefaultMutableTreeNode
.MSA_HEADER
)));
2231 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2232 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2238 @param path input file path
2241 private void openPackage(String path
) {
2242 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2245 // The package is not in current workspace
2247 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2252 // Make the node selected
2254 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2255 IDefaultMutableTreeNode
.PACKAGE
)));
2257 // Update opening package list information
2259 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2261 // Insert sub node of module
2263 insertPackageTreeNode(id
);
2264 iTree
.getSelectNode().setOpening(true);
2267 // Update opening module list
2269 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2270 GlobalData
.openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2273 // Show spd header in editor panel
2275 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2276 IDefaultMutableTreeNode
.SPD_HEADER
)));
2277 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2278 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2284 @param path input file path
2287 private void openPlatform(String path
) {
2288 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2291 // The platform is not in current workspace
2293 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2298 // Make the node selected
2300 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2301 IDefaultMutableTreeNode
.PLATFORM
)));
2303 // Update opening package list information
2305 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2307 // Insert sub node of module
2309 insertPlatformTreeNode(id
);
2310 iTree
.getSelectNode().setOpening(true);
2313 // Update opening module list
2315 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2316 GlobalData
.openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2319 // Show fpd header in editor panel
2321 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2322 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2323 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2324 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2325 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2332 private void saveModule(int index
) {
2333 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2335 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2340 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2341 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2342 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2343 } catch (Exception e
) {
2344 Log
.wrn("Save Module", e
.getMessage());
2345 Log
.err("Save Module", e
.getMessage());
2353 private void savePackage(int index
) {
2354 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2356 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2361 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2362 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2363 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2364 } catch (Exception e
) {
2365 Log
.wrn("Save Package", e
.getMessage());
2366 Log
.err("Save Package", e
.getMessage());
2374 private void savePlatform(int index
) {
2375 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2377 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2382 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2383 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2384 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2385 } catch (Exception e
) {
2386 Log
.wrn("Save Package", e
.getMessage());
2387 Log
.err("Save Package", e
.getMessage());
2391 public void componentResized(ComponentEvent arg0
) {
2392 if (this.jSplitPane
!= null) {
2393 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2394 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2395 this.jSplitPane
.validate();
2396 resizeDesktopPanel();
2401 Resize JDesktopPanel
2404 private void resizeDesktopPanel() {
2405 resizeDesktopPanel(this.jDesktopPaneModule
);
2406 resizeDesktopPanel(this.jDesktopPanePackage
);
2407 resizeDesktopPanel(this.jDesktopPanePlatform
);
2411 Resize JDesktopPanel
2414 private void resizeDesktopPanel(JDesktopPane jdk
) {
2415 JInternalFrame
[] iif
= jdk
.getAllFrames();
2416 for (int index
= 0; index
< iif
.length
; index
++) {
2417 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2421 private void insertModuleTreeNode(Identification id
) {
2422 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
));
2423 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2424 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2425 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2426 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2427 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2428 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2429 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2430 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2431 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2432 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2433 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2434 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2435 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2436 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2437 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2439 .addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2440 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2443 private void insertPackageTreeNode(Identification id
) {
2444 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
));
2445 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2446 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2447 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2448 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2450 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2452 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2453 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2454 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2456 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2460 private void insertPlatformTreeNode(Identification id
) {
2461 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2463 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2464 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2465 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2466 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2468 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2469 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2470 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2474 Operate when double click a tree node
2477 private void doubleClickModuleTreeNode() {
2478 Identification id
= null;
2479 int intCategory
= -1;
2483 id
= iTree
.getSelectNode().getId();
2484 intCategory
= iTree
.getSelectCategory();
2487 // If the node is not opened yet
2488 // Insert top level elements first
2490 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2492 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2493 path
= iTree
.getSelectNode().getId().getPath();
2495 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2496 path
= iTree
.getSelectNode().getId().getPath();
2501 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2502 path
= iTree
.getSelectNode().getId().getPath();
2506 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2507 path
= iTree
.getSelectNode().getId().getPath();
2513 // Show editor panel
2515 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2516 showModuleElement(intCategory
,
2517 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2518 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2519 .findIndexOfListById(new ModuleIdentification(
2522 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2523 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2524 showPackageElement(intCategory
,
2525 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2526 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2527 .findIndexOfListById(new PackageIdentification(
2530 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2531 showPlatformElement(
2533 GlobalData
.openingPlatformList
2534 .getOpeningPlatformById(new PlatformIdentification(id
)));
2535 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2536 .findIndexOfListById(new PlatformIdentification(
2539 } catch (RuntimeException e
) {
2540 Log
.err("double click category: " + intCategory
);
2541 Log
.err("double click id path: " + id
);
2542 Log
.err("double click exception: " + e
.getMessage());
2547 Show content of editor panel via selected element
2553 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2554 this.cleanDesktopPanePlatform();
2556 switch (elementType
) {
2557 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2558 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2559 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2561 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2562 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2563 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2565 case IDefaultMutableTreeNode
.FPD_FLASH
:
2566 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2567 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2569 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2570 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2571 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2573 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2574 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2575 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2577 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2578 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2579 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2582 this.jTabbedPaneEditor
.setSelectedIndex(2);
2583 resizeDesktopPanel();
2587 Show content of editor panel via selected element
2593 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2594 this.cleanDesktopPanePackage();
2595 Tools
.dirForNewSpd
= spd
.getId().getPath();
2596 switch (elementType
) {
2597 case IDefaultMutableTreeNode
.SPD_HEADER
:
2598 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2599 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2601 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2602 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2603 getJDesktopPanePackage().add(frmSlcd
, 1);
2605 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2606 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2607 getJDesktopPanePackage().add(frmSmf
, 1);
2609 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2610 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2611 getJDesktopPanePackage().add(frmSph
, 1);
2613 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2614 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2615 getJDesktopPanePackage().add(frmSgd
, 1);
2617 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2618 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2619 getJDesktopPanePackage().add(frmSprod
, 1);
2621 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2622 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2623 getJDesktopPanePackage().add(frmSppid
, 1);
2625 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2626 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2627 getJDesktopPanePackage().add(frmSpcdd
, 1);
2630 this.jTabbedPaneEditor
.setSelectedIndex(1);
2631 resizeDesktopPanel();
2635 Show content of editor panel via selected element
2641 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2642 this.cleanDesktopPaneModule();
2643 switch (elementType
) {
2644 case IDefaultMutableTreeNode
.MSA_HEADER
:
2645 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2646 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2648 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2649 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2650 getJDesktopPaneModule().add(frmMlcd
, 1);
2652 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2653 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2654 getJDesktopPaneModule().add(frmMpd
, 1);
2656 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2657 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2658 getJDesktopPaneModule().add(frmMsf
, 1);
2660 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2661 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2662 getJDesktopPaneModule().add(frmMp
, 1);
2664 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2665 ModuleEvents frmMe
= new ModuleEvents(msa
);
2666 getJDesktopPaneModule().add(frmMe
, 1);
2668 case IDefaultMutableTreeNode
.MSA_HOBS
:
2669 ModuleHobs frmMh
= new ModuleHobs(msa
);
2670 getJDesktopPaneModule().add(frmMh
, 1);
2672 case IDefaultMutableTreeNode
.MSA_PPIS
:
2673 ModulePpis frmMpp
= new ModulePpis(msa
);
2674 getJDesktopPaneModule().add(frmMpp
, 1);
2676 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2677 ModuleVariables frmMv
= new ModuleVariables(msa
);
2678 getJDesktopPaneModule().add(frmMv
, 1);
2680 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2681 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2682 getJDesktopPaneModule().add(frmMbm
, 1);
2684 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2685 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2686 getJDesktopPaneModule().add(frmMst
, 1);
2688 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2689 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2690 getJDesktopPaneModule().add(frmMdh
, 1);
2692 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2693 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2694 getJDesktopPaneModule().add(frmMf
, 1);
2696 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2697 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2698 getJDesktopPaneModule().add(frmGuid
, 1);
2700 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2701 ModuleExterns frmMex
= new ModuleExterns(msa
);
2702 getJDesktopPaneModule().add(frmMex
, 1);
2704 case IDefaultMutableTreeNode
.MSA_PCDS
:
2705 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2706 getJDesktopPaneModule().add(frmPcd
, 1);
2709 this.jTabbedPaneEditor
.setSelectedIndex(0);
2710 resizeDesktopPanel();
2714 // Define operations of menu
2720 private void fileNew() {
2723 // Selece new file type
2725 NewFileChooser nfc
= new NewFileChooser(this, true);
2726 result
= nfc
.showDialog();
2728 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2731 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2735 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2736 result
= smb
.showDialog();
2738 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2742 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2743 ModuleIdentification mid
= smb
.getMid();
2746 // Update package of workspace first
2748 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2749 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2750 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2753 wt
.addModuleToPackage(mid
, psa
);
2754 } catch (IOException e
) {
2755 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2756 Log
.err("Update MsaFiles in Package", e
.getMessage());
2758 } catch (XmlException e
) {
2759 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2760 Log
.err("Update MsaFiles in Package", e
.getMessage());
2762 } catch (Exception e
) {
2763 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2764 Log
.err("Update MsaFiles in Package", e
.getMessage());
2769 // Update Global Data
2771 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2772 GlobalData
.vModuleList
.addElement(mid
);
2775 // Create new node on the tree
2777 addModuleToTree(mid
);
2782 this.openModule(mid
.getPath());
2785 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2789 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2790 result
= smb
.showDialog();
2792 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2796 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2797 PackageIdentification pid
= smb
.getPid();
2800 wt
.addPackageToDatabase(smb
.getPid());
2801 } catch (Exception e
) {
2802 Log
.err("addPackageToDatabase", e
.getMessage());
2806 // Update Global Data
2808 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
2809 GlobalData
.vPackageList
.addElement(pid
);
2812 // Add to Module Description node
2814 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
2815 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2818 iTree
.addNode(dmtnModuleDescription
, node
);
2821 // Add new SpdHeader node to the tree
2823 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
);
2824 iTree
.addNode(dmtnPackageDescription
, node
);
2826 this.openPackage(pid
.getPath());
2829 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2831 // To new a platform
2833 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2834 result
= smb
.showDialog();
2836 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2840 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2841 PlatformIdentification fid
= smb
.getFid();
2844 wt
.addPlatformToDatabase(fid
);
2845 } catch (Exception e
) {
2846 Log
.err("addPlatformToDatabase", e
.getMessage());
2850 // Update global data
2852 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
2853 GlobalData
.vPlatformList
.addElement(fid
);
2855 // Add new SpdHeader node to the tree
2857 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
2858 IDefaultMutableTreeNode
.PLATFORM
, true,
2860 iTree
.addNode(dmtnPlatformDescription
, node
);
2861 this.openPlatform(fid
.getPath());
2871 private void open() {
2872 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2873 fc
.setAcceptAllFileFilterUsed(false);
2874 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2875 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2876 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2877 fc
.addChoosableFileFilter(iffM
);
2878 fc
.addChoosableFileFilter(iffP
);
2879 fc
.addChoosableFileFilter(iffF
);
2880 fc
.setFileFilter(iffM
);
2882 int result
= fc
.showOpenDialog(new JPanel());
2884 if (result
== JFileChooser
.APPROVE_OPTION
) {
2885 String path
= fc
.getSelectedFile().getPath();
2886 String match
= path
.substring(path
.length() - 4);
2887 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2889 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2891 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2901 private void close() {
2902 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2904 // Current is module
2907 if (this.currentOpeningModuleIndex
> -1) {
2908 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2909 int result
= showSaveDialog();
2910 if (result
== JOptionPane
.YES_OPTION
) {
2913 if (result
== JOptionPane
.NO_OPTION
) {
2916 if (result
== JOptionPane
.CANCEL_OPTION
) {
2921 .removeNodeChildrenByPath(GlobalData
.openingModuleList
2922 .getTreePathByIndex(currentOpeningModuleIndex
));
2923 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
2924 this.cleanDesktopPaneModule();
2925 this.currentOpeningModuleIndex
= -1;
2929 // Current is package
2932 if (this.currentOpeningPackageIndex
> -1) {
2933 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2934 int result
= showSaveDialog();
2935 if (result
== JOptionPane
.YES_OPTION
) {
2938 if (result
== JOptionPane
.NO_OPTION
) {
2941 if (result
== JOptionPane
.CANCEL_OPTION
) {
2946 .removeNodeChildrenByPath(GlobalData
.openingPackageList
2947 .getTreePathByIndex(currentOpeningPackageIndex
));
2948 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
2949 this.cleanDesktopPanePackage();
2950 this.currentOpeningPackageIndex
= -1;
2954 // Current is platform
2957 if (this.currentOpeningPlatformIndex
> -1) {
2958 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
2959 int result
= showSaveDialog();
2960 if (result
== JOptionPane
.YES_OPTION
) {
2963 if (result
== JOptionPane
.NO_OPTION
) {
2966 if (result
== JOptionPane
.CANCEL_OPTION
) {
2971 .removeNodeChildrenByPath(GlobalData
.openingPlatformList
2972 .getTreePathByIndex(currentOpeningPlatformIndex
));
2973 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
2974 this.cleanDesktopPanePlatform();
2975 this.currentOpeningPlatformIndex
= -1;
2982 Close all opening files and clean all showing internal frame
2985 private void closeAll() {
2987 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
2988 || !GlobalData
.openingPlatformList
.isSaved()) {
2989 result
= showSaveDialog();
2991 if (result
== JOptionPane
.YES_OPTION
) {
2994 if (result
== JOptionPane
.NO_OPTION
) {
2999 if (result
== JOptionPane
.CANCEL_OPTION
) {
3002 this.cleanDesktopPane();
3003 GlobalData
.openingModuleList
.closeAll();
3004 GlobalData
.openingPackageList
.closeAll();
3005 GlobalData
.openingPlatformList
.closeAll();
3009 Refresh all global data from disk to memory
3012 private void refresh() {
3017 Save currentModule when press button OK
3020 private void save() {
3021 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3023 if (this.currentOpeningModuleIndex
> -1) {
3024 saveModule(this.currentOpeningModuleIndex
);
3028 if (this.currentOpeningPackageIndex
> -1) {
3029 savePackage(this.currentOpeningPackageIndex
);
3033 if (this.currentOpeningPlatformIndex
> -1) {
3034 savePlatform(this.currentOpeningPlatformIndex
);
3040 private void saveAs() {
3044 private void saveAll() {
3048 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3049 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3055 // Save all packages
3057 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3058 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3064 // Save all platforms
3066 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3067 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3068 savePlatform(index
);
3074 To save changed items before exit.
3077 private void exit() {
3079 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3080 || !GlobalData
.openingPlatformList
.isSaved()) {
3081 result
= showSaveDialog();
3083 if (result
== JOptionPane
.YES_OPTION
) {
3086 if (result
== JOptionPane
.NO_OPTION
) {
3089 if (result
== JOptionPane
.CANCEL_OPTION
) {
3097 To find all defined PPIs in workspace
3100 private void findPpi() {
3101 FindResult fr
= FindResult
.getInstance("PPI");
3102 fr
.setVisible(true);
3106 To find all defined PROTOCOLs in workspace
3109 private void findProtocol() {
3110 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3111 fr
.setVisible(true);
3115 To find all defined PROTOCOLs in workspace
3118 private void findGuid() {
3119 FindResult fr
= FindResult
.getInstance("GUID");
3120 fr
.setVisible(true);
3124 To find all defined PROTOCOLs in workspace
3127 private void findPcd() {
3128 FindResult fr
= FindResult
.getInstance("PCD");
3129 fr
.setVisible(true);
3133 To find all defined Library Classes in workspace
3136 private void findLibraryClass() {
3137 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3138 fr
.setVisible(true);
3142 To find all defined Library Instances in workspace
3145 private void findLibraryInstance() {
3146 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3147 fr
.setVisible(true);
3151 Switch current workspace to others
3154 private void changeWorkspace() {
3155 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3156 int result
= sw
.showDialog();
3157 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3159 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3161 // Reinit whole window
3164 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3165 + Workspace
.getCurrentWorkspace() + "]");
3167 // Reinit Global Data
3175 To create a Far file from current workspace
3178 private void createFar() {
3179 CreateStepOne cso
= new CreateStepOne(this, true);
3180 int result
= cso
.showDialog();
3181 if (result
== DataType
.RETURN_TYPE_OK
) {
3182 String strReturn
= "Far Creation Completed!";
3183 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3184 JOptionPane
.INFORMATION_MESSAGE
);
3190 To install a Far file to current workspace
3193 private void installFar() {
3194 InstallStepOne iso
= new InstallStepOne(this, true);
3195 int result
= iso
.showDialog();
3196 if (result
== DataType
.RETURN_TYPE_OK
) {
3197 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3198 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3199 JOptionPane
.INFORMATION_MESSAGE
);
3202 this.makeEmptyTree();
3208 To remove a Far's items from current workspace
3211 private void removeFar() {
3212 DeleteStepOne dso
= new DeleteStepOne(this, true);
3213 int result
= dso
.showDialog();
3214 if (result
== DataType
.RETURN_TYPE_OK
) {
3215 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3216 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3217 JOptionPane
.INFORMATION_MESSAGE
);
3220 this.makeEmptyTree();
3226 To update an existing Far file
3229 private void updateFar() {
3230 UpdateStepOne uso
= new UpdateStepOne(this, true);
3231 int result
= uso
.showDialog();
3232 if (result
== DataType
.RETURN_TYPE_OK
) {
3233 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3234 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3235 JOptionPane
.INFORMATION_MESSAGE
);
3238 this.makeEmptyTree();
3244 Show Tool Chain Configuration Dialog to setup Tool Chain
3247 private void setupToolChainConfiguration() {
3248 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3252 private void configBuildPreferences() {
3253 Preferences bt
= Preferences
.getInstance();
3261 private void cloneItem() {
3265 // Check if there is any item can be cloned
3267 if (iTree
.getSelectionPath() == null) {
3268 Log
.wrn("Clone", "Please select a target to clone!");
3271 int category
= iTree
.getSelectCategory();
3272 Identification id
= iTree
.getSelectNode().getId();
3273 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3274 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3275 Log
.wrn("Clone", "Please select a target to clone!");
3279 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3280 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3283 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
3284 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3286 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3287 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3289 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3290 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3293 Clone c
= new Clone(this, true, mode
, id
);
3294 int result
= c
.showDialog();
3296 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3299 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3300 Tools
.showInformationMessage("Workspace Clone Completed!");
3302 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3303 Tools
.showInformationMessage("Module Clone Completed!");
3304 GlobalData
.vModuleList
.addElement(c
.getMid());
3305 addModuleToTree(c
.getMid());
3307 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3308 Tools
.showInformationMessage("Package Clone Completed!");
3309 GlobalData
.vPackageList
.addElement(c
.getPid());
3311 // Add new SpdHeader node to the tree
3313 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3314 IDefaultMutableTreeNode
.SPD_HEADER
, true,
3315 GlobalData
.vPackageList
.lastElement());
3316 iTree
.addNode(dmtnPackageDescription
, node
);
3318 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3319 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3320 GlobalData
.vPlatformList
.addElement(c
.getFid());
3322 // Add new SpdHeader node to the tree
3324 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3325 GlobalData
.vPlatformList
.lastElement().getName(),
3326 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
3327 true, GlobalData
.vPlatformList
.lastElement());
3328 iTree
.addNode(dmtnPlatformDescription
, node
);
3329 //this.openPlatform(c.getFid().getPath());
3331 if (result
== DataType
.RETURN_TYPE_OK
) {
3336 public void valueChanged(TreeSelectionEvent arg0
) {
3337 // TODO Auto-generated method stub
3341 public void menuCanceled(MenuEvent arg0
) {
3342 // TODO Auto-generated method stub
3346 public void menuDeselected(MenuEvent arg0
) {
3347 // TODO Auto-generated method stub
3351 public void menuSelected(MenuEvent arg0
) {
3352 if (arg0
.getSource() == jMenuFile
) {
3354 // Enable close/close all if some files are opened
3356 jMenuItemFileClose
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3357 || GlobalData
.openingPackageList
.isOpen()
3358 || GlobalData
.openingPlatformList
.isOpen());
3359 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3360 || GlobalData
.openingPackageList
.isOpen()
3361 || GlobalData
.openingPlatformList
.isOpen());
3364 // Enable save/save all if some files are changed
3366 jMenuItemFileSave
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3367 || !GlobalData
.openingPackageList
.isSaved()
3368 || !GlobalData
.openingPlatformList
.isSaved());
3369 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3370 || !GlobalData
.openingPackageList
.isSaved()
3371 || !GlobalData
.openingPlatformList
.isSaved());
3374 if (arg0
.getSource() == jMenuTools
) {
3376 // Enable clone when select some items
3378 if (iTree
.getSelectionPath() == null) {
3379 jMenuItemToolsClone
.setEnabled(false);
3381 int category
= iTree
.getSelectCategory();
3382 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3383 || category
== IDefaultMutableTreeNode
.PLATFORM
3384 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3385 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3386 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3387 jMenuItemToolsClone
.setEnabled(false);
3389 jMenuItemToolsClone
.setEnabled(true);