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 // Show splash screen
1759 SplashScreen ss
= new SplashScreen();
1760 ss
.setVisible(true);
1763 // Set current workspace and check
1764 // Check if exists WORKSPACE
1767 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1768 if (!Workspace
.checkCurrentWorkspace()) {
1769 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1770 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1781 // Close splash screen
1788 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1789 this.setResizable(true);
1790 this.setJMenuBar(getjJMenuBar());
1791 this.setContentPane(getJContentPane());
1792 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1793 + Workspace
.getCurrentWorkspace() + "]");
1794 this.setExitType(1);
1799 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1803 This method initializes jContentPane
1805 @return javax.swing.JPanel jContentPane
1808 private JPanel
getJContentPane() {
1809 if (jContentPane
== null) {
1810 jContentPane
= new JPanel();
1811 jContentPane
.setLayout(null);
1812 jContentPane
.add(getJPanelOperation(), null);
1813 jContentPane
.add(getJSplitPane(), null);
1815 return jContentPane
;
1819 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1821 * Override actionPerformed to listen all actions
1824 public void actionPerformed(ActionEvent arg0
) {
1826 // Operations of Menu
1828 if (arg0
.getSource() == this.jMenuItemFileNew
) {
1832 if (arg0
.getSource() == this.jMenuItemFileOpen
) {
1836 if (arg0
.getSource() == this.jMenuItemFileClose
) {
1840 if (arg0
.getSource() == this.jMenuItemFileCloseAll
) {
1842 this.makeEmptyTree();
1845 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1849 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1853 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1857 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1861 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1865 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1866 this.findProtocol();
1869 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1873 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1877 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1878 this.findLibraryClass();
1881 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1882 this.findLibraryInstance();
1885 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1886 configBuildPreferences();
1889 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1890 this.changeWorkspace();
1893 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1897 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1901 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1905 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1909 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1913 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1914 this.setupToolChainConfiguration();
1917 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
1918 About a
= new About(this, true);
1919 int result
= a
.showDialog();
1920 if (result
== DataType
.RETURN_TYPE_OK
) {
1927 Create an empty tree if no file is open
1930 private void makeEmptyTree() {
1934 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1937 // Make Module Description
1939 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE
, -1);
1942 // First add package
1944 if (GlobalData
.vPackageList
.size() > 0) {
1945 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1946 IDefaultMutableTreeNode dmtnModulePackage
= null;
1947 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
1948 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
1950 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
1951 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
1952 GlobalData
.vPackageList
.elementAt(index
));
1953 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
1954 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
1955 false, GlobalData
.vPackageList
.elementAt(index
));
1956 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
1957 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
1958 false, GlobalData
.vPackageList
.elementAt(index
));
1960 // And then add each module in its package
1962 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
1963 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
1964 if (vModule
.get(indexJ
).isLibrary()) {
1965 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1966 IDefaultMutableTreeNode
.MODULE
, false,
1967 vModule
.get(indexJ
)));
1969 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1970 IDefaultMutableTreeNode
.MODULE
, false,
1971 vModule
.get(indexJ
)));
1974 if (dmtnModulePackageModule
.getChildCount() > 0) {
1975 dmtnModulePackage
.add(dmtnModulePackageModule
);
1977 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
1978 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
1981 dmtnModuleDescription
.add(dmtnModulePackage
);
1986 // Make Package Description
1988 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE
, -1);
1989 if (GlobalData
.vPackageList
.size() > 0) {
1990 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1991 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
1993 IDefaultMutableTreeNode
.PACKAGE
, false,
1994 GlobalData
.vPackageList
.elementAt(index
)));
1999 // Make Platform Description
2001 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms", IDefaultMutableTreeNode
.PLATFORM
, -1);
2002 if (GlobalData
.vPlatformList
.size() > 0) {
2003 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
2004 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
2006 IDefaultMutableTreeNode
.PLATFORM
, false,
2007 GlobalData
.vPlatformList
.elementAt(index
)));
2012 // Add sub nodes to root node
2014 dmtnRoot
.add(dmtnModuleDescription
);
2015 dmtnRoot
.add(dmtnPackageDescription
);
2016 dmtnRoot
.add(dmtnPlatformDescription
);
2017 iTree
= new ITree(dmtnRoot
);
2018 iTree
.addMouseListener(this);
2019 jScrollPaneTree
.setViewportView(iTree
);
2023 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2025 * Override windowClosing to popup warning message to confirm quit
2028 public void windowClosing(WindowEvent arg0
) {
2033 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2035 * Override mouseClicked to check if need display popup menu
2038 public void mouseClicked(MouseEvent arg0
) {
2039 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
2041 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
2044 // When double click
2046 if (arg0
.getClickCount() == 2) {
2047 doubleClickModuleTreeNode();
2051 public void mouseEntered(MouseEvent arg0
) {
2052 // TODO Auto-generated method stub
2055 public void mouseExited(MouseEvent arg0
) {
2056 // TODO Auto-generated method stub
2059 public void mousePressed(MouseEvent arg0
) {
2060 // TODO Auto-generated method stub
2063 public void mouseReleased(MouseEvent arg0
) {
2064 // TODO Auto-generated method stub
2068 Remove all Internal Frame of Module Desktop Pane
2071 private void cleanDesktopPaneModule() {
2072 if (jDesktopPaneModule
!= null) {
2073 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2074 for (int index
= 0; index
< iif
.length
; index
++) {
2075 iif
[index
].dispose();
2081 Remove all Internal Frame of package Desktop Pane
2084 private void cleanDesktopPanePackage() {
2085 if (jDesktopPanePlatform
!= null) {
2086 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2087 for (int index
= 0; index
< iif
.length
; index
++) {
2088 iif
[index
].dispose();
2094 Remove all Internal Frame of platform Desktop Pane
2097 private void cleanDesktopPanePlatform() {
2098 if (jDesktopPanePlatform
!= null) {
2099 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2100 for (int index
= 0; index
< iif
.length
; index
++) {
2101 iif
[index
].dispose();
2107 Remove all Internal Frame of all Desktop Panes
2110 private void cleanDesktopPane() {
2111 cleanDesktopPaneModule();
2112 cleanDesktopPanePackage();
2113 cleanDesktopPanePlatform();
2117 Set file filter as input ext
2123 private int getNewFilePath(String ext
) {
2124 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2125 fc
.setAcceptAllFileFilterUsed(false);
2126 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2127 return fc
.showSaveDialog(new JPanel());
2131 Add a module to tree
2133 @param mid The module node to be added
2136 private void addModuleToTree(ModuleIdentification mid
) {
2138 // Add new MsaHeader node to the tree
2140 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
, true,
2143 // First find the module belongs to which package
2145 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2146 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2148 // To check if has module node or library node
2150 IDefaultMutableTreeNode parentModuleNode
= null;
2151 IDefaultMutableTreeNode parentLibraryNode
= null;
2152 boolean hasModule
= false;
2153 boolean hasLibrary
= false;
2154 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2155 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2156 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2158 parentLibraryNode
= iNode
;
2160 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2162 parentModuleNode
= iNode
;
2169 if (!mid
.isLibrary()) {
2171 // Create parent node first if has no parent node
2174 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2175 false, mid
.getPackageId());
2176 iTree
.addNode(packageNode
, parentModuleNode
);
2179 iTree
.addNode(parentModuleNode
, node
);
2185 if (mid
.isLibrary()) {
2187 // Create parent node first if has no parent node
2190 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2191 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2192 mid
.getPackageId());
2193 iTree
.addNode(packageNode
, parentLibraryNode
);
2196 iTree
.addNode(parentLibraryNode
, node
);
2203 @param path input file path
2206 private void openModule(String path
) {
2207 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2210 // The module is not in existing packages
2212 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2217 // Make the node selected
2219 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2220 IDefaultMutableTreeNode
.MODULE
)));
2222 // Update opening Module list information
2224 if (!GlobalData
.openingModuleList
.getModuleOpen(id
)) {
2226 // Insert sub node of module
2228 insertModuleTreeNode(id
);
2229 iTree
.getSelectNode().setOpening(true);
2232 // Update opening module list
2234 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2235 GlobalData
.openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2238 // Select msa header node and show it in editor panel
2240 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2241 IDefaultMutableTreeNode
.MSA_HEADER
)));
2242 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2243 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2249 @param path input file path
2252 private void openPackage(String path
) {
2253 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2256 // The package is not in current workspace
2258 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2263 // Make the node selected
2265 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2266 IDefaultMutableTreeNode
.PACKAGE
)));
2268 // Update opening package list information
2270 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2272 // Insert sub node of module
2274 insertPackageTreeNode(id
);
2275 iTree
.getSelectNode().setOpening(true);
2278 // Update opening module list
2280 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2281 GlobalData
.openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2284 // Show spd header in editor panel
2286 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2287 IDefaultMutableTreeNode
.SPD_HEADER
)));
2288 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2289 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2295 @param path input file path
2298 private void openPlatform(String path
) {
2299 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2302 // The platform is not in current workspace
2304 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2309 // Make the node selected
2311 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2312 IDefaultMutableTreeNode
.PLATFORM
)));
2314 // Update opening package list information
2316 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2318 // Insert sub node of module
2320 insertPlatformTreeNode(id
);
2321 iTree
.getSelectNode().setOpening(true);
2324 // Update opening module list
2326 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2327 GlobalData
.openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2330 // Show fpd header in editor panel
2332 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2333 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2334 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2335 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2336 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2343 private void saveModule(int index
) {
2344 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2346 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2351 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2352 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2353 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2354 } catch (Exception e
) {
2355 Log
.wrn("Save Module", e
.getMessage());
2356 Log
.err("Save Module", e
.getMessage());
2364 private void savePackage(int index
) {
2365 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2367 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2372 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2373 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2374 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2375 } catch (Exception e
) {
2376 Log
.wrn("Save Package", e
.getMessage());
2377 Log
.err("Save Package", e
.getMessage());
2385 private void savePlatform(int index
) {
2386 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2388 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2393 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2394 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2395 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2396 } catch (Exception e
) {
2397 Log
.wrn("Save Package", e
.getMessage());
2398 Log
.err("Save Package", e
.getMessage());
2402 public void componentResized(ComponentEvent arg0
) {
2403 if (this.jSplitPane
!= null) {
2404 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2405 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2406 this.jSplitPane
.validate();
2407 resizeDesktopPanel();
2412 Resize JDesktopPanel
2415 private void resizeDesktopPanel() {
2416 resizeDesktopPanel(this.jDesktopPaneModule
);
2417 resizeDesktopPanel(this.jDesktopPanePackage
);
2418 resizeDesktopPanel(this.jDesktopPanePlatform
);
2422 Resize JDesktopPanel
2425 private void resizeDesktopPanel(JDesktopPane jdk
) {
2426 JInternalFrame
[] iif
= jdk
.getAllFrames();
2427 for (int index
= 0; index
< iif
.length
; index
++) {
2428 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2432 private void insertModuleTreeNode(Identification id
) {
2433 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
));
2434 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2435 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2436 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2437 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2438 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2439 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2440 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2441 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2442 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2443 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2444 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2445 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2446 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2447 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2448 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2450 .addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2451 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2454 private void insertPackageTreeNode(Identification id
) {
2455 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
));
2456 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2457 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2458 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2459 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2461 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2463 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2464 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2465 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2467 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2471 private void insertPlatformTreeNode(Identification id
) {
2472 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2474 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2475 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2476 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2477 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2479 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2480 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2481 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2485 Operate when double click a tree node
2488 private void doubleClickModuleTreeNode() {
2489 Identification id
= null;
2490 int intCategory
= -1;
2494 id
= iTree
.getSelectNode().getId();
2495 intCategory
= iTree
.getSelectCategory();
2498 // If the node is not opened yet
2499 // Insert top level elements first
2501 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2503 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2504 path
= iTree
.getSelectNode().getId().getPath();
2506 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2507 path
= iTree
.getSelectNode().getId().getPath();
2512 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2513 path
= iTree
.getSelectNode().getId().getPath();
2517 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2518 path
= iTree
.getSelectNode().getId().getPath();
2524 // Show editor panel
2526 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2527 showModuleElement(intCategory
,
2528 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2529 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2530 .findIndexOfListById(new ModuleIdentification(
2533 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2534 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2535 showPackageElement(intCategory
,
2536 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2537 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2538 .findIndexOfListById(new PackageIdentification(
2541 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2542 showPlatformElement(
2544 GlobalData
.openingPlatformList
2545 .getOpeningPlatformById(new PlatformIdentification(id
)));
2546 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2547 .findIndexOfListById(new PlatformIdentification(
2550 } catch (RuntimeException e
) {
2551 Log
.err("double click category: " + intCategory
);
2552 Log
.err("double click id path: " + id
);
2553 Log
.err("double click exception: " + e
.getMessage());
2558 Show content of editor panel via selected element
2564 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2565 this.cleanDesktopPanePlatform();
2567 switch (elementType
) {
2568 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2569 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2570 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2572 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2573 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2574 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2576 case IDefaultMutableTreeNode
.FPD_FLASH
:
2577 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2578 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2580 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2581 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2582 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2584 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2585 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2586 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2588 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2589 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2590 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2593 this.jTabbedPaneEditor
.setSelectedIndex(2);
2594 resizeDesktopPanel();
2598 Show content of editor panel via selected element
2604 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2605 this.cleanDesktopPanePackage();
2606 Tools
.dirForNewSpd
= spd
.getId().getPath();
2607 switch (elementType
) {
2608 case IDefaultMutableTreeNode
.SPD_HEADER
:
2609 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2610 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2612 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2613 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2614 getJDesktopPanePackage().add(frmSlcd
, 1);
2616 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2617 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2618 getJDesktopPanePackage().add(frmSmf
, 1);
2620 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2621 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2622 getJDesktopPanePackage().add(frmSph
, 1);
2624 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2625 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2626 getJDesktopPanePackage().add(frmSgd
, 1);
2628 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2629 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2630 getJDesktopPanePackage().add(frmSprod
, 1);
2632 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2633 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2634 getJDesktopPanePackage().add(frmSppid
, 1);
2636 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2637 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2638 getJDesktopPanePackage().add(frmSpcdd
, 1);
2641 this.jTabbedPaneEditor
.setSelectedIndex(1);
2642 resizeDesktopPanel();
2646 Show content of editor panel via selected element
2652 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2653 this.cleanDesktopPaneModule();
2654 switch (elementType
) {
2655 case IDefaultMutableTreeNode
.MSA_HEADER
:
2656 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2657 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2659 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2660 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2661 getJDesktopPaneModule().add(frmMlcd
, 1);
2663 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2664 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2665 getJDesktopPaneModule().add(frmMpd
, 1);
2667 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2668 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2669 getJDesktopPaneModule().add(frmMsf
, 1);
2671 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2672 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2673 getJDesktopPaneModule().add(frmMp
, 1);
2675 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2676 ModuleEvents frmMe
= new ModuleEvents(msa
);
2677 getJDesktopPaneModule().add(frmMe
, 1);
2679 case IDefaultMutableTreeNode
.MSA_HOBS
:
2680 ModuleHobs frmMh
= new ModuleHobs(msa
);
2681 getJDesktopPaneModule().add(frmMh
, 1);
2683 case IDefaultMutableTreeNode
.MSA_PPIS
:
2684 ModulePpis frmMpp
= new ModulePpis(msa
);
2685 getJDesktopPaneModule().add(frmMpp
, 1);
2687 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2688 ModuleVariables frmMv
= new ModuleVariables(msa
);
2689 getJDesktopPaneModule().add(frmMv
, 1);
2691 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2692 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2693 getJDesktopPaneModule().add(frmMbm
, 1);
2695 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2696 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2697 getJDesktopPaneModule().add(frmMst
, 1);
2699 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2700 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2701 getJDesktopPaneModule().add(frmMdh
, 1);
2703 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2704 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2705 getJDesktopPaneModule().add(frmMf
, 1);
2707 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2708 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2709 getJDesktopPaneModule().add(frmGuid
, 1);
2711 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2712 ModuleExterns frmMex
= new ModuleExterns(msa
);
2713 getJDesktopPaneModule().add(frmMex
, 1);
2715 case IDefaultMutableTreeNode
.MSA_PCDS
:
2716 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2717 getJDesktopPaneModule().add(frmPcd
, 1);
2720 this.jTabbedPaneEditor
.setSelectedIndex(0);
2721 resizeDesktopPanel();
2725 // Define operations of menu
2731 private void fileNew() {
2734 // Selece new file type
2736 NewFileChooser nfc
= new NewFileChooser(this, true);
2737 result
= nfc
.showDialog();
2739 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2742 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2746 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2747 result
= smb
.showDialog();
2749 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2753 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2754 ModuleIdentification mid
= smb
.getMid();
2757 // Update package of workspace first
2759 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2760 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2761 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2764 wt
.addModuleToPackage(mid
, psa
);
2765 } catch (IOException e
) {
2766 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2767 Log
.err("Update MsaFiles in Package", e
.getMessage());
2769 } catch (XmlException e
) {
2770 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2771 Log
.err("Update MsaFiles in Package", e
.getMessage());
2773 } catch (Exception e
) {
2774 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2775 Log
.err("Update MsaFiles in Package", e
.getMessage());
2780 // Update Global Data
2782 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2783 GlobalData
.vModuleList
.addElement(mid
);
2786 // Create new node on the tree
2788 addModuleToTree(mid
);
2793 this.openModule(mid
.getPath());
2796 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2800 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2801 result
= smb
.showDialog();
2803 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2807 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2808 PackageIdentification pid
= smb
.getPid();
2811 wt
.addPackageToDatabase(smb
.getPid());
2812 } catch (Exception e
) {
2813 Log
.err("addPackageToDatabase", e
.getMessage());
2817 // Update Global Data
2819 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
2820 GlobalData
.vPackageList
.addElement(pid
);
2823 // Add to Module Description node
2825 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
2826 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2829 iTree
.addNode(dmtnModuleDescription
, node
);
2832 // Add new SpdHeader node to the tree
2834 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
);
2835 iTree
.addNode(dmtnPackageDescription
, node
);
2837 this.openPackage(pid
.getPath());
2840 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2842 // To new a platform
2844 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2845 result
= smb
.showDialog();
2847 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2851 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2852 PlatformIdentification fid
= smb
.getFid();
2855 wt
.addPlatformToDatabase(fid
);
2856 } catch (Exception e
) {
2857 Log
.err("addPlatformToDatabase", e
.getMessage());
2861 // Update global data
2863 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
2864 GlobalData
.vPlatformList
.addElement(fid
);
2866 // Add new SpdHeader node to the tree
2868 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
2869 IDefaultMutableTreeNode
.PLATFORM
, true,
2871 iTree
.addNode(dmtnPlatformDescription
, node
);
2872 this.openPlatform(fid
.getPath());
2882 private void open() {
2883 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2884 fc
.setAcceptAllFileFilterUsed(false);
2885 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2886 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2887 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2888 fc
.addChoosableFileFilter(iffM
);
2889 fc
.addChoosableFileFilter(iffP
);
2890 fc
.addChoosableFileFilter(iffF
);
2891 fc
.setFileFilter(iffM
);
2893 int result
= fc
.showOpenDialog(new JPanel());
2895 if (result
== JFileChooser
.APPROVE_OPTION
) {
2896 String path
= fc
.getSelectedFile().getPath();
2897 String match
= path
.substring(path
.length() - 4);
2898 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2900 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2902 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2912 private void close() {
2913 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2915 // Current is module
2918 if (this.currentOpeningModuleIndex
> -1) {
2919 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2920 int result
= showSaveDialog();
2921 if (result
== JOptionPane
.YES_OPTION
) {
2924 if (result
== JOptionPane
.NO_OPTION
) {
2927 if (result
== JOptionPane
.CANCEL_OPTION
) {
2932 .removeNodeChildrenByPath(GlobalData
.openingModuleList
2933 .getTreePathByIndex(currentOpeningModuleIndex
));
2934 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
2935 this.cleanDesktopPaneModule();
2936 this.currentOpeningModuleIndex
= -1;
2940 // Current is package
2943 if (this.currentOpeningPackageIndex
> -1) {
2944 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2945 int result
= showSaveDialog();
2946 if (result
== JOptionPane
.YES_OPTION
) {
2949 if (result
== JOptionPane
.NO_OPTION
) {
2952 if (result
== JOptionPane
.CANCEL_OPTION
) {
2957 .removeNodeChildrenByPath(GlobalData
.openingPackageList
2958 .getTreePathByIndex(currentOpeningPackageIndex
));
2959 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
2960 this.cleanDesktopPanePackage();
2961 this.currentOpeningPackageIndex
= -1;
2965 // Current is platform
2968 if (this.currentOpeningPlatformIndex
> -1) {
2969 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
2970 int result
= showSaveDialog();
2971 if (result
== JOptionPane
.YES_OPTION
) {
2974 if (result
== JOptionPane
.NO_OPTION
) {
2977 if (result
== JOptionPane
.CANCEL_OPTION
) {
2982 .removeNodeChildrenByPath(GlobalData
.openingPlatformList
2983 .getTreePathByIndex(currentOpeningPlatformIndex
));
2984 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
2985 this.cleanDesktopPanePlatform();
2986 this.currentOpeningPlatformIndex
= -1;
2993 Close all opening files and clean all showing internal frame
2996 private void closeAll() {
2998 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
2999 || !GlobalData
.openingPlatformList
.isSaved()) {
3000 result
= showSaveDialog();
3002 if (result
== JOptionPane
.YES_OPTION
) {
3005 if (result
== JOptionPane
.NO_OPTION
) {
3010 if (result
== JOptionPane
.CANCEL_OPTION
) {
3013 this.cleanDesktopPane();
3014 GlobalData
.openingModuleList
.closeAll();
3015 GlobalData
.openingPackageList
.closeAll();
3016 GlobalData
.openingPlatformList
.closeAll();
3020 Refresh all global data from disk to memory
3023 private void refresh() {
3028 Save currentModule when press button OK
3031 private void save() {
3032 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3034 if (this.currentOpeningModuleIndex
> -1) {
3035 saveModule(this.currentOpeningModuleIndex
);
3039 if (this.currentOpeningPackageIndex
> -1) {
3040 savePackage(this.currentOpeningPackageIndex
);
3044 if (this.currentOpeningPlatformIndex
> -1) {
3045 savePlatform(this.currentOpeningPlatformIndex
);
3051 private void saveAs() {
3055 private void saveAll() {
3059 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3060 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3066 // Save all packages
3068 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3069 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3075 // Save all platforms
3077 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3078 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3079 savePlatform(index
);
3085 To save changed items before exit.
3088 private void exit() {
3090 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3091 || !GlobalData
.openingPlatformList
.isSaved()) {
3092 result
= showSaveDialog();
3094 if (result
== JOptionPane
.YES_OPTION
) {
3097 if (result
== JOptionPane
.NO_OPTION
) {
3100 if (result
== JOptionPane
.CANCEL_OPTION
) {
3108 To find all defined PPIs in workspace
3111 private void findPpi() {
3112 FindResult fr
= FindResult
.getInstance("PPI");
3113 fr
.setVisible(true);
3117 To find all defined PROTOCOLs in workspace
3120 private void findProtocol() {
3121 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3122 fr
.setVisible(true);
3126 To find all defined PROTOCOLs in workspace
3129 private void findGuid() {
3130 FindResult fr
= FindResult
.getInstance("GUID");
3131 fr
.setVisible(true);
3135 To find all defined PROTOCOLs in workspace
3138 private void findPcd() {
3139 FindResult fr
= FindResult
.getInstance("PCD");
3140 fr
.setVisible(true);
3144 To find all defined Library Classes in workspace
3147 private void findLibraryClass() {
3148 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3149 fr
.setVisible(true);
3153 To find all defined Library Instances in workspace
3156 private void findLibraryInstance() {
3157 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3158 fr
.setVisible(true);
3162 Switch current workspace to others
3165 private void changeWorkspace() {
3166 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3167 int result
= sw
.showDialog();
3168 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3170 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3172 // Reinit whole window
3175 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3176 + Workspace
.getCurrentWorkspace() + "]");
3178 // Reinit Global Data
3186 To create a Far file from current workspace
3189 private void createFar() {
3190 CreateStepOne cso
= new CreateStepOne(this, true);
3191 int result
= cso
.showDialog();
3192 if (result
== DataType
.RETURN_TYPE_OK
) {
3193 String strReturn
= "Far Creation Completed!";
3194 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3195 JOptionPane
.INFORMATION_MESSAGE
);
3201 To install a Far file to current workspace
3204 private void installFar() {
3205 InstallStepOne iso
= new InstallStepOne(this, true);
3206 int result
= iso
.showDialog();
3207 if (result
== DataType
.RETURN_TYPE_OK
) {
3208 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3209 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3210 JOptionPane
.INFORMATION_MESSAGE
);
3213 this.makeEmptyTree();
3219 To remove a Far's items from current workspace
3222 private void removeFar() {
3223 DeleteStepOne dso
= new DeleteStepOne(this, true);
3224 int result
= dso
.showDialog();
3225 if (result
== DataType
.RETURN_TYPE_OK
) {
3226 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3227 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3228 JOptionPane
.INFORMATION_MESSAGE
);
3231 this.makeEmptyTree();
3237 To update an existing Far file
3240 private void updateFar() {
3241 UpdateStepOne uso
= new UpdateStepOne(this, true);
3242 int result
= uso
.showDialog();
3243 if (result
== DataType
.RETURN_TYPE_OK
) {
3244 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3245 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3246 JOptionPane
.INFORMATION_MESSAGE
);
3249 this.makeEmptyTree();
3255 Show Tool Chain Configuration Dialog to setup Tool Chain
3258 private void setupToolChainConfiguration() {
3259 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3263 private void configBuildPreferences() {
3264 Preferences bt
= Preferences
.getInstance();
3272 private void cloneItem() {
3276 // Check if there is any item can be cloned
3278 if (iTree
.getSelectionPath() == null) {
3279 Log
.wrn("Clone", "Please select a target to clone!");
3282 int category
= iTree
.getSelectCategory();
3283 Identification id
= iTree
.getSelectNode().getId();
3284 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3285 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3286 Log
.wrn("Clone", "Please select a target to clone!");
3290 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3291 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3294 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
3295 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3297 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3298 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3300 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3301 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3304 Clone c
= new Clone(this, true, mode
, id
);
3305 int result
= c
.showDialog();
3307 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3310 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3311 Tools
.showInformationMessage("Workspace Clone Completed!");
3313 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3314 Tools
.showInformationMessage("Module Clone Completed!");
3315 GlobalData
.vModuleList
.addElement(c
.getMid());
3316 addModuleToTree(c
.getMid());
3318 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3319 Tools
.showInformationMessage("Package Clone Completed!");
3320 GlobalData
.vPackageList
.addElement(c
.getPid());
3322 // Add new SpdHeader node to the tree
3324 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3325 IDefaultMutableTreeNode
.SPD_HEADER
, true,
3326 GlobalData
.vPackageList
.lastElement());
3327 iTree
.addNode(dmtnPackageDescription
, node
);
3329 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3330 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3331 GlobalData
.vPlatformList
.addElement(c
.getFid());
3333 // Add new SpdHeader node to the tree
3335 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3336 GlobalData
.vPlatformList
.lastElement().getName(),
3337 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
3338 true, GlobalData
.vPlatformList
.lastElement());
3339 iTree
.addNode(dmtnPlatformDescription
, node
);
3340 //this.openPlatform(c.getFid().getPath());
3342 if (result
== DataType
.RETURN_TYPE_OK
) {
3347 public void valueChanged(TreeSelectionEvent arg0
) {
3348 // TODO Auto-generated method stub
3352 public void menuCanceled(MenuEvent arg0
) {
3353 // TODO Auto-generated method stub
3357 public void menuDeselected(MenuEvent arg0
) {
3358 // TODO Auto-generated method stub
3362 public void menuSelected(MenuEvent arg0
) {
3363 if (arg0
.getSource() == jMenuFile
) {
3365 // Enable close/close all if some files are opened
3367 jMenuItemFileClose
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3368 || GlobalData
.openingPackageList
.isOpen()
3369 || GlobalData
.openingPlatformList
.isOpen());
3370 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3371 || GlobalData
.openingPackageList
.isOpen()
3372 || GlobalData
.openingPlatformList
.isOpen());
3375 // Enable save/save all if some files are changed
3377 jMenuItemFileSave
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3378 || !GlobalData
.openingPackageList
.isSaved()
3379 || !GlobalData
.openingPlatformList
.isSaved());
3380 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3381 || !GlobalData
.openingPackageList
.isSaved()
3382 || !GlobalData
.openingPlatformList
.isSaved());
3385 if (arg0
.getSource() == jMenuTools
) {
3387 // Enable clone when select some items
3389 if (iTree
.getSelectionPath() == null) {
3390 jMenuItemToolsClone
.setEnabled(false);
3392 int category
= iTree
.getSelectCategory();
3393 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3394 || category
== IDefaultMutableTreeNode
.PLATFORM
3395 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3396 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3397 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3398 jMenuItemToolsClone
.setEnabled(false);
3400 jMenuItemToolsClone
.setEnabled(true);