3 The main GUI for module editor.
5 Copyright (c) 2006, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 package org
.tianocore
.frameworkwizard
;
18 import java
.awt
.event
.ActionEvent
;
19 import java
.awt
.event
.ComponentEvent
;
20 import java
.awt
.event
.MouseEvent
;
21 import java
.awt
.event
.MouseListener
;
22 import java
.awt
.event
.WindowEvent
;
23 import java
.io
.IOException
;
24 import java
.util
.Vector
;
26 import javax
.swing
.JButton
;
27 import javax
.swing
.JCheckBoxMenuItem
;
28 import javax
.swing
.JDesktopPane
;
29 import javax
.swing
.JFileChooser
;
30 import javax
.swing
.JFrame
;
31 import javax
.swing
.JInternalFrame
;
32 import javax
.swing
.JMenu
;
33 import javax
.swing
.JMenuBar
;
34 import javax
.swing
.JMenuItem
;
35 import javax
.swing
.JOptionPane
;
36 import javax
.swing
.JPanel
;
37 import javax
.swing
.JScrollPane
;
38 import javax
.swing
.JSplitPane
;
39 import javax
.swing
.JTabbedPane
;
40 import javax
.swing
.event
.MenuEvent
;
41 import javax
.swing
.event
.MenuListener
;
42 import javax
.swing
.event
.TreeSelectionEvent
;
43 import javax
.swing
.event
.TreeSelectionListener
;
45 import org
.apache
.xmlbeans
.XmlException
;
46 import org
.tianocore
.PackageSurfaceAreaDocument
;
47 import org
.tianocore
.frameworkwizard
.common
.DataType
;
48 import org
.tianocore
.frameworkwizard
.common
.GlobalData
;
49 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
50 import org
.tianocore
.frameworkwizard
.common
.Log
;
51 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
52 import org
.tianocore
.frameworkwizard
.common
.Tools
;
53 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
54 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
55 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
56 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
57 import org
.tianocore
.frameworkwizard
.common
.find
.FindResult
;
58 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
59 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
60 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
61 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
62 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
63 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
64 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
65 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
66 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
67 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
68 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
69 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
70 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
71 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
72 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
73 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
74 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
83 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
84 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
85 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
86 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
87 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
88 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
89 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
90 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
91 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
92 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
93 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
94 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
95 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
96 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
97 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
98 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
99 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
100 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
101 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
102 import org
.tianocore
.frameworkwizard
.toolchain
.Preferences
;
105 The class is used to show main GUI of FrameworkWizard
106 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
109 public class FrameworkWizardUI
extends IFrame
implements MouseListener
, TreeSelectionListener
, MenuListener
{
111 /// Define class Serial Version UID
113 private static final long serialVersionUID
= -7103240960573031772L;
116 /// Used to record current operation target
118 private int currentOpeningModuleIndex
= -1;
120 private int currentOpeningPackageIndex
= -1;
122 private int currentOpeningPlatformIndex
= -1;
125 /// Used to generate tree structure
127 private IDefaultMutableTreeNode dmtnRoot
= null;
129 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
131 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
133 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
138 private JPanel jContentPane
= null;
140 private JMenuBar jMenuBar
= null;
142 private JMenu jMenuFile
= null;
144 private JMenuItem jMenuItemFileNew
= null;
146 private JMenuItem jMenuItemFileSaveAs
= null;
148 private JMenuItem jMenuItemFileExit
= null;
150 private JMenu jMenuEdit
= null;
152 private JDesktopPane jDesktopPaneModule
= null;
154 private JDesktopPane jDesktopPanePackage
= null;
156 private JDesktopPane jDesktopPanePlatform
= null;
158 private JTabbedPane jTabbedPaneTree
= null;
160 private JTabbedPane jTabbedPaneEditor
= null;
162 private IDesktopManager iDesktopManager
= new IDesktopManager();
164 private JScrollPane jScrollPaneTree
= null;
166 private ITree iTree
= null;
168 private JMenu jMenuHelp
= null;
170 private JMenuItem jMenuItemHelpAbout
= null;
172 private JMenuItem jMenuItemEditDelete
= null;
174 private WorkspaceTools wt
= new WorkspaceTools();
176 private JMenuItem jMenuItemFileSave
= null;
178 private JMenuItem jMenuItemFileClose
= null;
180 private JMenu jMenuTools
= null;
182 private JMenu jMenuWindow
= null;
184 private JPanel jPanelOperation
= null;
186 private JButton jButtonOk
= null;
188 private JButton jButtonCancel
= null;
190 private JMenuItem jMenuItemFileOpen
= null;
192 private JMenuItem jMenuItemFileCloseAll
= null;
194 private JMenuItem jMenuItemFileSaveAll
= null;
196 private JMenuItem jMenuItemFilePageSetup
= null;
198 private JMenuItem jMenuItemFilePrint
= null;
200 private JMenuItem jMenuItemFileImport
= null;
202 private JMenuItem jMenuItemFileProperties
= null;
204 private JMenu jMenuFileRecentFiles
= null;
206 private JSplitPane jSplitPane
= null;
208 private JMenuItem jMenuItemEditUndo
= null;
210 private JMenuItem jMenuItemEditRedo
= null;
212 private JMenuItem jMenuItemEditCut
= null;
214 private JMenuItem jMenuItemEditCopy
= null;
216 private JMenuItem jMenuItemEditPaste
= null;
218 private JMenuItem jMenuItemEditSelectAll
= null;
220 private JMenuItem jMenuItemEditFindNext
= null;
222 private JMenu jMenuView
= null;
224 private JMenu jMenuViewToolbars
= null;
226 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
228 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
230 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
232 private JMenuItem jMenuItemViewStandard
= null;
234 private JMenuItem jMenuItemViewAdvanced
= null;
236 private JMenu jMenuProject
= null;
238 private JMenuItem jMenuItemProjectAdmin
= null;
240 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
242 private JMenuItem jMenuItemToolsBuildPreferences
= null;
244 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
246 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
248 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
250 private JMenuItem jMenuItemToolsClone
= null;
252 private JMenuItem jMenuItemToolsCodeScan
= null;
254 private JMenuItem jMenuItemWindowDisplaySide
= null;
256 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
258 private JMenuItem jMenuItemViewXML
= null;
260 private JMenuItem jMenuItemWindowTabView
= null;
262 private JMenuItem jMenuItemWindowSource
= null;
264 private JMenuItem jMenuItemWindowXML
= null;
266 private JMenuItem jMenuItemWindowPreferences
= null;
268 private JMenuItem jMenuItemHelpContents
= null;
270 private JMenuItem jMenuItemHelpIndex
= null;
272 private JMenuItem jMenuItemHelpSearch
= null;
274 private JMenuItem jMenuItemProjectInstallFar
= null;
276 private JMenuItem jMenuItemProjectUpdateFar
= null;
278 private JMenuItem jMenuItemProjectRemoveFar
= null;
280 private JMenuItem jMenuItemProjectCreateFar
= null;
282 private JMenu jMenuEditFind
= null;
284 private JMenuItem jMenuItemEditFindPcd
= null;
286 private JMenuItem jMenuItemEditFindLibraryClass
= null;
288 private JMenuItem jMenuItemEditFindPpi
= null;
290 private JMenuItem jMenuItemEditFindProtocol
= null;
292 private JMenuItem jMenuItemEditFindGuid
= null;
294 private JMenuItem jMenuItemEditFindLibraryInstance
= null;
297 /// A static definition for this class itself
299 private static FrameworkWizardUI fwui
= null;
302 If the class hasn't an instnace, new one.
304 @return FrameworkWizardUI The instance of this class
307 public static FrameworkWizardUI
getInstance() {
309 fwui
= new FrameworkWizardUI();
315 This method initializes jMenuBar
317 @return javax.swing.JMenuBar Main menu bar for the entire GUI
320 private JMenuBar
getjJMenuBar() {
321 if (jMenuBar
== null) {
322 jMenuBar
= new JMenuBar();
323 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
324 jMenuBar
.add(getJMenuFile());
325 jMenuBar
.add(getJMenuEdit());
326 jMenuBar
.add(getJMenuView());
327 jMenuBar
.add(getJMenuProject());
328 jMenuBar
.add(getJMenuTools());
329 jMenuBar
.add(getJMenuWindow());
330 jMenuBar
.add(getJMenuHelp());
336 This method initializes jSplitPane
338 @return javax.swing.JSplitPane
341 private JSplitPane
getJSplitPane() {
342 if (jSplitPane
== null) {
343 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
344 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
345 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
346 jSplitPane
.addComponentListener(this);
352 This method initializes jTabbedPaneEditor
354 @return javax.swing.JTabbedPane
357 private JTabbedPane
getJTabbedPaneEditor() {
358 if (jTabbedPaneEditor
== null) {
359 jTabbedPaneEditor
= new JTabbedPane();
360 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
361 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
362 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
363 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
365 .setMinimumSize(new java
.awt
.Dimension(
366 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
367 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
368 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
369 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
370 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
372 return jTabbedPaneEditor
;
376 This method initializes jTabbedPaneTree
378 @return javax.swing.JTabbedPane
381 private JTabbedPane
getJTabbedPaneTree() {
382 if (jTabbedPaneTree
== null) {
383 jTabbedPaneTree
= new JTabbedPane();
385 .setPreferredSize(new java
.awt
.Dimension(
386 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
387 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
389 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
390 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
391 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
393 return jTabbedPaneTree
;
397 This method initializes jMenuFile
399 @return javax.swing.JMenu jMenuModule
402 private JMenu
getJMenuFile() {
403 if (jMenuFile
== null) {
405 // Set jMenuFile's attributes
407 jMenuFile
= new JMenu();
408 jMenuFile
.setText("File");
409 jMenuFile
.setMnemonic('F');
410 jMenuFile
.addMenuListener(this);
413 // Add sub menu items
415 jMenuFile
.add(getJMenuItemFileNew());
416 jMenuFile
.add(getJMenuItemFileOpen());
417 jMenuFile
.add(getJMenuItemFileClose());
418 jMenuFile
.add(getJMenuItemFileCloseAll());
419 jMenuFile
.addSeparator();
421 jMenuFile
.add(getJMenuFileRecentFiles());
422 jMenuFile
.add(getJMenuItemFileSave());
423 jMenuFile
.add(getJMenuItemFileSaveAs());
424 jMenuFile
.add(getJMenuItemFileSaveAll());
425 jMenuFile
.addSeparator();
427 jMenuFile
.add(getJMenuItemFilePageSetup());
428 jMenuFile
.add(getJMenuItemFilePrint());
429 jMenuFile
.add(getJMenuItemFileImport());
430 jMenuFile
.add(getJMenuItemFileProperties());
432 jMenuFile
.add(getJMenuItemFileExit());
438 This method initializes jMenuItemFileSaveAs
440 @return javax.swing.JMenuItem jMenuItemFileSaveAs
443 private JMenuItem
getJMenuItemFileSaveAs() {
444 if (jMenuItemFileSaveAs
== null) {
445 jMenuItemFileSaveAs
= new JMenuItem();
446 jMenuItemFileSaveAs
.setText("Save As...");
447 jMenuItemFileSaveAs
.setMnemonic('a');
448 jMenuItemFileSaveAs
.addActionListener(this);
449 jMenuItemFileSaveAs
.setEnabled(false);
450 jMenuItemFileSaveAs
.setVisible(false);
452 return jMenuItemFileSaveAs
;
456 This method initializes jMenuItemModuleExit
458 @return javax.swing.JMenuItem jMenuItemModuleExit
461 private JMenuItem
getJMenuItemFileExit() {
462 if (jMenuItemFileExit
== null) {
463 jMenuItemFileExit
= new JMenuItem();
464 jMenuItemFileExit
.setText("Exit");
465 jMenuItemFileExit
.setMnemonic('x');
466 jMenuItemFileExit
.addActionListener(this);
468 return jMenuItemFileExit
;
472 This method initializes jMenuEdit
474 @return javax.swing.JMenu jMenuEdit
477 private JMenu
getJMenuEdit() {
478 if (jMenuEdit
== null) {
480 // Set jMenuEdit's attributes
482 jMenuEdit
= new JMenu();
483 jMenuEdit
.setText("Edit");
484 jMenuEdit
.setMnemonic('E');
485 jMenuEdit
.setVisible(true);
488 // Add sub menu items
490 jMenuEdit
.add(getJMenuItemEditUndo());
491 jMenuEdit
.add(getJMenuItemEditRedo());
492 //jMenuEdit.addSeparator();
494 jMenuEdit
.add(getJMenuItemEditCut());
495 jMenuEdit
.add(getJMenuItemEditCopy());
496 jMenuEdit
.add(getJMenuItemEditPaste());
497 jMenuEdit
.add(getJMenuItemEditDelete());
498 //jMenuEdit.addSeparator();
500 jMenuEdit
.add(getJMenuItemEditSelectAll());
501 jMenuEdit
.add(getJMenuEditFind());
502 jMenuEdit
.add(getJMenuItemEditFindNext());
503 //jMenuEdit.addSeparator();
509 This method initializes jDesktopPane
511 @return javax.swing.JDesktopPane jDesktopPane
514 private JDesktopPane
getJDesktopPaneModule() {
515 if (jDesktopPaneModule
== null) {
516 jDesktopPaneModule
= new JDesktopPane();
518 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
519 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
520 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
521 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
523 .setMinimumSize(new java
.awt
.Dimension(
524 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
525 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
526 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
527 jDesktopPaneModule
.addComponentListener(this);
529 return jDesktopPaneModule
;
533 This method initializes jDesktopPane
535 @return javax.swing.JDesktopPane jDesktopPane
538 private JDesktopPane
getJDesktopPanePackage() {
539 if (jDesktopPanePackage
== null) {
540 jDesktopPanePackage
= new JDesktopPane();
542 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
543 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
544 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
545 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
547 .setMinimumSize(new java
.awt
.Dimension(
548 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
549 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
550 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
551 jDesktopPanePackage
.addComponentListener(this);
553 return jDesktopPanePackage
;
557 This method initializes jDesktopPane
559 @return javax.swing.JDesktopPane jDesktopPane
562 private JDesktopPane
getJDesktopPanePlatform() {
563 if (jDesktopPanePlatform
== null) {
564 jDesktopPanePlatform
= new JDesktopPane();
566 .setBounds(new java
.awt
.Rectangle(
567 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
568 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
569 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
570 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
572 .setMinimumSize(new java
.awt
.Dimension(
573 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
574 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
575 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
576 jDesktopPanePlatform
.addComponentListener(this);
578 return jDesktopPanePlatform
;
582 This method initializes jScrollPaneTree
584 @return javax.swing.JScrollPane jScrollPaneTree
587 private JScrollPane
getJScrollPaneTree() {
588 if (jScrollPaneTree
== null) {
589 jScrollPaneTree
= new JScrollPane();
591 .setPreferredSize(new java
.awt
.Dimension(
592 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
593 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
595 .setMinimumSize(new java
.awt
.Dimension(
596 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
597 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
598 jScrollPaneTree
.setViewportView(getITree());
600 return jScrollPaneTree
;
604 This method initializes iTree
606 @return org.tianocore.packaging.common.ui.ITree iTree
609 private ITree
getITree() {
611 //Before open a real module, use an empty root node for the tree
618 This method initializes jMenuHelp
620 @return javax.swing.JMenu jMenuHelp
623 private JMenu
getJMenuHelp() {
624 if (jMenuHelp
== null) {
626 // Set jMenuHelp's attributes
628 jMenuHelp
= new JMenu();
629 jMenuHelp
.setText("Help");
632 // Add sub menu items
634 jMenuHelp
.add(getJMenuItemHelpContents());
635 jMenuHelp
.add(getJMenuItemHelpIndex());
636 jMenuHelp
.add(getJMenuItemHelpSearch());
638 jMenuHelp
.add(getJMenuItemHelpAbout());
644 This method initializes jMenuItemHelpAbout
646 @return javax.swing.JMenuItem jMenuItemHelpAbout
649 private JMenuItem
getJMenuItemHelpAbout() {
650 if (jMenuItemHelpAbout
== null) {
651 jMenuItemHelpAbout
= new JMenuItem();
652 jMenuItemHelpAbout
.setText("About...");
653 jMenuItemHelpAbout
.addActionListener(this);
655 return jMenuItemHelpAbout
;
659 This method initializes jMenuItemEditDelete
661 @return javax.swing.JMenuItem jMenuItemEditDelete
664 private JMenuItem
getJMenuItemEditDelete() {
665 if (jMenuItemEditDelete
== null) {
666 jMenuItemEditDelete
= new JMenuItem();
667 jMenuItemEditDelete
.setText("Delete");
668 jMenuItemEditDelete
.setMnemonic('D');
669 jMenuItemEditDelete
.setVisible(false);
670 jMenuItemEditDelete
.setEnabled(false);
671 jMenuItemEditDelete
.addActionListener(this);
673 //Disabled first when no module is open
675 jMenuItemEditDelete
.setEnabled(false);
677 return jMenuItemEditDelete
;
681 This method initializes jMenuFileNew
683 @return javax.swing.JMenuItem jMenuFileNew
686 private JMenuItem
getJMenuItemFileNew() {
687 if (jMenuItemFileNew
== null) {
688 jMenuItemFileNew
= new JMenuItem();
689 jMenuItemFileNew
.setText("New...");
690 jMenuItemFileNew
.setMnemonic('N');
691 jMenuItemFileNew
.addActionListener(this);
693 return jMenuItemFileNew
;
697 This method initializes jMenuItemFileSave
699 @return javax.swing.JMenuItem jMenuItemModuleSave
702 private JMenuItem
getJMenuItemFileSave() {
703 if (jMenuItemFileSave
== null) {
704 jMenuItemFileSave
= new JMenuItem();
705 jMenuItemFileSave
.setText("Save");
706 jMenuItemFileSave
.setMnemonic('S');
707 jMenuItemFileSave
.addActionListener(this);
708 jMenuItemFileSave
.setEnabled(true);
710 return jMenuItemFileSave
;
714 This method initializes jMenuItemModuleClose
716 @return javax.swing.JMenuItem jMenuItemModuleClose
719 private JMenuItem
getJMenuItemFileClose() {
720 if (jMenuItemFileClose
== null) {
721 jMenuItemFileClose
= new JMenuItem();
722 jMenuItemFileClose
.setText("Close");
723 jMenuItemFileClose
.setMnemonic('C');
724 jMenuItemFileClose
.setEnabled(true);
725 jMenuItemFileClose
.addActionListener(this);
727 return jMenuItemFileClose
;
731 This method initializes jMenuTools
734 @return javax.swing.JMenu jMenuTools
737 private JMenu
getJMenuTools() {
738 if (jMenuTools
== null) {
740 // Set jMenuTools's attributes
742 jMenuTools
= new JMenu();
743 jMenuTools
.setText("Tools");
744 jMenuTools
.setMnemonic('T');
745 jMenuTools
.addMenuListener(this);
748 // Add sub menu items
751 jMenuTools
.add(getJMenuItemToolsClone());
752 jMenuTools
.add(getJMenuItemToolsCodeScan());
753 jMenuTools
.addSeparator();
755 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
756 jMenuTools
.add(getJMenuItemToolsBuildPreferences());
762 This method initializes jMenuWindow
765 @return javax.swing.JMenu jMenuWindow
768 private JMenu
getJMenuWindow() {
769 if (jMenuWindow
== null) {
771 // Set jMenuWindow's attribute
773 jMenuWindow
= new JMenu();
774 jMenuWindow
.setText("Window");
775 jMenuWindow
.setMnemonic('W');
776 jMenuWindow
.setVisible(false);
779 // Add sub menu items
781 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
782 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
783 jMenuWindow
.addSeparator();
785 jMenuWindow
.add(getJMenuItemWindowTabView());
786 jMenuWindow
.addSeparator();
788 jMenuWindow
.add(getJMenuItemWindowSource());
789 jMenuWindow
.add(getJMenuItemWindowXML());
790 jMenuWindow
.addSeparator();
792 jMenuWindow
.add(getJMenuItemWindowPreferences());
798 This method initializes jPanelOperation
801 @return javax.swing.JPanel jPanelOperation
804 private JPanel
getJPanelOperation() {
805 if (jPanelOperation
== null) {
806 jPanelOperation
= new JPanel();
807 jPanelOperation
.setLayout(null);
808 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
809 jPanelOperation
.add(getJButtonOk(), null);
810 jPanelOperation
.add(getJButtonCancel(), null);
811 jPanelOperation
.setVisible(false);
813 return jPanelOperation
;
817 This method initializes jButtonOk
820 @return javax.swing.JButton jButtonOk
823 private JButton
getJButtonOk() {
824 if (jButtonOk
== null) {
825 jButtonOk
= new JButton();
826 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
827 jButtonOk
.setText("Ok");
828 jButtonOk
.setEnabled(false);
829 jButtonOk
.addActionListener(this);
835 This method initializes jButtonCancel
838 @return javax.swing.JButton jButtonCancel
841 private JButton
getJButtonCancel() {
842 if (jButtonCancel
== null) {
843 jButtonCancel
= new JButton();
844 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
845 jButtonCancel
.setText("Cancel");
846 jButtonCancel
.setEnabled(false);
847 jButtonCancel
.addActionListener(this);
848 jButtonCancel
.setVisible(false);
850 return jButtonCancel
;
854 This method initializes jMenuItemFileOpen
856 @return javax.swing.JMenuItem jMenuItemFileOpen
859 private JMenuItem
getJMenuItemFileOpen() {
860 if (jMenuItemFileOpen
== null) {
861 jMenuItemFileOpen
= new JMenuItem();
862 jMenuItemFileOpen
.setText("Open...");
863 jMenuItemFileOpen
.setMnemonic('O');
864 jMenuItemFileOpen
.addActionListener(this);
866 return jMenuItemFileOpen
;
870 This method initializes jMenuItemFileCloseAll
872 @return javax.swing.JMenuItem jMenuItemFileOpen
875 private JMenuItem
getJMenuItemFileCloseAll() {
876 if (jMenuItemFileCloseAll
== null) {
877 jMenuItemFileCloseAll
= new JMenuItem();
878 jMenuItemFileCloseAll
.setText("Close All");
879 jMenuItemFileCloseAll
.setEnabled(true);
880 jMenuItemFileCloseAll
.addActionListener(this);
882 return jMenuItemFileCloseAll
;
886 This method initializes jMenuItemFileSaveAll
888 @return javax.swing.JMenuItem jMenuItemFileSaveAll
891 private JMenuItem
getJMenuItemFileSaveAll() {
892 if (jMenuItemFileSaveAll
== null) {
893 jMenuItemFileSaveAll
= new JMenuItem();
894 jMenuItemFileSaveAll
.setText("Save All");
895 jMenuItemFileSaveAll
.setMnemonic('v');
896 jMenuItemFileSaveAll
.setEnabled(true);
897 jMenuItemFileSaveAll
.addActionListener(this);
899 return jMenuItemFileSaveAll
;
903 This method initializes jMenuItemFilePageSetup
905 @return javax.swing.JMenuItem
908 private JMenuItem
getJMenuItemFilePageSetup() {
909 if (jMenuItemFilePageSetup
== null) {
910 jMenuItemFilePageSetup
= new JMenuItem();
911 jMenuItemFilePageSetup
.setText("Page Setup");
912 jMenuItemFilePageSetup
.setMnemonic('u');
913 jMenuItemFilePageSetup
.setEnabled(false);
914 jMenuItemFilePageSetup
.addActionListener(this);
915 jMenuItemFilePageSetup
.setVisible(false);
917 return jMenuItemFilePageSetup
;
921 This method initializes jMenuItemFilePrint
923 @return javax.swing.JMenuItem
926 private JMenuItem
getJMenuItemFilePrint() {
927 if (jMenuItemFilePrint
== null) {
928 jMenuItemFilePrint
= new JMenuItem();
929 jMenuItemFilePrint
.setText("Print");
930 jMenuItemFilePrint
.setMnemonic('P');
931 jMenuItemFilePrint
.setEnabled(false);
932 jMenuItemFilePrint
.addActionListener(this);
933 jMenuItemFilePrint
.setVisible(false);
935 return jMenuItemFilePrint
;
939 This method initializes jMenuItemFileImport
941 @return javax.swing.JMenuItem
944 private JMenuItem
getJMenuItemFileImport() {
945 if (jMenuItemFileImport
== null) {
946 jMenuItemFileImport
= new JMenuItem();
947 jMenuItemFileImport
.setText("Import");
948 jMenuItemFileImport
.setMnemonic('I');
949 jMenuItemFileImport
.setEnabled(false);
950 jMenuItemFileImport
.addActionListener(this);
951 jMenuItemFileImport
.setVisible(false);
953 return jMenuItemFileImport
;
957 This method initializes jMenuItemFileProperties
959 @return javax.swing.JMenuItem
962 private JMenuItem
getJMenuItemFileProperties() {
963 if (jMenuItemFileProperties
== null) {
964 jMenuItemFileProperties
= new JMenuItem();
965 jMenuItemFileProperties
.setText("Properties");
966 jMenuItemFileProperties
.setMnemonic('t');
967 jMenuItemFileProperties
.setEnabled(false);
968 jMenuItemFileProperties
.addActionListener(this);
969 jMenuItemFileProperties
.setVisible(false);
971 return jMenuItemFileProperties
;
975 This method initializes jMenuFileRecentFiles
977 @return javax.swing.JMenu
980 private JMenu
getJMenuFileRecentFiles() {
981 if (jMenuFileRecentFiles
== null) {
982 jMenuFileRecentFiles
= new JMenu();
983 jMenuFileRecentFiles
.setText("Recent Files");
984 jMenuFileRecentFiles
.setMnemonic('F');
985 jMenuFileRecentFiles
.setEnabled(false);
986 jMenuFileRecentFiles
.addActionListener(this);
987 jMenuFileRecentFiles
.setVisible(false);
989 return jMenuFileRecentFiles
;
993 This method initializes jMenuItemEditUndo
995 @return javax.swing.JMenuItem
998 private JMenuItem
getJMenuItemEditUndo() {
999 if (jMenuItemEditUndo
== null) {
1000 jMenuItemEditUndo
= new JMenuItem();
1001 jMenuItemEditUndo
.setText("Undo");
1002 jMenuItemEditUndo
.setMnemonic('U');
1003 jMenuItemEditUndo
.setEnabled(false);
1004 jMenuItemEditUndo
.setVisible(false);
1005 jMenuItemEditUndo
.addActionListener(this);
1007 return jMenuItemEditUndo
;
1011 This method initializes jMenuItemEditRedo
1013 @return javax.swing.JMenuItem
1016 private JMenuItem
getJMenuItemEditRedo() {
1017 if (jMenuItemEditRedo
== null) {
1018 jMenuItemEditRedo
= new JMenuItem();
1019 jMenuItemEditRedo
.setText("Redo");
1020 jMenuItemEditRedo
.setMnemonic('R');
1021 jMenuItemEditRedo
.setEnabled(false);
1022 jMenuItemEditRedo
.setVisible(false);
1023 jMenuItemEditRedo
.addActionListener(this);
1025 return jMenuItemEditRedo
;
1029 This method initializes jMenuItemEditCut
1031 @return javax.swing.JMenuItem
1034 private JMenuItem
getJMenuItemEditCut() {
1035 if (jMenuItemEditCut
== null) {
1036 jMenuItemEditCut
= new JMenuItem();
1037 jMenuItemEditCut
.setText("Cut");
1038 jMenuItemEditCut
.setMnemonic('t');
1039 jMenuItemEditCut
.setEnabled(false);
1040 jMenuItemEditCut
.setVisible(false);
1041 jMenuItemEditCut
.addActionListener(this);
1043 return jMenuItemEditCut
;
1047 This method initializes jMenuItemEditCopy
1049 @return javax.swing.JMenuItem
1052 private JMenuItem
getJMenuItemEditCopy() {
1053 if (jMenuItemEditCopy
== null) {
1054 jMenuItemEditCopy
= new JMenuItem();
1055 jMenuItemEditCopy
.setText("Copy");
1056 jMenuItemEditCopy
.setMnemonic('C');
1057 jMenuItemEditCopy
.setEnabled(false);
1058 jMenuItemEditCopy
.setVisible(false);
1059 jMenuItemEditCopy
.addActionListener(this);
1061 return jMenuItemEditCopy
;
1065 This method initializes jMenuItemEditPaste
1067 return javax.swing.JMenuItem
1070 private JMenuItem
getJMenuItemEditPaste() {
1071 if (jMenuItemEditPaste
== null) {
1072 jMenuItemEditPaste
= new JMenuItem();
1073 jMenuItemEditPaste
.setText("Paste");
1074 jMenuItemEditPaste
.setMnemonic('P');
1075 jMenuItemEditPaste
.setEnabled(false);
1076 jMenuItemEditPaste
.setVisible(false);
1077 jMenuItemEditPaste
.addActionListener(this);
1079 return jMenuItemEditPaste
;
1083 This method initializes jMenuItem
1085 @return javax.swing.JMenuItem
1088 private JMenuItem
getJMenuItemEditSelectAll() {
1089 if (jMenuItemEditSelectAll
== null) {
1090 jMenuItemEditSelectAll
= new JMenuItem();
1091 jMenuItemEditSelectAll
.setText("Select All");
1092 jMenuItemEditSelectAll
.setMnemonic('A');
1093 jMenuItemEditSelectAll
.setEnabled(false);
1094 jMenuItemEditSelectAll
.setVisible(false);
1095 jMenuItemEditSelectAll
.addActionListener(this);
1097 return jMenuItemEditSelectAll
;
1101 This method initializes jMenuItemEditFindNext
1103 @return javax.swing.JMenuItem
1106 private JMenuItem
getJMenuItemEditFindNext() {
1107 if (jMenuItemEditFindNext
== null) {
1108 jMenuItemEditFindNext
= new JMenuItem();
1109 jMenuItemEditFindNext
.setText("Find Next");
1110 jMenuItemEditFindNext
.setMnemonic('n');
1111 jMenuItemEditFindNext
.setEnabled(false);
1112 jMenuItemEditFindNext
.setVisible(false);
1113 jMenuItemEditFindNext
.addActionListener(this);
1115 return jMenuItemEditFindNext
;
1119 This method initializes jMenuView
1121 @return javax.swing.JMenu
1124 private JMenu
getJMenuView() {
1125 if (jMenuView
== null) {
1127 // Set jMenuView's attributes
1129 jMenuView
= new JMenu();
1130 jMenuView
.setText("View");
1131 jMenuView
.setMnemonic('V');
1132 jMenuView
.setVisible(false);
1135 // Add sub menu items
1137 jMenuView
.add(getJMenuViewToolbars());
1138 jMenuView
.add(getJMenuItemViewAdvanced());
1139 jMenuView
.add(getJMenuItemViewStandard());
1140 jMenuView
.add(getJMenuItemViewXML());
1146 This method initializes jMenuViewToolbars
1148 @return javax.swing.JMenu
1151 private JMenu
getJMenuViewToolbars() {
1152 if (jMenuViewToolbars
== null) {
1153 jMenuViewToolbars
= new JMenu();
1154 jMenuViewToolbars
.setText("Toolbars");
1155 jMenuViewToolbars
.setMnemonic('T');
1157 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1158 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1159 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1161 return jMenuViewToolbars
;
1165 This method initializes jCheckBoxMenuItemViewToolbarsFile
1167 @return javax.swing.JCheckBoxMenuItem
1170 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1171 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1172 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1173 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1174 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1175 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1177 return jCheckBoxMenuItemViewToolbarsFile
;
1181 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1183 @return javax.swing.JCheckBoxMenuItem
1186 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1187 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1188 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1189 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1190 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1191 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1193 return jCheckBoxMenuItemViewToolbarsEdit
;
1197 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1199 @return javax.swing.JCheckBoxMenuItem
1202 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1203 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1204 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1205 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1206 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1207 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1209 return jCheckBoxMenuItemViewToolbarsWindow
;
1213 This method initializes jMenuItemStandard
1215 @return javax.swing.JMenuItem
1218 private JMenuItem
getJMenuItemViewStandard() {
1219 if (jMenuItemViewStandard
== null) {
1220 jMenuItemViewStandard
= new JMenuItem();
1221 jMenuItemViewStandard
.setText("Standard");
1222 jMenuItemViewStandard
.setMnemonic('S');
1223 jMenuItemViewStandard
.setEnabled(false);
1224 jMenuItemViewStandard
.addActionListener(this);
1226 return jMenuItemViewStandard
;
1230 This method initializes jMenuItemAdvanced
1232 @return javax.swing.JMenuItem
1235 private JMenuItem
getJMenuItemViewAdvanced() {
1236 if (jMenuItemViewAdvanced
== null) {
1237 jMenuItemViewAdvanced
= new JMenuItem();
1238 jMenuItemViewAdvanced
.setText("Advanced");
1239 jMenuItemViewAdvanced
.setMnemonic('A');
1240 jMenuItemViewAdvanced
.setEnabled(false);
1241 jMenuItemViewAdvanced
.addActionListener(this);
1243 return jMenuItemViewAdvanced
;
1247 This method initializes jMenuProject
1249 @return javax.swing.JMenu
1252 private JMenu
getJMenuProject() {
1253 if (jMenuProject
== null) {
1255 // Set jMenuProject's attributes
1257 jMenuProject
= new JMenu();
1258 jMenuProject
.setText("Project");
1259 jMenuProject
.setMnemonic('P');
1262 // Add sub menu items
1264 jMenuProject
.add(getJMenuItemProjectAdmin());
1266 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1267 jMenuProject
.addSeparator();
1269 jMenuProject
.add(getJMenuItemProjectCreateFar());
1270 jMenuProject
.add(getJMenuItemProjectInstallFar());
1271 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1272 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1275 return jMenuProject
;
1279 This method initializes jMenuItemProjectAdmin
1281 @return javax.swing.JMenuItem
1284 private JMenuItem
getJMenuItemProjectAdmin() {
1285 if (jMenuItemProjectAdmin
== null) {
1286 jMenuItemProjectAdmin
= new JMenuItem();
1287 jMenuItemProjectAdmin
.setText("Admin...");
1288 jMenuItemProjectAdmin
.setMnemonic('A');
1289 jMenuItemProjectAdmin
.setEnabled(false);
1290 jMenuItemProjectAdmin
.addActionListener(this);
1291 jMenuItemProjectAdmin
.setVisible(false);
1293 return jMenuItemProjectAdmin
;
1297 This method initializes jMenuItemProjectChangeWorkspace
1299 @return javax.swing.JMenuItem
1302 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1303 if (jMenuItemProjectChangeWorkspace
== null) {
1304 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1305 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1306 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1307 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1308 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1310 return jMenuItemProjectChangeWorkspace
;
1314 This method initializes jMenuProjectBuildPreferences
1316 @return javax.swing.JMenu
1319 private JMenuItem
getJMenuItemToolsBuildPreferences() {
1320 if (jMenuItemToolsBuildPreferences
== null) {
1321 jMenuItemToolsBuildPreferences
= new JMenuItem();
1322 jMenuItemToolsBuildPreferences
.setText("Build Preferences");
1323 jMenuItemToolsBuildPreferences
.setMnemonic('P');
1324 jMenuItemToolsBuildPreferences
.setEnabled(true);
1325 jMenuItemToolsBuildPreferences
.addActionListener(this);
1327 return jMenuItemToolsBuildPreferences
;
1331 This method initializes jMenuItemToolsToolChainConfiguration
1333 @return javax.swing.JMenuItem
1336 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1337 if (jMenuItemToolsToolChainConfiguration
== null) {
1338 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1339 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1340 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1341 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1343 return jMenuItemToolsToolChainConfiguration
;
1347 This method initializes jMenuItemToolsClone
1349 @return javax.swing.JMenuItem
1352 private JMenuItem
getJMenuItemToolsClone() {
1353 if (jMenuItemToolsClone
== null) {
1354 jMenuItemToolsClone
= new JMenuItem();
1355 jMenuItemToolsClone
.setText("Clone...");
1356 jMenuItemToolsClone
.setMnemonic('l');
1357 jMenuItemToolsClone
.setEnabled(true);
1358 jMenuItemToolsClone
.addActionListener(this);
1360 return jMenuItemToolsClone
;
1364 This method initializes jMenuItemToolsCodeScan
1366 @return javax.swing.JMenuItem
1369 private JMenuItem
getJMenuItemToolsCodeScan() {
1370 if (jMenuItemToolsCodeScan
== null) {
1371 jMenuItemToolsCodeScan
= new JMenuItem();
1372 jMenuItemToolsCodeScan
.setText("Code Scan...");
1373 jMenuItemToolsCodeScan
.setMnemonic('S');
1374 jMenuItemToolsCodeScan
.setEnabled(false);
1375 jMenuItemToolsCodeScan
.addActionListener(this);
1376 jMenuItemToolsCodeScan
.setVisible(false);
1378 return jMenuItemToolsCodeScan
;
1382 This method initializes jMenuItemWindowSplitVertical
1384 @return javax.swing.JMenuItem
1387 private JMenuItem
getJMenuItemWindowDisplaySide() {
1388 if (jMenuItemWindowDisplaySide
== null) {
1389 jMenuItemWindowDisplaySide
= new JMenuItem();
1390 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1391 jMenuItemWindowDisplaySide
.setMnemonic('S');
1392 jMenuItemWindowDisplaySide
.setEnabled(false);
1393 jMenuItemWindowDisplaySide
.addActionListener(this);
1395 return jMenuItemWindowDisplaySide
;
1399 This method initializes jMenuItemWindowSplitHorizontal
1401 @return javax.swing.JMenuItem
1404 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1405 if (jMenuItemWindowDisplayTopBottom
== null) {
1406 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1407 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1408 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1409 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1410 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1412 return jMenuItemWindowDisplayTopBottom
;
1416 This method initializes jMenuItemViewXML
1418 @return javax.swing.JMenuItem
1421 private JMenuItem
getJMenuItemViewXML() {
1422 if (jMenuItemViewXML
== null) {
1423 jMenuItemViewXML
= new JMenuItem();
1424 jMenuItemViewXML
.setText("XML");
1425 jMenuItemViewXML
.setMnemonic('X');
1426 jMenuItemViewXML
.setEnabled(false);
1427 jMenuItemViewXML
.addActionListener(this);
1429 return jMenuItemViewXML
;
1433 This method initializes jMenuItemWindowTabView
1435 @return javax.swing.JMenuItem
1438 private JMenuItem
getJMenuItemWindowTabView() {
1439 if (jMenuItemWindowTabView
== null) {
1440 jMenuItemWindowTabView
= new JMenuItem();
1441 jMenuItemWindowTabView
.setText("Tab View");
1442 jMenuItemWindowTabView
.setMnemonic('T');
1443 jMenuItemWindowTabView
.setEnabled(false);
1444 jMenuItemWindowTabView
.addActionListener(this);
1446 return jMenuItemWindowTabView
;
1450 This method initializes jMenuItemWindowSource
1452 @return javax.swing.JMenuItem
1455 private JMenuItem
getJMenuItemWindowSource() {
1456 if (jMenuItemWindowSource
== null) {
1457 jMenuItemWindowSource
= new JMenuItem();
1458 jMenuItemWindowSource
.setText("Source");
1459 jMenuItemWindowSource
.setMnemonic('S');
1460 jMenuItemWindowSource
.setEnabled(false);
1461 jMenuItemWindowSource
.addActionListener(this);
1463 return jMenuItemWindowSource
;
1467 This method initializes jMenuItemWindowXML
1469 @return javax.swing.JMenuItem
1472 private JMenuItem
getJMenuItemWindowXML() {
1473 if (jMenuItemWindowXML
== null) {
1474 jMenuItemWindowXML
= new JMenuItem();
1475 jMenuItemWindowXML
.setText("XML");
1476 jMenuItemWindowXML
.setMnemonic('X');
1477 jMenuItemWindowXML
.setEnabled(false);
1478 jMenuItemWindowXML
.addActionListener(this);
1480 return jMenuItemWindowXML
;
1484 This method initializes jMenuItemWindowPreferences
1486 @return javax.swing.JMenuItem
1489 private JMenuItem
getJMenuItemWindowPreferences() {
1490 if (jMenuItemWindowPreferences
== null) {
1491 jMenuItemWindowPreferences
= new JMenuItem();
1492 jMenuItemWindowPreferences
.setText("Preferences");
1493 jMenuItemWindowPreferences
.setMnemonic('P');
1494 jMenuItemWindowPreferences
.setEnabled(false);
1495 jMenuItemWindowPreferences
.addActionListener(this);
1497 return jMenuItemWindowPreferences
;
1501 This method initializes jMenuItemHelpContents
1503 @return javax.swing.JMenuItem
1506 private JMenuItem
getJMenuItemHelpContents() {
1507 if (jMenuItemHelpContents
== null) {
1508 jMenuItemHelpContents
= new JMenuItem();
1509 jMenuItemHelpContents
.setText("Contents");
1510 jMenuItemHelpContents
.setMnemonic('C');
1511 jMenuItemHelpContents
.setEnabled(false);
1512 jMenuItemHelpContents
.addActionListener(this);
1513 jMenuItemHelpContents
.setVisible(false);
1515 return jMenuItemHelpContents
;
1519 This method initializes jMenuItemHelpIndex
1521 @return javax.swing.JMenuItem
1524 private JMenuItem
getJMenuItemHelpIndex() {
1525 if (jMenuItemHelpIndex
== null) {
1526 jMenuItemHelpIndex
= new JMenuItem();
1527 jMenuItemHelpIndex
.setText("Index");
1528 jMenuItemHelpIndex
.setMnemonic('I');
1529 jMenuItemHelpIndex
.setEnabled(false);
1530 jMenuItemHelpIndex
.addActionListener(this);
1531 jMenuItemHelpIndex
.setVisible(false);
1533 return jMenuItemHelpIndex
;
1537 This method initializes jMenuItemHelpSearch
1539 @return javax.swing.JMenuItem
1542 private JMenuItem
getJMenuItemHelpSearch() {
1543 if (jMenuItemHelpSearch
== null) {
1544 jMenuItemHelpSearch
= new JMenuItem();
1545 jMenuItemHelpSearch
.setText("Search");
1546 jMenuItemHelpSearch
.setMnemonic('S');
1547 jMenuItemHelpSearch
.setEnabled(false);
1548 jMenuItemHelpSearch
.addActionListener(this);
1549 jMenuItemHelpSearch
.setVisible(false);
1551 return jMenuItemHelpSearch
;
1555 * This method initializes jMenuItemToolsInstallPackage
1557 * @return javax.swing.JMenuItem
1559 private JMenuItem
getJMenuItemProjectInstallFar() {
1560 if (jMenuItemProjectInstallFar
== null) {
1561 jMenuItemProjectInstallFar
= new JMenuItem();
1562 jMenuItemProjectInstallFar
.setText("Install FAR");
1563 jMenuItemProjectInstallFar
.setMnemonic('I');
1564 jMenuItemProjectInstallFar
.setEnabled(true);
1565 jMenuItemProjectInstallFar
.addActionListener(this);
1567 return jMenuItemProjectInstallFar
;
1571 * This method initializes jMenuItemToolsUpdatePackage
1573 * @return javax.swing.JMenuItem
1575 private JMenuItem
getJMenuItemProjectUpdateFar() {
1576 if (jMenuItemProjectUpdateFar
== null) {
1577 jMenuItemProjectUpdateFar
= new JMenuItem();
1578 jMenuItemProjectUpdateFar
.setText("Update FAR");
1579 jMenuItemProjectUpdateFar
.setMnemonic('U');
1580 jMenuItemProjectUpdateFar
.setEnabled(true);
1581 jMenuItemProjectUpdateFar
.addActionListener(this);
1582 jMenuItemProjectUpdateFar
.setVisible(true);
1584 return jMenuItemProjectUpdateFar
;
1588 * This method initializes jMenuItemRemovePackage
1590 * @return javax.swing.JMenuItem
1592 private JMenuItem
getJMenuItemProjectRemoveFar() {
1593 if (jMenuItemProjectRemoveFar
== null) {
1594 jMenuItemProjectRemoveFar
= new JMenuItem();
1595 jMenuItemProjectRemoveFar
.setText("Remove FAR");
1596 jMenuItemProjectRemoveFar
.setMnemonic('R');
1597 jMenuItemProjectRemoveFar
.setEnabled(true);
1598 jMenuItemProjectRemoveFar
.addActionListener(this);
1600 return jMenuItemProjectRemoveFar
;
1604 * This method initializes jMenuItemProjectCreateFar
1606 * @return javax.swing.JMenuItem
1608 private JMenuItem
getJMenuItemProjectCreateFar() {
1609 if (jMenuItemProjectCreateFar
== null) {
1610 jMenuItemProjectCreateFar
= new JMenuItem();
1611 jMenuItemProjectCreateFar
.setText("Create FAR");
1612 jMenuItemProjectCreateFar
.setMnemonic('C');
1613 jMenuItemProjectCreateFar
.addActionListener(this);
1615 return jMenuItemProjectCreateFar
;
1619 * This method initializes jMenuEditFind
1621 * @return javax.swing.JMenu
1623 private JMenu
getJMenuEditFind() {
1624 if (jMenuEditFind
== null) {
1625 jMenuEditFind
= new JMenu();
1626 jMenuEditFind
.setText("Find");
1627 jMenuEditFind
.setMnemonic('F');
1629 jMenuEditFind
.add(getJMenuItemEditFindPpi());
1630 jMenuEditFind
.add(getJMenuItemEditFindProtocol());
1631 jMenuEditFind
.add(getJMenuItemEditFindGuid());
1632 jMenuEditFind
.add(getJMenuItemEditFindPcd());
1633 jMenuEditFind
.add(getJMenuItemEditFindLibraryClass());
1634 jMenuEditFind
.add(getJMenuItemEditFindLibraryInstance());
1636 return jMenuEditFind
;
1640 * This method initializes jMenuItemEditFindPcd
1642 * @return javax.swing.JMenuItem
1644 private JMenuItem
getJMenuItemEditFindPcd() {
1645 if (jMenuItemEditFindPcd
== null) {
1646 jMenuItemEditFindPcd
= new JMenuItem();
1647 jMenuItemEditFindPcd
.setText("All PCD entries");
1648 jMenuItemEditFindPcd
.setMnemonic('P');
1649 jMenuItemEditFindPcd
.addActionListener(this);
1651 return jMenuItemEditFindPcd
;
1655 * This method initializes jMenuItemEditFindLibraryClass
1657 * @return javax.swing.JMenuItem
1659 private JMenuItem
getJMenuItemEditFindLibraryClass() {
1660 if (jMenuItemEditFindLibraryClass
== null) {
1661 jMenuItemEditFindLibraryClass
= new JMenuItem();
1662 jMenuItemEditFindLibraryClass
.setText("All Library Classes");
1663 jMenuItemEditFindLibraryClass
.setMnemonic('C');
1664 jMenuItemEditFindLibraryClass
.addActionListener(this);
1666 return jMenuItemEditFindLibraryClass
;
1670 * This method initializes jMenuItemEditFindPpi
1672 * @return javax.swing.JMenuItem
1674 private JMenuItem
getJMenuItemEditFindPpi() {
1675 if (jMenuItemEditFindPpi
== null) {
1676 jMenuItemEditFindPpi
= new JMenuItem();
1677 jMenuItemEditFindPpi
.setText("All PPIs");
1678 jMenuItemEditFindPpi
.setMnemonic('I');
1679 jMenuItemEditFindPpi
.addActionListener(this);
1681 return jMenuItemEditFindPpi
;
1685 * This method initializes jMenuItemEditFindProtocol
1687 * @return javax.swing.JMenuItem
1689 private JMenuItem
getJMenuItemEditFindProtocol() {
1690 if (jMenuItemEditFindProtocol
== null) {
1691 jMenuItemEditFindProtocol
= new JMenuItem();
1692 jMenuItemEditFindProtocol
.setText("All Protocols");
1693 jMenuItemEditFindProtocol
.setMnemonic('r');
1694 jMenuItemEditFindProtocol
.addActionListener(this);
1696 return jMenuItemEditFindProtocol
;
1700 * This method initializes jMenuItemEditFindGuid
1702 * @return javax.swing.JMenuItem
1704 private JMenuItem
getJMenuItemEditFindGuid() {
1705 if (jMenuItemEditFindGuid
== null) {
1706 jMenuItemEditFindGuid
= new JMenuItem();
1707 jMenuItemEditFindGuid
.setText("All GUIDs");
1708 jMenuItemEditFindGuid
.setMnemonic('G');
1709 jMenuItemEditFindGuid
.addActionListener(this);
1711 return jMenuItemEditFindGuid
;
1715 * This method initializes jMenuItemEditFindLibraryInstance
1717 * @return javax.swing.JMenuItem
1719 private JMenuItem
getJMenuItemEditFindLibraryInstance() {
1720 if (jMenuItemEditFindLibraryInstance
== null) {
1721 jMenuItemEditFindLibraryInstance
= new JMenuItem();
1722 jMenuItemEditFindLibraryInstance
.setText("All Library Instances");
1723 jMenuItemEditFindLibraryInstance
.setMnemonic('n');
1724 jMenuItemEditFindLibraryInstance
.addActionListener(this);
1725 jMenuItemEditFindLibraryInstance
.setVisible(false);
1727 return jMenuItemEditFindLibraryInstance
;
1731 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1733 * Main class, start the GUI
1736 public static void main(String
[] args
) {
1737 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance();
1738 module
.setVisible(true);
1742 This is the default constructor
1745 public FrameworkWizardUI() {
1751 This method initializes this
1755 private void init() {
1757 // Set current workspace and check
1758 // Check if exists WORKSPACE
1761 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1762 if (!Workspace
.checkCurrentWorkspace()) {
1763 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1764 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1777 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1778 this.setResizable(true);
1779 this.setJMenuBar(getjJMenuBar());
1780 this.setContentPane(getJContentPane());
1781 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1782 + Workspace
.getCurrentWorkspace() + "]");
1783 this.setExitType(1);
1788 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1792 This method initializes jContentPane
1794 @return javax.swing.JPanel jContentPane
1797 private JPanel
getJContentPane() {
1798 if (jContentPane
== null) {
1799 jContentPane
= new JPanel();
1800 jContentPane
.setLayout(null);
1801 jContentPane
.add(getJPanelOperation(), null);
1802 jContentPane
.add(getJSplitPane(), null);
1804 return jContentPane
;
1808 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1810 * Override actionPerformed to listen all actions
1813 public void actionPerformed(ActionEvent arg0
) {
1815 // Operations of Menu
1817 if (arg0
.getSource() == this.jMenuItemFileNew
) {
1821 if (arg0
.getSource() == this.jMenuItemFileOpen
) {
1825 if (arg0
.getSource() == this.jMenuItemFileClose
) {
1829 if (arg0
.getSource() == this.jMenuItemFileCloseAll
) {
1833 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1837 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1841 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1845 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1849 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1853 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1854 this.findProtocol();
1857 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1861 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1865 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1866 this.findLibraryClass();
1869 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1870 this.findLibraryInstance();
1873 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1874 configBuildPreferences();
1877 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1878 this.changeWorkspace();
1881 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1885 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1889 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1893 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1897 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1901 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1902 this.setupToolChainConfiguration();
1905 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
1906 About a
= new About(this, true);
1907 int result
= a
.showDialog();
1908 if (result
== DataType
.RETURN_TYPE_OK
) {
1915 Create an empty tree if no file is open
1918 private void makeEmptyTree() {
1922 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1925 // Make Module Description
1927 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE
, -1);
1930 // First add package
1932 if (GlobalData
.vPackageList
.size() > 0) {
1933 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1934 IDefaultMutableTreeNode dmtnModulePackage
= null;
1935 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
1936 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
1938 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
1939 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
1940 GlobalData
.vPackageList
.elementAt(index
));
1941 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
1942 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
1943 false, GlobalData
.vPackageList
.elementAt(index
));
1944 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
1945 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
1946 false, GlobalData
.vPackageList
.elementAt(index
));
1948 // And then add each module in its package
1950 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
1951 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
1952 if (vModule
.get(indexJ
).isLibrary()) {
1953 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1954 IDefaultMutableTreeNode
.MODULE
, false,
1955 vModule
.get(indexJ
)));
1957 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1958 IDefaultMutableTreeNode
.MODULE
, false,
1959 vModule
.get(indexJ
)));
1962 if (dmtnModulePackageModule
.getChildCount() > 0) {
1963 dmtnModulePackage
.add(dmtnModulePackageModule
);
1965 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
1966 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
1969 dmtnModuleDescription
.add(dmtnModulePackage
);
1974 // Make Package Description
1976 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE
, -1);
1977 if (GlobalData
.vPackageList
.size() > 0) {
1978 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
1979 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
1981 IDefaultMutableTreeNode
.PACKAGE
, false,
1982 GlobalData
.vPackageList
.elementAt(index
)));
1987 // Make Platform Description
1989 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms", IDefaultMutableTreeNode
.PLATFORM
, -1);
1990 if (GlobalData
.vPlatformList
.size() > 0) {
1991 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
1992 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
1994 IDefaultMutableTreeNode
.PLATFORM
, false,
1995 GlobalData
.vPlatformList
.elementAt(index
)));
2000 // Add sub nodes to root node
2002 dmtnRoot
.add(dmtnModuleDescription
);
2003 dmtnRoot
.add(dmtnPackageDescription
);
2004 dmtnRoot
.add(dmtnPlatformDescription
);
2005 iTree
= new ITree(dmtnRoot
);
2006 iTree
.addMouseListener(this);
2007 jScrollPaneTree
.setViewportView(iTree
);
2011 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2013 * Override windowClosing to popup warning message to confirm quit
2016 public void windowClosing(WindowEvent arg0
) {
2021 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2023 * Override mouseClicked to check if need display popup menu
2026 public void mouseClicked(MouseEvent arg0
) {
2027 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
2029 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
2032 // When double click
2034 if (arg0
.getClickCount() == 2) {
2035 doubleClickModuleTreeNode();
2039 public void mouseEntered(MouseEvent arg0
) {
2040 // TODO Auto-generated method stub
2043 public void mouseExited(MouseEvent arg0
) {
2044 // TODO Auto-generated method stub
2047 public void mousePressed(MouseEvent arg0
) {
2048 // TODO Auto-generated method stub
2051 public void mouseReleased(MouseEvent arg0
) {
2052 // TODO Auto-generated method stub
2056 Remove all Internal Frame of Module Desktop Pane
2059 private void cleanDesktopPaneModule() {
2060 if (jDesktopPaneModule
!= null) {
2061 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2062 for (int index
= 0; index
< iif
.length
; index
++) {
2063 iif
[index
].dispose();
2069 Remove all Internal Frame of package Desktop Pane
2072 private void cleanDesktopPanePackage() {
2073 if (jDesktopPanePlatform
!= null) {
2074 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2075 for (int index
= 0; index
< iif
.length
; index
++) {
2076 iif
[index
].dispose();
2082 Remove all Internal Frame of platform Desktop Pane
2085 private void cleanDesktopPanePlatform() {
2086 if (jDesktopPanePlatform
!= null) {
2087 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2088 for (int index
= 0; index
< iif
.length
; index
++) {
2089 iif
[index
].dispose();
2095 Remove all Internal Frame of all Desktop Panes
2098 private void cleanDesktopPane() {
2099 cleanDesktopPaneModule();
2100 cleanDesktopPanePackage();
2101 cleanDesktopPanePlatform();
2105 Set file filter as input ext
2111 private int getNewFilePath(String ext
) {
2112 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2113 fc
.setAcceptAllFileFilterUsed(false);
2114 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2115 return fc
.showSaveDialog(new JPanel());
2119 Add a module to tree
2121 @param mid The module node to be added
2124 private void addModuleToTree(ModuleIdentification mid
) {
2126 // Add new MsaHeader node to the tree
2128 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
, true,
2131 // First find the module belongs to which package
2133 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2134 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2136 // To check if has module node or library node
2138 IDefaultMutableTreeNode parentModuleNode
= null;
2139 IDefaultMutableTreeNode parentLibraryNode
= null;
2140 boolean hasModule
= false;
2141 boolean hasLibrary
= false;
2142 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2143 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2144 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2146 parentLibraryNode
= iNode
;
2148 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2150 parentModuleNode
= iNode
;
2157 if (!mid
.isLibrary()) {
2159 // Create parent node first if has no parent node
2162 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2163 false, mid
.getPackageId());
2164 iTree
.addNode(packageNode
, parentModuleNode
);
2167 iTree
.addNode(parentModuleNode
, node
);
2173 if (mid
.isLibrary()) {
2175 // Create parent node first if has no parent node
2178 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2179 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2180 mid
.getPackageId());
2181 iTree
.addNode(packageNode
, parentLibraryNode
);
2184 iTree
.addNode(parentLibraryNode
, node
);
2191 @param path input file path
2194 private void openModule(String path
) {
2195 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2198 // The module is not in existing packages
2200 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2205 // Make the node selected
2207 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2208 IDefaultMutableTreeNode
.MODULE
)));
2210 // Update opening Module list information
2212 if (!GlobalData
.openingModuleList
.getModuleOpen(id
)) {
2214 // Insert sub node of module
2216 insertModuleTreeNode(id
);
2217 iTree
.getSelectNode().setOpening(true);
2220 // Update opening module list
2222 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2223 GlobalData
.openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2226 // Select msa header node and show it in editor panel
2228 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2229 IDefaultMutableTreeNode
.MSA_HEADER
)));
2230 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2231 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2237 @param path input file path
2240 private void openPackage(String path
) {
2241 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2244 // The package is not in current workspace
2246 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2251 // Make the node selected
2253 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2254 IDefaultMutableTreeNode
.PACKAGE
)));
2256 // Update opening package list information
2258 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2260 // Insert sub node of module
2262 insertPackageTreeNode(id
);
2263 iTree
.getSelectNode().setOpening(true);
2266 // Update opening module list
2268 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2269 GlobalData
.openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2272 // Show spd header in editor panel
2274 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2275 IDefaultMutableTreeNode
.SPD_HEADER
)));
2276 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2277 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2283 @param path input file path
2286 private void openPlatform(String path
) {
2287 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2290 // The platform is not in current workspace
2292 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2297 // Make the node selected
2299 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2300 IDefaultMutableTreeNode
.PLATFORM
)));
2302 // Update opening package list information
2304 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2306 // Insert sub node of module
2308 insertPlatformTreeNode(id
);
2309 iTree
.getSelectNode().setOpening(true);
2312 // Update opening module list
2314 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2315 GlobalData
.openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2318 // Show fpd header in editor panel
2320 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2321 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2322 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2323 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2324 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2331 private void saveModule(int index
) {
2332 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2334 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2339 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2340 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2341 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2342 } catch (Exception e
) {
2343 Log
.wrn("Save Module", e
.getMessage());
2344 Log
.err("Save Module", e
.getMessage());
2352 private void savePackage(int index
) {
2353 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2355 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2360 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2361 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2362 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2363 } catch (Exception e
) {
2364 Log
.wrn("Save Package", e
.getMessage());
2365 Log
.err("Save Package", e
.getMessage());
2373 private void savePlatform(int index
) {
2374 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2376 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2381 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2382 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2383 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2384 } catch (Exception e
) {
2385 Log
.wrn("Save Package", e
.getMessage());
2386 Log
.err("Save Package", e
.getMessage());
2390 public void componentResized(ComponentEvent arg0
) {
2391 if (this.jSplitPane
!= null) {
2392 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2393 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2394 this.jSplitPane
.validate();
2395 resizeDesktopPanel();
2400 Resize JDesktopPanel
2403 private void resizeDesktopPanel() {
2404 resizeDesktopPanel(this.jDesktopPaneModule
);
2405 resizeDesktopPanel(this.jDesktopPanePackage
);
2406 resizeDesktopPanel(this.jDesktopPanePlatform
);
2410 Resize JDesktopPanel
2413 private void resizeDesktopPanel(JDesktopPane jdk
) {
2414 JInternalFrame
[] iif
= jdk
.getAllFrames();
2415 for (int index
= 0; index
< iif
.length
; index
++) {
2416 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2420 private void insertModuleTreeNode(Identification id
) {
2421 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
));
2422 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2423 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2424 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2425 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2426 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2427 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2428 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2429 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2430 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2431 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2432 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2433 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2434 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2435 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2436 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2438 .addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2439 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2442 private void insertPackageTreeNode(Identification id
) {
2443 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
));
2444 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2445 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2446 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2447 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2449 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2451 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2452 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2453 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2455 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2459 private void insertPlatformTreeNode(Identification id
) {
2460 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2462 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2463 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2464 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2465 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2467 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2468 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2469 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2473 Operate when double click a tree node
2476 private void doubleClickModuleTreeNode() {
2477 Identification id
= null;
2478 int intCategory
= -1;
2482 id
= iTree
.getSelectNode().getId();
2483 intCategory
= iTree
.getSelectCategory();
2486 // If the node is not opened yet
2487 // Insert top level elements first
2489 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2491 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2492 path
= iTree
.getSelectNode().getId().getPath();
2494 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2495 path
= iTree
.getSelectNode().getId().getPath();
2500 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2501 path
= iTree
.getSelectNode().getId().getPath();
2505 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2506 path
= iTree
.getSelectNode().getId().getPath();
2512 // Show editor panel
2514 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2515 showModuleElement(intCategory
,
2516 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2517 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2518 .findIndexOfListById(new ModuleIdentification(
2521 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2522 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2523 showPackageElement(intCategory
,
2524 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2525 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2526 .findIndexOfListById(new PackageIdentification(
2529 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2530 showPlatformElement(
2532 GlobalData
.openingPlatformList
2533 .getOpeningPlatformById(new PlatformIdentification(id
)));
2534 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2535 .findIndexOfListById(new PlatformIdentification(
2538 } catch (RuntimeException e
) {
2539 Log
.err("double click category: " + intCategory
);
2540 Log
.err("double click id path: " + id
);
2541 Log
.err("double click exception: " + e
.getMessage());
2546 Show content of editor panel via selected element
2552 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2553 this.cleanDesktopPanePlatform();
2555 switch (elementType
) {
2556 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2557 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2558 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2560 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2561 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2562 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2564 case IDefaultMutableTreeNode
.FPD_FLASH
:
2565 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2566 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2568 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2569 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2570 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2572 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2573 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2574 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2576 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2577 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2578 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2581 this.jTabbedPaneEditor
.setSelectedIndex(2);
2582 resizeDesktopPanel();
2586 Show content of editor panel via selected element
2592 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2593 this.cleanDesktopPanePackage();
2594 Tools
.dirForNewSpd
= spd
.getId().getPath();
2595 switch (elementType
) {
2596 case IDefaultMutableTreeNode
.SPD_HEADER
:
2597 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2598 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2600 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2601 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2602 getJDesktopPanePackage().add(frmSlcd
, 1);
2604 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2605 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2606 getJDesktopPanePackage().add(frmSmf
, 1);
2608 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2609 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2610 getJDesktopPanePackage().add(frmSph
, 1);
2612 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2613 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2614 getJDesktopPanePackage().add(frmSgd
, 1);
2616 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2617 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2618 getJDesktopPanePackage().add(frmSprod
, 1);
2620 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2621 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2622 getJDesktopPanePackage().add(frmSppid
, 1);
2624 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2625 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2626 getJDesktopPanePackage().add(frmSpcdd
, 1);
2629 this.jTabbedPaneEditor
.setSelectedIndex(1);
2630 resizeDesktopPanel();
2634 Show content of editor panel via selected element
2640 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2641 this.cleanDesktopPaneModule();
2642 switch (elementType
) {
2643 case IDefaultMutableTreeNode
.MSA_HEADER
:
2644 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2645 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2647 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2648 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2649 getJDesktopPaneModule().add(frmMlcd
, 1);
2651 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2652 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2653 getJDesktopPaneModule().add(frmMpd
, 1);
2655 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2656 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2657 getJDesktopPaneModule().add(frmMsf
, 1);
2659 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2660 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2661 getJDesktopPaneModule().add(frmMp
, 1);
2663 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2664 ModuleEvents frmMe
= new ModuleEvents(msa
);
2665 getJDesktopPaneModule().add(frmMe
, 1);
2667 case IDefaultMutableTreeNode
.MSA_HOBS
:
2668 ModuleHobs frmMh
= new ModuleHobs(msa
);
2669 getJDesktopPaneModule().add(frmMh
, 1);
2671 case IDefaultMutableTreeNode
.MSA_PPIS
:
2672 ModulePpis frmMpp
= new ModulePpis(msa
);
2673 getJDesktopPaneModule().add(frmMpp
, 1);
2675 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2676 ModuleVariables frmMv
= new ModuleVariables(msa
);
2677 getJDesktopPaneModule().add(frmMv
, 1);
2679 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2680 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2681 getJDesktopPaneModule().add(frmMbm
, 1);
2683 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2684 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2685 getJDesktopPaneModule().add(frmMst
, 1);
2687 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2688 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2689 getJDesktopPaneModule().add(frmMdh
, 1);
2691 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2692 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2693 getJDesktopPaneModule().add(frmMf
, 1);
2695 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2696 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2697 getJDesktopPaneModule().add(frmGuid
, 1);
2699 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2700 ModuleExterns frmMex
= new ModuleExterns(msa
);
2701 getJDesktopPaneModule().add(frmMex
, 1);
2703 case IDefaultMutableTreeNode
.MSA_PCDS
:
2704 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2705 getJDesktopPaneModule().add(frmPcd
, 1);
2708 this.jTabbedPaneEditor
.setSelectedIndex(0);
2709 resizeDesktopPanel();
2713 // Define operations of menu
2719 private void fileNew() {
2722 // Selece new file type
2724 NewFileChooser nfc
= new NewFileChooser(this, true);
2725 result
= nfc
.showDialog();
2727 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2730 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2734 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2735 result
= smb
.showDialog();
2737 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2741 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2742 ModuleIdentification mid
= smb
.getMid();
2745 // Update package of workspace first
2747 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2748 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2749 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2752 wt
.addModuleToPackage(mid
, psa
);
2753 } catch (IOException e
) {
2754 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2755 Log
.err("Update MsaFiles in Package", e
.getMessage());
2757 } catch (XmlException e
) {
2758 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2759 Log
.err("Update MsaFiles in Package", e
.getMessage());
2761 } catch (Exception e
) {
2762 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2763 Log
.err("Update MsaFiles in Package", e
.getMessage());
2768 // Update Global Data
2770 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2771 GlobalData
.vModuleList
.addElement(mid
);
2774 // Create new node on the tree
2776 addModuleToTree(mid
);
2781 this.openModule(mid
.getPath());
2784 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2788 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2789 result
= smb
.showDialog();
2791 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2795 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2796 PackageIdentification pid
= smb
.getPid();
2799 wt
.addPackageToDatabase(smb
.getPid());
2800 } catch (Exception e
) {
2801 Log
.err("addPackageToDatabase", e
.getMessage());
2805 // Update Global Data
2807 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
2808 GlobalData
.vPackageList
.addElement(pid
);
2811 // Add to Module Description node
2813 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
2814 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2817 iTree
.addNode(dmtnModuleDescription
, node
);
2820 // Add new SpdHeader node to the tree
2822 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
);
2823 iTree
.addNode(dmtnPackageDescription
, node
);
2825 this.openPackage(pid
.getPath());
2828 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2830 // To new a platform
2832 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2833 result
= smb
.showDialog();
2835 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2839 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2840 PlatformIdentification fid
= smb
.getFid();
2843 wt
.addPlatformToDatabase(fid
);
2844 } catch (Exception e
) {
2845 Log
.err("addPlatformToDatabase", e
.getMessage());
2849 // Update global data
2851 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
2852 GlobalData
.vPlatformList
.addElement(fid
);
2854 // Add new SpdHeader node to the tree
2856 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
2857 IDefaultMutableTreeNode
.PLATFORM
, true,
2859 iTree
.addNode(dmtnPlatformDescription
, node
);
2860 this.openPlatform(fid
.getPath());
2870 private void open() {
2871 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2872 fc
.setAcceptAllFileFilterUsed(false);
2873 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2874 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2875 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2876 fc
.addChoosableFileFilter(iffM
);
2877 fc
.addChoosableFileFilter(iffP
);
2878 fc
.addChoosableFileFilter(iffF
);
2879 fc
.setFileFilter(iffM
);
2881 int result
= fc
.showOpenDialog(new JPanel());
2883 if (result
== JFileChooser
.APPROVE_OPTION
) {
2884 String path
= fc
.getSelectedFile().getPath();
2885 String match
= path
.substring(path
.length() - 4);
2886 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2888 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2890 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2900 private void close() {
2901 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2903 // Current is module
2906 if (this.currentOpeningModuleIndex
> -1) {
2907 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2908 int result
= showSaveDialog();
2909 if (result
== JOptionPane
.YES_OPTION
) {
2912 if (result
== JOptionPane
.NO_OPTION
) {
2915 if (result
== JOptionPane
.CANCEL_OPTION
) {
2920 .removeNodeChildrenByPath(GlobalData
.openingModuleList
2921 .getTreePathByIndex(currentOpeningModuleIndex
));
2922 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
2923 this.cleanDesktopPaneModule();
2924 this.currentOpeningModuleIndex
= -1;
2928 // Current is package
2931 if (this.currentOpeningPackageIndex
> -1) {
2932 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2933 int result
= showSaveDialog();
2934 if (result
== JOptionPane
.YES_OPTION
) {
2937 if (result
== JOptionPane
.NO_OPTION
) {
2940 if (result
== JOptionPane
.CANCEL_OPTION
) {
2945 .removeNodeChildrenByPath(GlobalData
.openingPackageList
2946 .getTreePathByIndex(currentOpeningPackageIndex
));
2947 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
2948 this.cleanDesktopPanePackage();
2949 this.currentOpeningPackageIndex
= -1;
2953 // Current is platform
2956 if (this.currentOpeningPlatformIndex
> -1) {
2957 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
2958 int result
= showSaveDialog();
2959 if (result
== JOptionPane
.YES_OPTION
) {
2962 if (result
== JOptionPane
.NO_OPTION
) {
2965 if (result
== JOptionPane
.CANCEL_OPTION
) {
2970 .removeNodeChildrenByPath(GlobalData
.openingPlatformList
2971 .getTreePathByIndex(currentOpeningPlatformIndex
));
2972 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
2973 this.cleanDesktopPanePlatform();
2974 this.currentOpeningPlatformIndex
= -1;
2981 Close all opening files and clean all showing internal frame
2984 private void closeAll() {
2986 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
2987 || !GlobalData
.openingPlatformList
.isSaved()) {
2988 result
= showSaveDialog();
2990 if (result
== JOptionPane
.YES_OPTION
) {
2993 if (result
== JOptionPane
.NO_OPTION
) {
2998 if (result
== JOptionPane
.CANCEL_OPTION
) {
3001 this.cleanDesktopPane();
3002 GlobalData
.openingModuleList
.closeAll();
3003 GlobalData
.openingPackageList
.closeAll();
3004 GlobalData
.openingPlatformList
.closeAll();
3005 this.makeEmptyTree();
3009 Save currentModule when press button OK
3012 private void save() {
3013 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3015 if (this.currentOpeningModuleIndex
> -1) {
3016 saveModule(this.currentOpeningModuleIndex
);
3020 if (this.currentOpeningPackageIndex
> -1) {
3021 savePackage(this.currentOpeningPackageIndex
);
3025 if (this.currentOpeningPlatformIndex
> -1) {
3026 savePlatform(this.currentOpeningPlatformIndex
);
3032 private void saveAs() {
3036 private void saveAll() {
3040 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3041 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3047 // Save all packages
3049 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3050 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3056 // Save all platforms
3058 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3059 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3060 savePlatform(index
);
3066 To save changed items before exit.
3069 private void exit() {
3071 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3072 || !GlobalData
.openingPlatformList
.isSaved()) {
3073 result
= showSaveDialog();
3075 if (result
== JOptionPane
.YES_OPTION
) {
3078 if (result
== JOptionPane
.NO_OPTION
) {
3081 if (result
== JOptionPane
.CANCEL_OPTION
) {
3089 To find all defined PPIs in workspace
3092 private void findPpi() {
3093 FindResult fr
= FindResult
.getInstance("PPI");
3094 fr
.setVisible(true);
3098 To find all defined PROTOCOLs in workspace
3101 private void findProtocol() {
3102 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3103 fr
.setVisible(true);
3107 To find all defined PROTOCOLs in workspace
3110 private void findGuid() {
3111 FindResult fr
= FindResult
.getInstance("GUID");
3112 fr
.setVisible(true);
3116 To find all defined PROTOCOLs in workspace
3119 private void findPcd() {
3120 FindResult fr
= FindResult
.getInstance("PCD");
3121 fr
.setVisible(true);
3125 To find all defined Library Classes in workspace
3128 private void findLibraryClass() {
3129 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3130 fr
.setVisible(true);
3134 To find all defined Library Instances in workspace
3137 private void findLibraryInstance() {
3138 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3139 fr
.setVisible(true);
3143 Switch current workspace to others
3146 private void changeWorkspace() {
3147 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3148 int result
= sw
.showDialog();
3149 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3151 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3153 // Reinit whole window
3156 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3157 + Workspace
.getCurrentWorkspace() + "]");
3159 // Reinit Global Data
3167 To create a Far file from current workspace
3170 private void createFar() {
3171 CreateStepOne cso
= new CreateStepOne(this, true);
3172 int result
= cso
.showDialog();
3173 if (result
== DataType
.RETURN_TYPE_OK
) {
3174 String strReturn
= "Far Creation Completed!";
3175 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3176 JOptionPane
.INFORMATION_MESSAGE
);
3182 To install a Far file to current workspace
3185 private void installFar() {
3186 InstallStepOne iso
= new InstallStepOne(this, true);
3187 int result
= iso
.showDialog();
3188 if (result
== DataType
.RETURN_TYPE_OK
) {
3189 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3190 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3191 JOptionPane
.INFORMATION_MESSAGE
);
3198 To remove a Far's items from current workspace
3201 private void removeFar() {
3202 DeleteStepOne dso
= new DeleteStepOne(this, true);
3203 int result
= dso
.showDialog();
3204 if (result
== DataType
.RETURN_TYPE_OK
) {
3205 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3206 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3207 JOptionPane
.INFORMATION_MESSAGE
);
3214 To update an existing Far file
3217 private void updateFar() {
3218 UpdateStepOne uso
= new UpdateStepOne(this, true);
3219 int result
= uso
.showDialog();
3220 if (result
== DataType
.RETURN_TYPE_OK
) {
3221 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3222 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3223 JOptionPane
.INFORMATION_MESSAGE
);
3230 Show Tool Chain Configuration Dialog to setup Tool Chain
3233 private void setupToolChainConfiguration() {
3234 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3238 private void configBuildPreferences() {
3239 Preferences bt
= Preferences
.getInstance();
3247 private void cloneItem() {
3251 // Check if there is any item can be cloned
3253 if (iTree
.getSelectionPath() == null) {
3254 Log
.wrn("Clone", "Please select a target to clone!");
3257 int category
= iTree
.getSelectCategory();
3258 Identification id
= iTree
.getSelectNode().getId();
3259 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3260 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3261 Log
.wrn("Clone", "Please select a target to clone!");
3265 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3266 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3269 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
3270 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3272 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3273 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3275 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3276 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3279 Clone c
= new Clone(this, true, mode
, id
);
3280 int result
= c
.showDialog();
3282 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3285 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3286 Tools
.showInformationMessage("Workspace Clone Completed!");
3288 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3289 Tools
.showInformationMessage("Module Clone Completed!");
3290 GlobalData
.vModuleList
.addElement(c
.getMid());
3291 addModuleToTree(c
.getMid());
3293 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3294 Tools
.showInformationMessage("Package Clone Completed!");
3295 GlobalData
.vPackageList
.addElement(c
.getPid());
3297 // Add new SpdHeader node to the tree
3299 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3300 IDefaultMutableTreeNode
.SPD_HEADER
, true,
3301 GlobalData
.vPackageList
.lastElement());
3302 iTree
.addNode(dmtnPackageDescription
, node
);
3304 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3305 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3306 GlobalData
.vPlatformList
.addElement(c
.getFid());
3308 // Add new SpdHeader node to the tree
3310 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3311 GlobalData
.vPlatformList
.lastElement().getName(),
3312 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
3313 true, GlobalData
.vPlatformList
.lastElement());
3314 iTree
.addNode(dmtnPlatformDescription
, node
);
3315 //this.openPlatform(c.getFid().getPath());
3317 if (result
== DataType
.RETURN_TYPE_OK
) {
3322 public void valueChanged(TreeSelectionEvent arg0
) {
3323 // TODO Auto-generated method stub
3327 public void menuCanceled(MenuEvent arg0
) {
3328 // TODO Auto-generated method stub
3332 public void menuDeselected(MenuEvent arg0
) {
3333 // TODO Auto-generated method stub
3337 public void menuSelected(MenuEvent arg0
) {
3338 if (arg0
.getSource() == jMenuFile
) {
3340 // Enable close/close all if some files are opened
3342 jMenuItemFileClose
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3343 || GlobalData
.openingPackageList
.isOpen()
3344 || GlobalData
.openingPlatformList
.isOpen());
3345 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3346 || GlobalData
.openingPackageList
.isOpen()
3347 || GlobalData
.openingPlatformList
.isOpen());
3350 // Enable save/save all if some files are changed
3352 jMenuItemFileSave
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3353 || !GlobalData
.openingPackageList
.isSaved()
3354 || !GlobalData
.openingPlatformList
.isSaved());
3355 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3356 || !GlobalData
.openingPackageList
.isSaved()
3357 || !GlobalData
.openingPlatformList
.isSaved());
3360 if (arg0
.getSource() == jMenuTools
) {
3362 // Enable clone when select some items
3364 if (iTree
.getSelectionPath() == null) {
3365 jMenuItemToolsClone
.setEnabled(false);
3367 int category
= iTree
.getSelectCategory();
3368 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3369 || category
== IDefaultMutableTreeNode
.PLATFORM
3370 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3371 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3372 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3373 jMenuItemToolsClone
.setEnabled(false);
3375 jMenuItemToolsClone
.setEnabled(true);