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
.KeyEvent
;
21 import java
.awt
.event
.KeyListener
;
22 import java
.awt
.event
.MouseEvent
;
23 import java
.awt
.event
.MouseListener
;
24 import java
.awt
.event
.WindowEvent
;
25 import java
.io
.BufferedWriter
;
27 import java
.io
.FileWriter
;
28 import java
.io
.IOException
;
29 import java
.util
.Iterator
;
31 import java
.util
.Vector
;
33 import javax
.swing
.JButton
;
34 import javax
.swing
.JCheckBoxMenuItem
;
35 import javax
.swing
.JDesktopPane
;
36 import javax
.swing
.JFileChooser
;
37 import javax
.swing
.JFrame
;
38 import javax
.swing
.JInternalFrame
;
39 import javax
.swing
.JMenu
;
40 import javax
.swing
.JMenuBar
;
41 import javax
.swing
.JMenuItem
;
42 import javax
.swing
.JOptionPane
;
43 import javax
.swing
.JPanel
;
44 import javax
.swing
.JScrollPane
;
45 import javax
.swing
.JSplitPane
;
46 import javax
.swing
.JTabbedPane
;
47 import javax
.swing
.ToolTipManager
;
48 import javax
.swing
.event
.MenuEvent
;
49 import javax
.swing
.event
.MenuListener
;
50 import javax
.swing
.event
.TreeSelectionEvent
;
51 import javax
.swing
.event
.TreeSelectionListener
;
52 import javax
.swing
.tree
.TreePath
;
54 import org
.apache
.xmlbeans
.XmlException
;
55 import org
.tianocore
.PackageSurfaceAreaDocument
;
56 import org
.tianocore
.frameworkwizard
.common
.DataType
;
57 import org
.tianocore
.frameworkwizard
.common
.GlobalData
;
58 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
59 import org
.tianocore
.frameworkwizard
.common
.Log
;
60 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
61 import org
.tianocore
.frameworkwizard
.common
.Tools
;
62 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
63 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
64 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
65 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
66 import org
.tianocore
.frameworkwizard
.common
.find
.FindResult
;
67 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
68 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
69 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
70 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
71 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
72 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
73 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
74 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
75 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBuildOptions
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
83 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
84 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
85 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
86 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
87 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
88 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
89 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
90 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
91 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
92 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
93 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
94 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
95 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
96 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
97 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
98 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
99 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
100 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
101 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
102 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
103 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
104 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
105 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
106 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
107 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
108 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
109 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
110 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
111 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
112 import org
.tianocore
.frameworkwizard
.toolchain
.Preferences
;
115 The class is used to show main GUI of FrameworkWizard
116 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
119 public class FrameworkWizardUI
extends IFrame
implements KeyListener
, MouseListener
, TreeSelectionListener
,
122 /// Define class Serial Version UID
124 private static final long serialVersionUID
= -7103240960573031772L;
127 // Set ToolTipText Show Time
129 static { ToolTipManager
.sharedInstance().setDismissDelay(18000); }
132 /// Used to record current operation target
134 private int currentOpeningModuleIndex
= -1;
136 private int currentOpeningPackageIndex
= -1;
138 private int currentOpeningPlatformIndex
= -1;
141 /// Used to generate tree structure
143 private IDefaultMutableTreeNode dmtnRoot
= null;
145 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
147 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
149 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
154 private JPanel jContentPane
= null;
156 private JMenuBar jMenuBar
= null;
158 private JMenu jMenuFile
= null;
160 private JMenuItem jMenuItemFileNew
= null;
162 private JMenuItem jMenuItemFileRefresh
= null;
164 private JMenuItem jMenuItemFileSaveAs
= null;
166 private JMenuItem jMenuItemFileExit
= null;
168 private JMenu jMenuEdit
= null;
170 private JDesktopPane jDesktopPaneModule
= null;
172 private JDesktopPane jDesktopPanePackage
= null;
174 private JDesktopPane jDesktopPanePlatform
= null;
176 private JTabbedPane jTabbedPaneTree
= null;
178 private JTabbedPane jTabbedPaneEditor
= null;
180 private IDesktopManager iDesktopManager
= new IDesktopManager();
182 private JScrollPane jScrollPaneTree
= null;
184 private ITree iTree
= null;
186 private JMenu jMenuHelp
= null;
188 private JMenuItem jMenuItemHelpAbout
= null;
190 private JMenuItem jMenuItemEditDelete
= null;
192 private WorkspaceTools wt
= new WorkspaceTools();
194 private JMenuItem jMenuItemFileSave
= null;
196 private JMenuItem jMenuItemFileClose
= null;
198 private JMenu jMenuTools
= null;
200 private JMenu jMenuWindow
= null;
202 private JPanel jPanelOperation
= null;
204 private JButton jButtonOk
= null;
206 private JButton jButtonCancel
= null;
208 private JMenuItem jMenuItemFileOpen
= null;
210 private JMenuItem jMenuItemFileCloseAll
= null;
212 private JMenuItem jMenuItemFileSaveAll
= null;
214 private JMenuItem jMenuItemFilePageSetup
= null;
216 private JMenuItem jMenuItemFilePrint
= null;
218 private JMenuItem jMenuItemFileImport
= null;
220 private JMenuItem jMenuItemFileProperties
= null;
222 private JMenu jMenuFileRecentFiles
= null;
224 private JSplitPane jSplitPane
= null;
226 private JMenuItem jMenuItemEditUndo
= null;
228 private JMenuItem jMenuItemEditRedo
= null;
230 private JMenuItem jMenuItemEditCut
= null;
232 private JMenuItem jMenuItemEditCopy
= null;
234 private JMenuItem jMenuItemEditPaste
= null;
236 private JMenuItem jMenuItemEditSelectAll
= null;
238 private JMenuItem jMenuItemEditFindNext
= null;
240 private JMenu jMenuView
= null;
242 private JMenu jMenuViewToolbars
= null;
244 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
246 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
248 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
250 private JMenuItem jMenuItemViewStandard
= null;
252 private JMenuItem jMenuItemViewAdvanced
= null;
254 private JMenu jMenuProject
= null;
256 private JMenuItem jMenuItemProjectAdmin
= null;
258 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
260 private JMenuItem jMenuItemToolsBuildPreferences
= null;
262 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
264 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
266 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
268 private JMenuItem jMenuItemToolsClone
= null;
270 private JMenuItem jMenuItemToolsCodeScan
= null;
272 private JMenuItem jMenuItemWindowDisplaySide
= null;
274 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
276 private JMenuItem jMenuItemViewXML
= null;
278 private JMenuItem jMenuItemWindowTabView
= null;
280 private JMenuItem jMenuItemWindowSource
= null;
282 private JMenuItem jMenuItemWindowXML
= null;
284 private JMenuItem jMenuItemWindowPreferences
= null;
286 private JMenuItem jMenuItemHelpContents
= null;
288 private JMenuItem jMenuItemHelpIndex
= null;
290 private JMenuItem jMenuItemHelpSearch
= null;
292 private JMenuItem jMenuItemProjectInstallFar
= null;
294 private JMenuItem jMenuItemProjectUpdateFar
= null;
296 private JMenuItem jMenuItemProjectRemoveFar
= null;
298 private JMenuItem jMenuItemProjectCreateFar
= null;
300 private JMenu jMenuEditFind
= null;
302 private JMenuItem jMenuItemEditFindPcd
= null;
304 private JMenuItem jMenuItemEditFindLibraryClass
= null;
306 private JMenuItem jMenuItemEditFindPpi
= null;
308 private JMenuItem jMenuItemEditFindProtocol
= null;
310 private JMenuItem jMenuItemEditFindGuid
= null;
312 private JMenuItem jMenuItemEditFindLibraryInstance
= null;
315 /// A static definition for this class itself
317 private static FrameworkWizardUI fwui
= null;
319 private JMenuItem jMenuItemToolsGenerateGuidsXref
= null;
322 If the class hasn't an instnace, new one.
324 @return FrameworkWizardUI The instance of this class
327 public static FrameworkWizardUI
getInstance(String
[] args
) {
329 fwui
= new FrameworkWizardUI(args
);
335 If the class hasn't an instnace, new one.
337 @return FrameworkWizardUI The instance of this class
340 public static FrameworkWizardUI
getInstance() {
345 This method initializes jMenuBar
347 @return javax.swing.JMenuBar Main menu bar for the entire GUI
350 private JMenuBar
getjJMenuBar() {
351 if (jMenuBar
== null) {
352 jMenuBar
= new JMenuBar();
353 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
354 jMenuBar
.add(getJMenuFile());
355 jMenuBar
.add(getJMenuEdit());
356 jMenuBar
.add(getJMenuView());
357 jMenuBar
.add(getJMenuProject());
358 jMenuBar
.add(getJMenuTools());
359 jMenuBar
.add(getJMenuWindow());
360 jMenuBar
.add(getJMenuHelp());
366 This method initializes jSplitPane
368 @return javax.swing.JSplitPane
371 private JSplitPane
getJSplitPane() {
372 if (jSplitPane
== null) {
373 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
374 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
375 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
376 jSplitPane
.addComponentListener(this);
382 This method initializes jTabbedPaneEditor
384 @return javax.swing.JTabbedPane
387 private JTabbedPane
getJTabbedPaneEditor() {
388 if (jTabbedPaneEditor
== null) {
389 jTabbedPaneEditor
= new JTabbedPane();
390 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
391 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
392 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
393 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
395 .setMinimumSize(new java
.awt
.Dimension(
396 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
397 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
398 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
399 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
400 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
402 return jTabbedPaneEditor
;
406 This method initializes jTabbedPaneTree
408 @return javax.swing.JTabbedPane
411 private JTabbedPane
getJTabbedPaneTree() {
412 if (jTabbedPaneTree
== null) {
413 jTabbedPaneTree
= new JTabbedPane();
415 .setPreferredSize(new java
.awt
.Dimension(
416 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
417 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
419 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
420 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
421 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
423 return jTabbedPaneTree
;
427 This method initializes jMenuFile
429 @return javax.swing.JMenu jMenuModule
432 private JMenu
getJMenuFile() {
433 if (jMenuFile
== null) {
435 // Set jMenuFile's attributes
437 jMenuFile
= new JMenu();
438 jMenuFile
.setText("File");
439 jMenuFile
.setMnemonic('F');
440 jMenuFile
.addMenuListener(this);
443 // Add sub menu items
445 jMenuFile
.add(getJMenuItemFileNew());
446 jMenuFile
.add(getJMenuItemFileOpen());
447 jMenuFile
.add(getJMenuItemFileClose());
448 jMenuFile
.add(getJMenuItemFileCloseAll());
449 jMenuFile
.addSeparator();
451 jMenuFile
.add(getJMenuFileRecentFiles());
452 jMenuFile
.add(getJMenuItemFileSave());
453 jMenuFile
.add(getJMenuItemFileSaveAs());
454 jMenuFile
.add(getJMenuItemFileSaveAll());
455 jMenuFile
.addSeparator();
457 jMenuFile
.add(getJMenuItemFileRefresh());
458 jMenuFile
.addSeparator();
460 jMenuFile
.add(getJMenuItemFilePageSetup());
461 jMenuFile
.add(getJMenuItemFilePrint());
462 jMenuFile
.add(getJMenuItemFileImport());
463 jMenuFile
.add(getJMenuItemFileProperties());
465 jMenuFile
.add(getJMenuItemFileExit());
471 This method initializes jMenuItemFileSaveAs
473 @return javax.swing.JMenuItem jMenuItemFileSaveAs
476 private JMenuItem
getJMenuItemFileSaveAs() {
477 if (jMenuItemFileSaveAs
== null) {
478 jMenuItemFileSaveAs
= new JMenuItem();
479 jMenuItemFileSaveAs
.setText("Save As...");
480 jMenuItemFileSaveAs
.setMnemonic('a');
481 jMenuItemFileSaveAs
.addActionListener(this);
482 jMenuItemFileSaveAs
.setEnabled(false);
483 jMenuItemFileSaveAs
.setVisible(false);
485 return jMenuItemFileSaveAs
;
489 This method initializes jMenuItemFileRefresh
491 @return javax.swing.JMenuItem jMenuItemFileRefresh
494 private JMenuItem
getJMenuItemFileRefresh() {
495 if (jMenuItemFileRefresh
== null) {
496 jMenuItemFileRefresh
= new JMenuItem();
497 jMenuItemFileRefresh
.setText("Refresh");
498 jMenuItemFileRefresh
.setMnemonic('R');
499 jMenuItemFileRefresh
.addActionListener(this);
500 jMenuItemFileRefresh
.setVisible(true);
502 return jMenuItemFileRefresh
;
506 This method initializes jMenuItemModuleExit
508 @return javax.swing.JMenuItem jMenuItemModuleExit
511 private JMenuItem
getJMenuItemFileExit() {
512 if (jMenuItemFileExit
== null) {
513 jMenuItemFileExit
= new JMenuItem();
514 jMenuItemFileExit
.setText("Exit");
515 jMenuItemFileExit
.setMnemonic('x');
516 jMenuItemFileExit
.addActionListener(this);
518 return jMenuItemFileExit
;
522 This method initializes jMenuEdit
524 @return javax.swing.JMenu jMenuEdit
527 private JMenu
getJMenuEdit() {
528 if (jMenuEdit
== null) {
530 // Set jMenuEdit's attributes
532 jMenuEdit
= new JMenu();
533 jMenuEdit
.setText("Edit");
534 jMenuEdit
.setMnemonic('E');
535 jMenuEdit
.setVisible(true);
538 // Add sub menu items
540 jMenuEdit
.add(getJMenuItemEditUndo());
541 jMenuEdit
.add(getJMenuItemEditRedo());
542 //jMenuEdit.addSeparator();
544 jMenuEdit
.add(getJMenuItemEditCut());
545 jMenuEdit
.add(getJMenuItemEditCopy());
546 jMenuEdit
.add(getJMenuItemEditPaste());
547 jMenuEdit
.add(getJMenuItemEditDelete());
548 //jMenuEdit.addSeparator();
550 jMenuEdit
.add(getJMenuItemEditSelectAll());
551 jMenuEdit
.add(getJMenuEditFind());
552 jMenuEdit
.add(getJMenuItemEditFindNext());
553 //jMenuEdit.addSeparator();
559 This method initializes jDesktopPane
561 @return javax.swing.JDesktopPane jDesktopPane
564 private JDesktopPane
getJDesktopPaneModule() {
565 if (jDesktopPaneModule
== null) {
566 jDesktopPaneModule
= new JDesktopPane();
568 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
569 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
570 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
571 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
573 .setMinimumSize(new java
.awt
.Dimension(
574 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
575 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
576 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
577 jDesktopPaneModule
.addComponentListener(this);
579 return jDesktopPaneModule
;
583 This method initializes jDesktopPane
585 @return javax.swing.JDesktopPane jDesktopPane
588 private JDesktopPane
getJDesktopPanePackage() {
589 if (jDesktopPanePackage
== null) {
590 jDesktopPanePackage
= new JDesktopPane();
592 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
593 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
594 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
595 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
597 .setMinimumSize(new java
.awt
.Dimension(
598 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
599 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
600 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
601 jDesktopPanePackage
.addComponentListener(this);
603 return jDesktopPanePackage
;
607 This method initializes jDesktopPane
609 @return javax.swing.JDesktopPane jDesktopPane
612 private JDesktopPane
getJDesktopPanePlatform() {
613 if (jDesktopPanePlatform
== null) {
614 jDesktopPanePlatform
= new JDesktopPane();
616 .setBounds(new java
.awt
.Rectangle(
617 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
618 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
619 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
620 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
622 .setMinimumSize(new java
.awt
.Dimension(
623 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
624 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
625 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
626 jDesktopPanePlatform
.addComponentListener(this);
628 return jDesktopPanePlatform
;
632 This method initializes jScrollPaneTree
634 @return javax.swing.JScrollPane jScrollPaneTree
637 private JScrollPane
getJScrollPaneTree() {
638 if (jScrollPaneTree
== null) {
639 jScrollPaneTree
= new JScrollPane();
641 .setPreferredSize(new java
.awt
.Dimension(
642 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
643 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
645 .setMinimumSize(new java
.awt
.Dimension(
646 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
647 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
648 jScrollPaneTree
.setViewportView(getITree());
650 return jScrollPaneTree
;
654 This method initializes iTree
656 @return org.tianocore.packaging.common.ui.ITree iTree
659 private ITree
getITree() {
661 //Before open a real module, use an empty root node for the tree
668 This method initializes jMenuHelp
670 @return javax.swing.JMenu jMenuHelp
673 private JMenu
getJMenuHelp() {
674 if (jMenuHelp
== null) {
676 // Set jMenuHelp's attributes
678 jMenuHelp
= new JMenu();
679 jMenuHelp
.setText("Help");
680 jMenuHelp
.setMnemonic('H');
683 // Add sub menu items
685 jMenuHelp
.add(getJMenuItemHelpContents());
686 jMenuHelp
.add(getJMenuItemHelpIndex());
687 jMenuHelp
.add(getJMenuItemHelpSearch());
689 jMenuHelp
.add(getJMenuItemHelpAbout());
695 This method initializes jMenuItemHelpAbout
697 @return javax.swing.JMenuItem jMenuItemHelpAbout
700 private JMenuItem
getJMenuItemHelpAbout() {
701 if (jMenuItemHelpAbout
== null) {
702 jMenuItemHelpAbout
= new JMenuItem();
703 jMenuItemHelpAbout
.setText("About");
704 jMenuItemHelpAbout
.setMnemonic('A');
705 jMenuItemHelpAbout
.addActionListener(this);
707 return jMenuItemHelpAbout
;
711 This method initializes jMenuItemEditDelete
713 @return javax.swing.JMenuItem jMenuItemEditDelete
716 private JMenuItem
getJMenuItemEditDelete() {
717 if (jMenuItemEditDelete
== null) {
718 jMenuItemEditDelete
= new JMenuItem();
719 jMenuItemEditDelete
.setText("Delete");
720 jMenuItemEditDelete
.setMnemonic('D');
721 jMenuItemEditDelete
.setVisible(false);
722 jMenuItemEditDelete
.setEnabled(false);
723 jMenuItemEditDelete
.addActionListener(this);
725 //Disabled first when no module is open
727 jMenuItemEditDelete
.setEnabled(false);
729 return jMenuItemEditDelete
;
733 This method initializes jMenuFileNew
735 @return javax.swing.JMenuItem jMenuFileNew
738 private JMenuItem
getJMenuItemFileNew() {
739 if (jMenuItemFileNew
== null) {
740 jMenuItemFileNew
= new JMenuItem();
741 jMenuItemFileNew
.setText("New...");
742 jMenuItemFileNew
.setMnemonic('N');
743 jMenuItemFileNew
.addActionListener(this);
745 return jMenuItemFileNew
;
749 This method initializes jMenuItemFileSave
751 @return javax.swing.JMenuItem jMenuItemModuleSave
754 private JMenuItem
getJMenuItemFileSave() {
755 if (jMenuItemFileSave
== null) {
756 jMenuItemFileSave
= new JMenuItem();
757 jMenuItemFileSave
.setText("Save");
758 jMenuItemFileSave
.setMnemonic('S');
759 jMenuItemFileSave
.addActionListener(this);
760 jMenuItemFileSave
.setEnabled(true);
762 return jMenuItemFileSave
;
766 This method initializes jMenuItemModuleClose
768 @return javax.swing.JMenuItem jMenuItemModuleClose
771 private JMenuItem
getJMenuItemFileClose() {
772 if (jMenuItemFileClose
== null) {
773 jMenuItemFileClose
= new JMenuItem();
774 jMenuItemFileClose
.setText("Close");
775 jMenuItemFileClose
.setMnemonic('C');
776 jMenuItemFileClose
.setEnabled(true);
777 jMenuItemFileClose
.addActionListener(this);
779 return jMenuItemFileClose
;
783 This method initializes jMenuTools
786 @return javax.swing.JMenu jMenuTools
789 private JMenu
getJMenuTools() {
790 if (jMenuTools
== null) {
792 // Set jMenuTools's attributes
794 jMenuTools
= new JMenu();
795 jMenuTools
.setText("Tools");
796 jMenuTools
.setMnemonic('T');
797 jMenuTools
.addMenuListener(this);
800 // Add sub menu items
803 jMenuTools
.add(getJMenuItemToolsClone());
804 jMenuTools
.add(getJMenuItemToolsCodeScan());
805 jMenuTools
.addSeparator();
807 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
808 jMenuTools
.add(getJMenuItemToolsBuildPreferences());
809 jMenuTools
.addSeparator();
811 jMenuTools
.add(getJMenuItemToolsGenerateGuidsXref());
817 This method initializes jMenuWindow
820 @return javax.swing.JMenu jMenuWindow
823 private JMenu
getJMenuWindow() {
824 if (jMenuWindow
== null) {
826 // Set jMenuWindow's attribute
828 jMenuWindow
= new JMenu();
829 jMenuWindow
.setText("Window");
830 jMenuWindow
.setMnemonic('W');
831 jMenuWindow
.setVisible(false);
834 // Add sub menu items
836 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
837 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
838 jMenuWindow
.addSeparator();
840 jMenuWindow
.add(getJMenuItemWindowTabView());
841 jMenuWindow
.addSeparator();
843 jMenuWindow
.add(getJMenuItemWindowSource());
844 jMenuWindow
.add(getJMenuItemWindowXML());
845 jMenuWindow
.addSeparator();
847 jMenuWindow
.add(getJMenuItemWindowPreferences());
853 This method initializes jPanelOperation
856 @return javax.swing.JPanel jPanelOperation
859 private JPanel
getJPanelOperation() {
860 if (jPanelOperation
== null) {
861 jPanelOperation
= new JPanel();
862 jPanelOperation
.setLayout(null);
863 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
864 jPanelOperation
.add(getJButtonOk(), null);
865 jPanelOperation
.add(getJButtonCancel(), null);
866 jPanelOperation
.setVisible(false);
868 return jPanelOperation
;
872 This method initializes jButtonOk
875 @return javax.swing.JButton jButtonOk
878 private JButton
getJButtonOk() {
879 if (jButtonOk
== null) {
880 jButtonOk
= new JButton();
881 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
882 jButtonOk
.setText("Ok");
883 jButtonOk
.setEnabled(false);
884 jButtonOk
.addActionListener(this);
890 This method initializes jButtonCancel
893 @return javax.swing.JButton jButtonCancel
896 private JButton
getJButtonCancel() {
897 if (jButtonCancel
== null) {
898 jButtonCancel
= new JButton();
899 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
900 jButtonCancel
.setText("Cancel");
901 jButtonCancel
.setEnabled(false);
902 jButtonCancel
.addActionListener(this);
903 jButtonCancel
.setVisible(false);
905 return jButtonCancel
;
909 This method initializes jMenuItemFileOpen
911 @return javax.swing.JMenuItem jMenuItemFileOpen
914 private JMenuItem
getJMenuItemFileOpen() {
915 if (jMenuItemFileOpen
== null) {
916 jMenuItemFileOpen
= new JMenuItem();
917 jMenuItemFileOpen
.setText("Open...");
918 jMenuItemFileOpen
.setMnemonic('O');
919 jMenuItemFileOpen
.addActionListener(this);
921 return jMenuItemFileOpen
;
925 This method initializes jMenuItemFileCloseAll
927 @return javax.swing.JMenuItem jMenuItemFileOpen
930 private JMenuItem
getJMenuItemFileCloseAll() {
931 if (jMenuItemFileCloseAll
== null) {
932 jMenuItemFileCloseAll
= new JMenuItem();
933 jMenuItemFileCloseAll
.setText("Close All");
934 jMenuItemFileCloseAll
.setMnemonic('A');
935 jMenuItemFileCloseAll
.setEnabled(true);
936 jMenuItemFileCloseAll
.addActionListener(this);
938 return jMenuItemFileCloseAll
;
942 This method initializes jMenuItemFileSaveAll
944 @return javax.swing.JMenuItem jMenuItemFileSaveAll
947 private JMenuItem
getJMenuItemFileSaveAll() {
948 if (jMenuItemFileSaveAll
== null) {
949 jMenuItemFileSaveAll
= new JMenuItem();
950 jMenuItemFileSaveAll
.setText("Save All");
951 jMenuItemFileSaveAll
.setMnemonic('v');
952 jMenuItemFileSaveAll
.setEnabled(true);
953 jMenuItemFileSaveAll
.addActionListener(this);
955 return jMenuItemFileSaveAll
;
959 This method initializes jMenuItemFilePageSetup
961 @return javax.swing.JMenuItem
964 private JMenuItem
getJMenuItemFilePageSetup() {
965 if (jMenuItemFilePageSetup
== null) {
966 jMenuItemFilePageSetup
= new JMenuItem();
967 jMenuItemFilePageSetup
.setText("Page Setup");
968 jMenuItemFilePageSetup
.setMnemonic('u');
969 jMenuItemFilePageSetup
.setEnabled(false);
970 jMenuItemFilePageSetup
.addActionListener(this);
971 jMenuItemFilePageSetup
.setVisible(false);
973 return jMenuItemFilePageSetup
;
977 This method initializes jMenuItemFilePrint
979 @return javax.swing.JMenuItem
982 private JMenuItem
getJMenuItemFilePrint() {
983 if (jMenuItemFilePrint
== null) {
984 jMenuItemFilePrint
= new JMenuItem();
985 jMenuItemFilePrint
.setText("Print");
986 jMenuItemFilePrint
.setMnemonic('P');
987 jMenuItemFilePrint
.setEnabled(false);
988 jMenuItemFilePrint
.addActionListener(this);
989 jMenuItemFilePrint
.setVisible(false);
991 return jMenuItemFilePrint
;
995 This method initializes jMenuItemFileImport
997 @return javax.swing.JMenuItem
1000 private JMenuItem
getJMenuItemFileImport() {
1001 if (jMenuItemFileImport
== null) {
1002 jMenuItemFileImport
= new JMenuItem();
1003 jMenuItemFileImport
.setText("Import");
1004 jMenuItemFileImport
.setMnemonic('I');
1005 jMenuItemFileImport
.setEnabled(false);
1006 jMenuItemFileImport
.addActionListener(this);
1007 jMenuItemFileImport
.setVisible(false);
1009 return jMenuItemFileImport
;
1013 This method initializes jMenuItemFileProperties
1015 @return javax.swing.JMenuItem
1018 private JMenuItem
getJMenuItemFileProperties() {
1019 if (jMenuItemFileProperties
== null) {
1020 jMenuItemFileProperties
= new JMenuItem();
1021 jMenuItemFileProperties
.setText("Properties");
1022 jMenuItemFileProperties
.setMnemonic('t');
1023 jMenuItemFileProperties
.setEnabled(false);
1024 jMenuItemFileProperties
.addActionListener(this);
1025 jMenuItemFileProperties
.setVisible(false);
1027 return jMenuItemFileProperties
;
1031 This method initializes jMenuFileRecentFiles
1033 @return javax.swing.JMenu
1036 private JMenu
getJMenuFileRecentFiles() {
1037 if (jMenuFileRecentFiles
== null) {
1038 jMenuFileRecentFiles
= new JMenu();
1039 jMenuFileRecentFiles
.setText("Recent Files");
1040 jMenuFileRecentFiles
.setMnemonic('F');
1041 jMenuFileRecentFiles
.setEnabled(false);
1042 jMenuFileRecentFiles
.addActionListener(this);
1043 jMenuFileRecentFiles
.setVisible(false);
1045 return jMenuFileRecentFiles
;
1049 This method initializes jMenuItemEditUndo
1051 @return javax.swing.JMenuItem
1054 private JMenuItem
getJMenuItemEditUndo() {
1055 if (jMenuItemEditUndo
== null) {
1056 jMenuItemEditUndo
= new JMenuItem();
1057 jMenuItemEditUndo
.setText("Undo");
1058 jMenuItemEditUndo
.setMnemonic('U');
1059 jMenuItemEditUndo
.setEnabled(false);
1060 jMenuItemEditUndo
.setVisible(false);
1061 jMenuItemEditUndo
.addActionListener(this);
1063 return jMenuItemEditUndo
;
1067 This method initializes jMenuItemEditRedo
1069 @return javax.swing.JMenuItem
1072 private JMenuItem
getJMenuItemEditRedo() {
1073 if (jMenuItemEditRedo
== null) {
1074 jMenuItemEditRedo
= new JMenuItem();
1075 jMenuItemEditRedo
.setText("Redo");
1076 jMenuItemEditRedo
.setMnemonic('R');
1077 jMenuItemEditRedo
.setEnabled(false);
1078 jMenuItemEditRedo
.setVisible(false);
1079 jMenuItemEditRedo
.addActionListener(this);
1081 return jMenuItemEditRedo
;
1085 This method initializes jMenuItemEditCut
1087 @return javax.swing.JMenuItem
1090 private JMenuItem
getJMenuItemEditCut() {
1091 if (jMenuItemEditCut
== null) {
1092 jMenuItemEditCut
= new JMenuItem();
1093 jMenuItemEditCut
.setText("Cut");
1094 jMenuItemEditCut
.setMnemonic('t');
1095 jMenuItemEditCut
.setEnabled(false);
1096 jMenuItemEditCut
.setVisible(false);
1097 jMenuItemEditCut
.addActionListener(this);
1099 return jMenuItemEditCut
;
1103 This method initializes jMenuItemEditCopy
1105 @return javax.swing.JMenuItem
1108 private JMenuItem
getJMenuItemEditCopy() {
1109 if (jMenuItemEditCopy
== null) {
1110 jMenuItemEditCopy
= new JMenuItem();
1111 jMenuItemEditCopy
.setText("Copy");
1112 jMenuItemEditCopy
.setMnemonic('C');
1113 jMenuItemEditCopy
.setEnabled(false);
1114 jMenuItemEditCopy
.setVisible(false);
1115 jMenuItemEditCopy
.addActionListener(this);
1117 return jMenuItemEditCopy
;
1121 This method initializes jMenuItemEditPaste
1123 return javax.swing.JMenuItem
1126 private JMenuItem
getJMenuItemEditPaste() {
1127 if (jMenuItemEditPaste
== null) {
1128 jMenuItemEditPaste
= new JMenuItem();
1129 jMenuItemEditPaste
.setText("Paste");
1130 jMenuItemEditPaste
.setMnemonic('P');
1131 jMenuItemEditPaste
.setEnabled(false);
1132 jMenuItemEditPaste
.setVisible(false);
1133 jMenuItemEditPaste
.addActionListener(this);
1135 return jMenuItemEditPaste
;
1139 This method initializes jMenuItem
1141 @return javax.swing.JMenuItem
1144 private JMenuItem
getJMenuItemEditSelectAll() {
1145 if (jMenuItemEditSelectAll
== null) {
1146 jMenuItemEditSelectAll
= new JMenuItem();
1147 jMenuItemEditSelectAll
.setText("Select All");
1148 jMenuItemEditSelectAll
.setMnemonic('A');
1149 jMenuItemEditSelectAll
.setEnabled(false);
1150 jMenuItemEditSelectAll
.setVisible(false);
1151 jMenuItemEditSelectAll
.addActionListener(this);
1153 return jMenuItemEditSelectAll
;
1157 This method initializes jMenuItemEditFindNext
1159 @return javax.swing.JMenuItem
1162 private JMenuItem
getJMenuItemEditFindNext() {
1163 if (jMenuItemEditFindNext
== null) {
1164 jMenuItemEditFindNext
= new JMenuItem();
1165 jMenuItemEditFindNext
.setText("Find Next");
1166 jMenuItemEditFindNext
.setMnemonic('n');
1167 jMenuItemEditFindNext
.setEnabled(false);
1168 jMenuItemEditFindNext
.setVisible(false);
1169 jMenuItemEditFindNext
.addActionListener(this);
1171 return jMenuItemEditFindNext
;
1175 This method initializes jMenuView
1177 @return javax.swing.JMenu
1180 private JMenu
getJMenuView() {
1181 if (jMenuView
== null) {
1183 // Set jMenuView's attributes
1185 jMenuView
= new JMenu();
1186 jMenuView
.setText("View");
1187 jMenuView
.setMnemonic('V');
1188 jMenuView
.setVisible(false);
1191 // Add sub menu items
1193 jMenuView
.add(getJMenuViewToolbars());
1194 jMenuView
.add(getJMenuItemViewAdvanced());
1195 jMenuView
.add(getJMenuItemViewStandard());
1196 jMenuView
.add(getJMenuItemViewXML());
1202 This method initializes jMenuViewToolbars
1204 @return javax.swing.JMenu
1207 private JMenu
getJMenuViewToolbars() {
1208 if (jMenuViewToolbars
== null) {
1209 jMenuViewToolbars
= new JMenu();
1210 jMenuViewToolbars
.setText("Toolbars");
1211 jMenuViewToolbars
.setMnemonic('T');
1213 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1214 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1215 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1217 return jMenuViewToolbars
;
1221 This method initializes jCheckBoxMenuItemViewToolbarsFile
1223 @return javax.swing.JCheckBoxMenuItem
1226 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1227 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1228 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1229 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1230 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1231 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1233 return jCheckBoxMenuItemViewToolbarsFile
;
1237 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1239 @return javax.swing.JCheckBoxMenuItem
1242 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1243 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1244 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1245 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1246 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1247 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1249 return jCheckBoxMenuItemViewToolbarsEdit
;
1253 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1255 @return javax.swing.JCheckBoxMenuItem
1258 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1259 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1260 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1261 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1262 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1263 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1265 return jCheckBoxMenuItemViewToolbarsWindow
;
1269 This method initializes jMenuItemStandard
1271 @return javax.swing.JMenuItem
1274 private JMenuItem
getJMenuItemViewStandard() {
1275 if (jMenuItemViewStandard
== null) {
1276 jMenuItemViewStandard
= new JMenuItem();
1277 jMenuItemViewStandard
.setText("Standard");
1278 jMenuItemViewStandard
.setMnemonic('S');
1279 jMenuItemViewStandard
.setEnabled(false);
1280 jMenuItemViewStandard
.addActionListener(this);
1282 return jMenuItemViewStandard
;
1286 This method initializes jMenuItemAdvanced
1288 @return javax.swing.JMenuItem
1291 private JMenuItem
getJMenuItemViewAdvanced() {
1292 if (jMenuItemViewAdvanced
== null) {
1293 jMenuItemViewAdvanced
= new JMenuItem();
1294 jMenuItemViewAdvanced
.setText("Advanced");
1295 jMenuItemViewAdvanced
.setMnemonic('A');
1296 jMenuItemViewAdvanced
.setEnabled(false);
1297 jMenuItemViewAdvanced
.addActionListener(this);
1299 return jMenuItemViewAdvanced
;
1303 This method initializes jMenuProject
1305 @return javax.swing.JMenu
1308 private JMenu
getJMenuProject() {
1309 if (jMenuProject
== null) {
1311 // Set jMenuProject's attributes
1313 jMenuProject
= new JMenu();
1314 jMenuProject
.setText("Project");
1315 jMenuProject
.setMnemonic('P');
1318 // Add sub menu items
1320 jMenuProject
.add(getJMenuItemProjectAdmin());
1322 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1323 jMenuProject
.addSeparator();
1325 jMenuProject
.add(getJMenuItemProjectCreateFar());
1326 jMenuProject
.add(getJMenuItemProjectInstallFar());
1327 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1328 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1331 return jMenuProject
;
1335 This method initializes jMenuItemProjectAdmin
1337 @return javax.swing.JMenuItem
1340 private JMenuItem
getJMenuItemProjectAdmin() {
1341 if (jMenuItemProjectAdmin
== null) {
1342 jMenuItemProjectAdmin
= new JMenuItem();
1343 jMenuItemProjectAdmin
.setText("Admin...");
1344 jMenuItemProjectAdmin
.setMnemonic('A');
1345 jMenuItemProjectAdmin
.setEnabled(false);
1346 jMenuItemProjectAdmin
.addActionListener(this);
1347 jMenuItemProjectAdmin
.setVisible(false);
1349 return jMenuItemProjectAdmin
;
1353 This method initializes jMenuItemProjectChangeWorkspace
1355 @return javax.swing.JMenuItem
1358 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1359 if (jMenuItemProjectChangeWorkspace
== null) {
1360 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1361 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1362 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1363 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1364 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1366 return jMenuItemProjectChangeWorkspace
;
1370 This method initializes jMenuProjectBuildPreferences
1372 @return javax.swing.JMenu
1375 private JMenuItem
getJMenuItemToolsBuildPreferences() {
1376 if (jMenuItemToolsBuildPreferences
== null) {
1377 jMenuItemToolsBuildPreferences
= new JMenuItem();
1378 jMenuItemToolsBuildPreferences
.setText("Build Preferences...");
1379 jMenuItemToolsBuildPreferences
.setMnemonic('P');
1380 jMenuItemToolsBuildPreferences
.setEnabled(true);
1381 jMenuItemToolsBuildPreferences
.addActionListener(this);
1383 return jMenuItemToolsBuildPreferences
;
1387 This method initializes jMenuItemToolsToolChainConfiguration
1389 @return javax.swing.JMenuItem
1392 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1393 if (jMenuItemToolsToolChainConfiguration
== null) {
1394 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1395 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1396 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1397 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1399 return jMenuItemToolsToolChainConfiguration
;
1403 This method initializes jMenuItemToolsClone
1405 @return javax.swing.JMenuItem
1408 private JMenuItem
getJMenuItemToolsClone() {
1409 if (jMenuItemToolsClone
== null) {
1410 jMenuItemToolsClone
= new JMenuItem();
1411 jMenuItemToolsClone
.setText("Clone...");
1412 jMenuItemToolsClone
.setMnemonic('l');
1413 jMenuItemToolsClone
.setEnabled(true);
1414 jMenuItemToolsClone
.addActionListener(this);
1416 return jMenuItemToolsClone
;
1420 This method initializes jMenuItemToolsCodeScan
1422 @return javax.swing.JMenuItem
1425 private JMenuItem
getJMenuItemToolsCodeScan() {
1426 if (jMenuItemToolsCodeScan
== null) {
1427 jMenuItemToolsCodeScan
= new JMenuItem();
1428 jMenuItemToolsCodeScan
.setText("Code Scan...");
1429 jMenuItemToolsCodeScan
.setMnemonic('S');
1430 jMenuItemToolsCodeScan
.setEnabled(false);
1431 jMenuItemToolsCodeScan
.addActionListener(this);
1432 jMenuItemToolsCodeScan
.setVisible(false);
1434 return jMenuItemToolsCodeScan
;
1438 This method initializes jMenuItemWindowSplitVertical
1440 @return javax.swing.JMenuItem
1443 private JMenuItem
getJMenuItemWindowDisplaySide() {
1444 if (jMenuItemWindowDisplaySide
== null) {
1445 jMenuItemWindowDisplaySide
= new JMenuItem();
1446 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1447 jMenuItemWindowDisplaySide
.setMnemonic('S');
1448 jMenuItemWindowDisplaySide
.setEnabled(false);
1449 jMenuItemWindowDisplaySide
.addActionListener(this);
1451 return jMenuItemWindowDisplaySide
;
1455 This method initializes jMenuItemWindowSplitHorizontal
1457 @return javax.swing.JMenuItem
1460 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1461 if (jMenuItemWindowDisplayTopBottom
== null) {
1462 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1463 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1464 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1465 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1466 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1468 return jMenuItemWindowDisplayTopBottom
;
1472 This method initializes jMenuItemViewXML
1474 @return javax.swing.JMenuItem
1477 private JMenuItem
getJMenuItemViewXML() {
1478 if (jMenuItemViewXML
== null) {
1479 jMenuItemViewXML
= new JMenuItem();
1480 jMenuItemViewXML
.setText("XML");
1481 jMenuItemViewXML
.setMnemonic('X');
1482 jMenuItemViewXML
.setEnabled(false);
1483 jMenuItemViewXML
.addActionListener(this);
1485 return jMenuItemViewXML
;
1489 This method initializes jMenuItemWindowTabView
1491 @return javax.swing.JMenuItem
1494 private JMenuItem
getJMenuItemWindowTabView() {
1495 if (jMenuItemWindowTabView
== null) {
1496 jMenuItemWindowTabView
= new JMenuItem();
1497 jMenuItemWindowTabView
.setText("Tab View");
1498 jMenuItemWindowTabView
.setMnemonic('T');
1499 jMenuItemWindowTabView
.setEnabled(false);
1500 jMenuItemWindowTabView
.addActionListener(this);
1502 return jMenuItemWindowTabView
;
1506 This method initializes jMenuItemWindowSource
1508 @return javax.swing.JMenuItem
1511 private JMenuItem
getJMenuItemWindowSource() {
1512 if (jMenuItemWindowSource
== null) {
1513 jMenuItemWindowSource
= new JMenuItem();
1514 jMenuItemWindowSource
.setText("Source");
1515 jMenuItemWindowSource
.setMnemonic('S');
1516 jMenuItemWindowSource
.setEnabled(false);
1517 jMenuItemWindowSource
.addActionListener(this);
1519 return jMenuItemWindowSource
;
1523 This method initializes jMenuItemWindowXML
1525 @return javax.swing.JMenuItem
1528 private JMenuItem
getJMenuItemWindowXML() {
1529 if (jMenuItemWindowXML
== null) {
1530 jMenuItemWindowXML
= new JMenuItem();
1531 jMenuItemWindowXML
.setText("XML");
1532 jMenuItemWindowXML
.setMnemonic('X');
1533 jMenuItemWindowXML
.setEnabled(false);
1534 jMenuItemWindowXML
.addActionListener(this);
1536 return jMenuItemWindowXML
;
1540 This method initializes jMenuItemWindowPreferences
1542 @return javax.swing.JMenuItem
1545 private JMenuItem
getJMenuItemWindowPreferences() {
1546 if (jMenuItemWindowPreferences
== null) {
1547 jMenuItemWindowPreferences
= new JMenuItem();
1548 jMenuItemWindowPreferences
.setText("Preferences");
1549 jMenuItemWindowPreferences
.setMnemonic('P');
1550 jMenuItemWindowPreferences
.setEnabled(false);
1551 jMenuItemWindowPreferences
.addActionListener(this);
1553 return jMenuItemWindowPreferences
;
1557 This method initializes jMenuItemHelpContents
1559 @return javax.swing.JMenuItem
1562 private JMenuItem
getJMenuItemHelpContents() {
1563 if (jMenuItemHelpContents
== null) {
1564 jMenuItemHelpContents
= new JMenuItem();
1565 jMenuItemHelpContents
.setText("Contents");
1566 jMenuItemHelpContents
.setMnemonic('C');
1567 jMenuItemHelpContents
.setEnabled(false);
1568 jMenuItemHelpContents
.addActionListener(this);
1569 jMenuItemHelpContents
.setVisible(false);
1571 return jMenuItemHelpContents
;
1575 This method initializes jMenuItemHelpIndex
1577 @return javax.swing.JMenuItem
1580 private JMenuItem
getJMenuItemHelpIndex() {
1581 if (jMenuItemHelpIndex
== null) {
1582 jMenuItemHelpIndex
= new JMenuItem();
1583 jMenuItemHelpIndex
.setText("Index");
1584 jMenuItemHelpIndex
.setMnemonic('I');
1585 jMenuItemHelpIndex
.setEnabled(false);
1586 jMenuItemHelpIndex
.addActionListener(this);
1587 jMenuItemHelpIndex
.setVisible(false);
1589 return jMenuItemHelpIndex
;
1593 This method initializes jMenuItemHelpSearch
1595 @return javax.swing.JMenuItem
1598 private JMenuItem
getJMenuItemHelpSearch() {
1599 if (jMenuItemHelpSearch
== null) {
1600 jMenuItemHelpSearch
= new JMenuItem();
1601 jMenuItemHelpSearch
.setText("Search");
1602 jMenuItemHelpSearch
.setMnemonic('S');
1603 jMenuItemHelpSearch
.setEnabled(false);
1604 jMenuItemHelpSearch
.addActionListener(this);
1605 jMenuItemHelpSearch
.setVisible(false);
1607 return jMenuItemHelpSearch
;
1611 * This method initializes jMenuItemToolsInstallPackage
1613 * @return javax.swing.JMenuItem
1615 private JMenuItem
getJMenuItemProjectInstallFar() {
1616 if (jMenuItemProjectInstallFar
== null) {
1617 jMenuItemProjectInstallFar
= new JMenuItem();
1618 jMenuItemProjectInstallFar
.setText("Install FAR...");
1619 jMenuItemProjectInstallFar
.setMnemonic('I');
1620 jMenuItemProjectInstallFar
.setEnabled(true);
1621 jMenuItemProjectInstallFar
.addActionListener(this);
1623 return jMenuItemProjectInstallFar
;
1627 * This method initializes jMenuItemToolsUpdatePackage
1629 * @return javax.swing.JMenuItem
1631 private JMenuItem
getJMenuItemProjectUpdateFar() {
1632 if (jMenuItemProjectUpdateFar
== null) {
1633 jMenuItemProjectUpdateFar
= new JMenuItem();
1634 jMenuItemProjectUpdateFar
.setText("Update FAR...");
1635 jMenuItemProjectUpdateFar
.setMnemonic('U');
1636 jMenuItemProjectUpdateFar
.setEnabled(true);
1637 jMenuItemProjectUpdateFar
.addActionListener(this);
1638 jMenuItemProjectUpdateFar
.setVisible(true);
1640 return jMenuItemProjectUpdateFar
;
1644 * This method initializes jMenuItemRemovePackage
1646 * @return javax.swing.JMenuItem
1648 private JMenuItem
getJMenuItemProjectRemoveFar() {
1649 if (jMenuItemProjectRemoveFar
== null) {
1650 jMenuItemProjectRemoveFar
= new JMenuItem();
1651 jMenuItemProjectRemoveFar
.setText("Remove FAR...");
1652 jMenuItemProjectRemoveFar
.setMnemonic('R');
1653 jMenuItemProjectRemoveFar
.setEnabled(true);
1654 jMenuItemProjectRemoveFar
.addActionListener(this);
1656 return jMenuItemProjectRemoveFar
;
1660 * This method initializes jMenuItemProjectCreateFar
1662 * @return javax.swing.JMenuItem
1664 private JMenuItem
getJMenuItemProjectCreateFar() {
1665 if (jMenuItemProjectCreateFar
== null) {
1666 jMenuItemProjectCreateFar
= new JMenuItem();
1667 jMenuItemProjectCreateFar
.setText("Create FAR...");
1668 jMenuItemProjectCreateFar
.setMnemonic('C');
1669 jMenuItemProjectCreateFar
.addActionListener(this);
1671 return jMenuItemProjectCreateFar
;
1675 * This method initializes jMenuEditFind
1677 * @return javax.swing.JMenu
1679 private JMenu
getJMenuEditFind() {
1680 if (jMenuEditFind
== null) {
1681 jMenuEditFind
= new JMenu();
1682 jMenuEditFind
.setText("Find");
1683 jMenuEditFind
.setMnemonic('F');
1685 jMenuEditFind
.add(getJMenuItemEditFindPpi());
1686 jMenuEditFind
.add(getJMenuItemEditFindProtocol());
1687 jMenuEditFind
.add(getJMenuItemEditFindGuid());
1688 jMenuEditFind
.add(getJMenuItemEditFindPcd());
1689 jMenuEditFind
.add(getJMenuItemEditFindLibraryClass());
1690 jMenuEditFind
.add(getJMenuItemEditFindLibraryInstance());
1692 return jMenuEditFind
;
1696 * This method initializes jMenuItemEditFindPcd
1698 * @return javax.swing.JMenuItem
1700 private JMenuItem
getJMenuItemEditFindPcd() {
1701 if (jMenuItemEditFindPcd
== null) {
1702 jMenuItemEditFindPcd
= new JMenuItem();
1703 jMenuItemEditFindPcd
.setText("All PCD entries");
1704 jMenuItemEditFindPcd
.setMnemonic('P');
1705 jMenuItemEditFindPcd
.addActionListener(this);
1707 return jMenuItemEditFindPcd
;
1711 * This method initializes jMenuItemEditFindLibraryClass
1713 * @return javax.swing.JMenuItem
1715 private JMenuItem
getJMenuItemEditFindLibraryClass() {
1716 if (jMenuItemEditFindLibraryClass
== null) {
1717 jMenuItemEditFindLibraryClass
= new JMenuItem();
1718 jMenuItemEditFindLibraryClass
.setText("All Library Classes");
1719 jMenuItemEditFindLibraryClass
.setMnemonic('C');
1720 jMenuItemEditFindLibraryClass
.addActionListener(this);
1722 return jMenuItemEditFindLibraryClass
;
1726 * This method initializes jMenuItemEditFindPpi
1728 * @return javax.swing.JMenuItem
1730 private JMenuItem
getJMenuItemEditFindPpi() {
1731 if (jMenuItemEditFindPpi
== null) {
1732 jMenuItemEditFindPpi
= new JMenuItem();
1733 jMenuItemEditFindPpi
.setText("All PPIs");
1734 jMenuItemEditFindPpi
.setMnemonic('I');
1735 jMenuItemEditFindPpi
.addActionListener(this);
1737 return jMenuItemEditFindPpi
;
1741 * This method initializes jMenuItemEditFindProtocol
1743 * @return javax.swing.JMenuItem
1745 private JMenuItem
getJMenuItemEditFindProtocol() {
1746 if (jMenuItemEditFindProtocol
== null) {
1747 jMenuItemEditFindProtocol
= new JMenuItem();
1748 jMenuItemEditFindProtocol
.setText("All Protocols");
1749 jMenuItemEditFindProtocol
.setMnemonic('r');
1750 jMenuItemEditFindProtocol
.addActionListener(this);
1752 return jMenuItemEditFindProtocol
;
1756 * This method initializes jMenuItemEditFindGuid
1758 * @return javax.swing.JMenuItem
1760 private JMenuItem
getJMenuItemEditFindGuid() {
1761 if (jMenuItemEditFindGuid
== null) {
1762 jMenuItemEditFindGuid
= new JMenuItem();
1763 jMenuItemEditFindGuid
.setText("All GUIDs");
1764 jMenuItemEditFindGuid
.setMnemonic('G');
1765 jMenuItemEditFindGuid
.addActionListener(this);
1767 return jMenuItemEditFindGuid
;
1771 * This method initializes jMenuItemEditFindLibraryInstance
1773 * @return javax.swing.JMenuItem
1775 private JMenuItem
getJMenuItemEditFindLibraryInstance() {
1776 if (jMenuItemEditFindLibraryInstance
== null) {
1777 jMenuItemEditFindLibraryInstance
= new JMenuItem();
1778 jMenuItemEditFindLibraryInstance
.setText("All Library Instances");
1779 jMenuItemEditFindLibraryInstance
.setMnemonic('n');
1780 jMenuItemEditFindLibraryInstance
.addActionListener(this);
1781 jMenuItemEditFindLibraryInstance
.setVisible(false);
1783 return jMenuItemEditFindLibraryInstance
;
1787 * This method initializes jMenuItemProjectGenerateGuidsXref
1789 * @return javax.swing.JMenuItem
1791 private JMenuItem
getJMenuItemToolsGenerateGuidsXref() {
1792 if (jMenuItemToolsGenerateGuidsXref
== null) {
1793 jMenuItemToolsGenerateGuidsXref
= new JMenuItem();
1794 jMenuItemToolsGenerateGuidsXref
.setText("Generate guids.xref...");
1795 jMenuItemToolsGenerateGuidsXref
.setMnemonic('G');
1796 jMenuItemToolsGenerateGuidsXref
.addActionListener(this);
1798 return jMenuItemToolsGenerateGuidsXref
;
1802 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1804 * Main class, start the GUI
1807 public static void main(String
[] args
) {
1811 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance(args
);
1812 module
.setVisible(true);
1816 This is the default constructor
1819 public FrameworkWizardUI(String
[] args
) {
1825 This method initializes this
1829 private void init(String
[] args
) {
1831 // Set current workspace and check
1832 // Check if exists WORKSPACE
1834 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1835 this.checkWorkspace();
1838 // Show splash screen
1840 SplashScreen ss
= new SplashScreen();
1841 ss
.setVisible(true);
1844 // Go through args to check if enable log
1846 for (int index
= 0; index
< args
.length
; index
++) {
1847 if (args
[index
].equals("--log") || args
[index
].equals("-l")) {
1848 Log
.setSaveLog(true);
1858 // Close splash screen
1865 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1866 this.setResizable(true);
1867 this.setJMenuBar(getjJMenuBar());
1868 this.setContentPane(getJContentPane());
1869 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1870 + Workspace
.getCurrentWorkspace() + "]");
1871 this.setExitType(1);
1876 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1880 This method initializes jContentPane
1882 @return javax.swing.JPanel jContentPane
1885 private JPanel
getJContentPane() {
1886 if (jContentPane
== null) {
1887 jContentPane
= new JPanel();
1888 jContentPane
.setLayout(null);
1889 jContentPane
.add(getJPanelOperation(), null);
1890 jContentPane
.add(getJSplitPane(), null);
1892 return jContentPane
;
1896 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1898 * Override actionPerformed to listen all actions
1901 public void actionPerformed(ActionEvent arg0
) {
1903 // Operations of Menu
1905 if (arg0
.getSource() == this.jMenuItemFileNew
) {
1909 if (arg0
.getSource() == this.jMenuItemFileOpen
) {
1913 if (arg0
.getSource() == this.jMenuItemFileClose
) {
1917 if (arg0
.getSource() == this.jMenuItemFileCloseAll
) {
1920 this.makeEmptyTree();
1923 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1927 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1931 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1935 if (arg0
.getSource() == this.jMenuItemFileRefresh
) {
1936 if (this.closeAll() == 0) {
1938 this.makeEmptyTree();
1942 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1946 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1950 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1951 this.findProtocol();
1954 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1958 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1962 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1963 this.findLibraryClass();
1966 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1967 this.findLibraryInstance();
1970 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1971 configBuildPreferences();
1974 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1975 this.changeWorkspace();
1978 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1982 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1986 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1990 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1994 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1998 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1999 this.setupToolChainConfiguration();
2002 if (arg0
.getSource() == this.jMenuItemToolsGenerateGuidsXref
) {
2003 this.generateGuidsXref();
2006 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
2007 About a
= new About(this, true);
2008 int result
= a
.showDialog();
2009 if (result
== DataType
.RETURN_TYPE_OK
) {
2016 Create an empty tree if no file is open
2019 private void makeEmptyTree() {
2023 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, false, null, null);
2026 // Make Module Description
2028 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE_DESCRIPTION
,
2029 false, null, dmtnRoot
);
2032 // First add package
2034 if (GlobalData
.vPackageList
.size() > 0) {
2035 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2036 IDefaultMutableTreeNode dmtnModulePackage
= null;
2037 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2038 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2040 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
2041 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
2042 GlobalData
.vPackageList
.elementAt(index
),
2043 this.dmtnModuleDescription
);
2044 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2045 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
2046 false, GlobalData
.vPackageList
.elementAt(index
),
2047 this.dmtnModuleDescription
);
2048 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
2049 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2050 false, GlobalData
.vPackageList
.elementAt(index
),
2051 this.dmtnModuleDescription
);
2053 // And then add each module in its package
2055 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
2056 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2057 if (vModule
.get(indexJ
).isLibrary()) {
2058 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2059 IDefaultMutableTreeNode
.MODULE
, false,
2060 vModule
.get(indexJ
),
2061 this.dmtnModuleDescription
));
2063 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2064 IDefaultMutableTreeNode
.MODULE
, false,
2065 vModule
.get(indexJ
),
2066 this.dmtnModuleDescription
));
2069 if (dmtnModulePackageModule
.getChildCount() > 0) {
2070 dmtnModulePackage
.add(dmtnModulePackageModule
);
2072 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2073 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
2076 dmtnModuleDescription
.add(dmtnModulePackage
);
2081 // Make Package Description
2083 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
,
2084 false, null, this.dmtnRoot
);
2085 if (GlobalData
.vPackageList
.size() > 0) {
2086 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2087 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
2089 IDefaultMutableTreeNode
.PACKAGE
, false,
2090 GlobalData
.vPackageList
.elementAt(index
),
2091 this.dmtnPackageDescription
));
2096 // Make Platform Description
2098 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms",
2099 IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
, false,
2100 null, this.dmtnRoot
);
2101 if (GlobalData
.vPlatformList
.size() > 0) {
2102 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
2103 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
2105 IDefaultMutableTreeNode
.PLATFORM
, false,
2106 GlobalData
.vPlatformList
.elementAt(index
),
2107 this.dmtnPlatformDescription
));
2112 // Add sub nodes to root node
2114 dmtnRoot
.add(dmtnModuleDescription
);
2115 dmtnRoot
.add(dmtnPackageDescription
);
2116 dmtnRoot
.add(dmtnPlatformDescription
);
2117 iTree
= new ITree(dmtnRoot
);
2118 iTree
.addMouseListener(this);
2119 iTree
.addKeyListener(this);
2120 jScrollPaneTree
.setViewportView(iTree
);
2124 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2126 * Override windowClosing to popup warning message to confirm quit
2129 public void windowClosing(WindowEvent arg0
) {
2134 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2136 * Override mouseClicked to check if need display popup menu
2139 public void mouseClicked(MouseEvent arg0
) {
2141 // When double click
2143 if (arg0
.getClickCount() == 2) {
2144 doubleClickModuleTreeNode();
2148 public void mouseEntered(MouseEvent arg0
) {
2149 // TODO Auto-generated method stub
2152 public void mouseExited(MouseEvent arg0
) {
2153 // TODO Auto-generated method stub
2156 public void mousePressed(MouseEvent arg0
) {
2157 // TODO Auto-generated method stub
2160 public void mouseReleased(MouseEvent arg0
) {
2161 // TODO Auto-generated method stub
2165 Remove all Internal Frame of Module Desktop Pane
2168 private void cleanDesktopPaneModule() {
2169 if (jDesktopPaneModule
!= null) {
2170 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2171 for (int index
= 0; index
< iif
.length
; index
++) {
2172 iif
[index
].dispose();
2178 Remove all Internal Frame of package Desktop Pane
2181 private void cleanDesktopPanePackage() {
2182 if (jDesktopPanePlatform
!= null) {
2183 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2184 for (int index
= 0; index
< iif
.length
; index
++) {
2185 iif
[index
].dispose();
2191 Remove all Internal Frame of platform Desktop Pane
2194 private void cleanDesktopPanePlatform() {
2195 if (jDesktopPanePlatform
!= null) {
2196 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2197 for (int index
= 0; index
< iif
.length
; index
++) {
2198 iif
[index
].dispose();
2204 Remove all Internal Frame of all Desktop Panes
2207 private void cleanDesktopPane() {
2208 cleanDesktopPaneModule();
2209 cleanDesktopPanePackage();
2210 cleanDesktopPanePlatform();
2214 Set file filter as input ext
2220 private int getNewFilePath(String ext
) {
2221 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2222 fc
.setAcceptAllFileFilterUsed(false);
2223 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2224 return fc
.showSaveDialog(new JPanel());
2228 Add a module to tree
2230 @param mid The module node to be added
2233 private void addModuleToTree(ModuleIdentification mid
) {
2235 // Add new MsaHeader node to the tree
2237 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
,
2238 false, mid
, this.dmtnModuleDescription
);
2240 // First find the module belongs to which package
2242 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2243 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2245 // To check if has module node or library node
2247 IDefaultMutableTreeNode parentModuleNode
= null;
2248 IDefaultMutableTreeNode parentLibraryNode
= null;
2249 boolean hasModule
= false;
2250 boolean hasLibrary
= false;
2251 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2252 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2253 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2255 parentLibraryNode
= iNode
;
2257 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2259 parentModuleNode
= iNode
;
2266 if (!mid
.isLibrary()) {
2268 // Create parent node first if has no parent node
2271 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2272 false, mid
.getPackageId(), this.dmtnModuleDescription
);
2273 iTree
.addNode(packageNode
, parentModuleNode
);
2276 iTree
.addNode(parentModuleNode
, node
);
2282 if (mid
.isLibrary()) {
2284 // Create parent node first if has no parent node
2287 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2288 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2289 mid
.getPackageId(), this.dmtnModuleDescription
);
2290 iTree
.addNode(packageNode
, parentLibraryNode
);
2293 iTree
.addNode(parentLibraryNode
, node
);
2300 @param path input file path
2303 private void openModule(String path
, IDefaultMutableTreeNode belongNode
) {
2304 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2307 // The module is not in existing packages
2309 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2314 // Make the node selected
2316 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MODULE
)));
2319 // Update opening Module list information
2321 if (!iTree
.getSelectNode().isOpening()) {
2323 // Insert sub node of module
2325 insertModuleTreeNode(id
, belongNode
);
2326 iTree
.getSelectNode().setOpening(true);
2329 // Update opening module list
2331 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2332 Set
<TreePath
> temp
= GlobalData
.openingModuleList
.getTreePathById(id
);
2333 temp
.add(iTree
.getSelectionPath());
2334 GlobalData
.openingModuleList
.setTreePathById(id
, temp
);
2337 // Select msa header node and show it in editor panel
2340 .setSelectionPath(iTree
2341 .getPathOfNode(iTree
2342 .getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MSA_HEADER
)));
2343 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2344 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2350 @param path input file path
2353 private void openPackage(String path
) {
2354 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2357 // The package is not in current workspace
2359 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2364 // Make the node selected
2366 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2367 IDefaultMutableTreeNode
.PACKAGE
)));
2369 // Update opening package list information
2371 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2373 // Insert sub node of module
2375 insertPackageTreeNode(id
);
2376 iTree
.getSelectNode().setOpening(true);
2379 // Update opening module list
2381 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2382 Set
<TreePath
> temp
= GlobalData
.openingPackageList
.getTreePathById(id
);
2383 temp
.add(iTree
.getSelectionPath());
2384 GlobalData
.openingPackageList
.setTreePathById(id
, temp
);
2387 // Show spd header in editor panel
2389 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2390 IDefaultMutableTreeNode
.SPD_HEADER
)));
2391 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2392 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2398 @param path input file path
2401 private void openPlatform(String path
) {
2402 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2405 // The platform is not in current workspace
2407 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2412 // Make the node selected
2414 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2415 IDefaultMutableTreeNode
.PLATFORM
)));
2417 // Update opening package list information
2419 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2421 // Insert sub node of module
2423 insertPlatformTreeNode(id
);
2424 iTree
.getSelectNode().setOpening(true);
2427 // Update opening module list
2429 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2430 Set
<TreePath
> temp
= GlobalData
.openingPlatformList
.getTreePathById(id
);
2431 temp
.add(iTree
.getSelectionPath());
2432 GlobalData
.openingPlatformList
.setTreePathById(id
, temp
);
2435 // Show fpd header in editor panel
2437 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2438 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2439 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2440 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2441 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2448 private void saveModule(int index
) {
2449 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2451 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2456 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2457 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2458 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2459 } catch (Exception e
) {
2460 Log
.wrn("Save Module", e
.getMessage());
2461 Log
.err("Save Module", e
.getMessage());
2469 private void savePackage(int index
) {
2470 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2472 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2477 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2478 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2479 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2480 } catch (Exception e
) {
2481 Log
.wrn("Save Package", e
.getMessage());
2482 Log
.err("Save Package", e
.getMessage());
2490 private void savePlatform(int index
) {
2491 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2493 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2498 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2499 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2500 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2501 } catch (Exception e
) {
2502 Log
.wrn("Save Package", e
.getMessage());
2503 Log
.err("Save Package", e
.getMessage());
2507 public void componentResized(ComponentEvent arg0
) {
2508 if (this.jSplitPane
!= null) {
2509 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2510 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2511 this.jSplitPane
.validate();
2512 resizeDesktopPanel();
2517 Resize JDesktopPanel
2520 private void resizeDesktopPanel() {
2521 resizeDesktopPanel(this.jDesktopPaneModule
);
2522 resizeDesktopPanel(this.jDesktopPanePackage
);
2523 resizeDesktopPanel(this.jDesktopPanePlatform
);
2527 Resize JDesktopPanel
2530 private void resizeDesktopPanel(JDesktopPane jdk
) {
2531 JInternalFrame
[] iif
= jdk
.getAllFrames();
2532 for (int index
= 0; index
< iif
.length
; index
++) {
2533 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2537 private void insertModuleTreeNode(Identification id
, IDefaultMutableTreeNode belongNode
) {
2538 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
,
2540 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
,
2542 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2543 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
,
2546 .addNode(new IDefaultMutableTreeNode("Package Dependencies",
2547 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
, belongNode
));
2548 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
,
2550 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
, belongNode
));
2551 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
, belongNode
));
2552 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
, belongNode
));
2553 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
,
2555 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
,
2557 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
,
2559 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
,
2561 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
,
2563 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
, belongNode
));
2564 iTree
.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
,
2566 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
, belongNode
));
2567 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.MSA_BUILDOPTIONS
, true, id
, belongNode
));
2570 private void insertPackageTreeNode(Identification id
) {
2571 IDefaultMutableTreeNode idmtTemp
= this.dmtnPackageDescription
;
2572 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
,
2574 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2575 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
,
2577 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
,
2579 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2581 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2582 true, id
, idmtTemp
));
2584 .addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2585 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
, idmtTemp
));
2586 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2587 true, id
, idmtTemp
));
2588 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2589 true, id
, idmtTemp
));
2591 // Add modules in this package
2593 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2594 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2596 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2597 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2599 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2600 false, id
, idmtTemp
);
2602 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PackageIdentification(id
));
2603 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2604 if (vModule
.get(indexJ
).isLibrary()) {
2605 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2606 IDefaultMutableTreeNode
.MODULE
, false,
2607 vModule
.get(indexJ
), idmtTemp
));
2609 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2610 IDefaultMutableTreeNode
.MODULE
, false,
2611 vModule
.get(indexJ
), idmtTemp
));
2614 if (dmtnModulePackageModule
.getChildCount() > 0) {
2615 iTree
.addNode(dmtnModulePackageModule
);
2617 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2618 iTree
.addNode(dmtnModulePackageLibrary
);
2622 private void insertPlatformTreeNode(Identification id
) {
2623 IDefaultMutableTreeNode idmtTemp
= this.dmtnPlatformDescription
;
2624 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2626 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2627 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
, idmtTemp
));
2628 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
,
2630 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2631 true, id
, idmtTemp
));
2632 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2633 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
,
2635 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
,
2639 // Add modules in this platform
2641 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2642 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2644 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2645 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2647 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2648 false, id
, idmtTemp
);
2650 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PlatformIdentification(id
));
2651 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2652 if (vModule
.get(indexJ
).isLibrary()) {
2653 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2654 IDefaultMutableTreeNode
.MODULE
, false,
2655 vModule
.get(indexJ
), idmtTemp
));
2657 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2658 IDefaultMutableTreeNode
.MODULE
, false,
2659 vModule
.get(indexJ
), idmtTemp
));
2662 if (dmtnModulePackageModule
.getChildCount() > 0) {
2663 iTree
.addNode(dmtnModulePackageModule
);
2665 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2666 iTree
.addNode(dmtnModulePackageLibrary
);
2671 Operate when double click a tree node
2674 private void doubleClickModuleTreeNode() {
2675 Identification id
= null;
2676 int intCategory
= -1;
2678 IDefaultMutableTreeNode belongNode
= null;
2682 // Get selected tree node
2684 if (iTree
.getSelectNode() != null) {
2685 id
= iTree
.getSelectNode().getId();
2689 // If id is null, return directly
2695 intCategory
= iTree
.getSelectCategory();
2696 belongNode
= iTree
.getSelectNode().getBelongNode();
2699 // If the node is not opened yet
2700 // Insert top level elements first
2702 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2703 path
= iTree
.getSelectNode().getId().getPath();
2704 openModule(path
, belongNode
);
2707 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2708 path
= iTree
.getSelectNode().getId().getPath();
2712 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2713 path
= iTree
.getSelectNode().getId().getPath();
2719 // Show editor panel
2721 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2722 showModuleElement(intCategory
,
2723 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2724 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2725 .findIndexOfListById(new ModuleIdentification(
2728 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2729 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2730 showPackageElement(intCategory
,
2731 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2732 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2733 .findIndexOfListById(new PackageIdentification(
2736 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2737 showPlatformElement(
2739 GlobalData
.openingPlatformList
2740 .getOpeningPlatformById(new PlatformIdentification(id
)));
2741 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2742 .findIndexOfListById(new PlatformIdentification(
2745 } catch (Exception e
) {
2746 Log
.err("double click category: " + intCategory
);
2747 Log
.err("double click belong node: " + belongNode
.toString());
2748 Log
.err("double click id path: " + id
);
2749 Log
.err("double click exception: " + e
.getMessage());
2754 Show content of editor panel via selected element
2760 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2761 this.cleanDesktopPanePlatform();
2763 switch (elementType
) {
2764 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2765 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2766 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2768 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2769 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2770 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2772 case IDefaultMutableTreeNode
.FPD_FLASH
:
2773 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2774 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2776 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2777 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2778 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2780 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2781 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2782 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2784 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2785 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2786 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2789 this.jTabbedPaneEditor
.setSelectedIndex(2);
2790 resizeDesktopPanel();
2794 Show content of editor panel via selected element
2800 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2801 this.cleanDesktopPanePackage();
2802 Tools
.dirForNewSpd
= spd
.getId().getPath();
2803 switch (elementType
) {
2804 case IDefaultMutableTreeNode
.SPD_HEADER
:
2805 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2806 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2808 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2809 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
, this);
2810 getJDesktopPanePackage().add(frmSlcd
, 1);
2812 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2813 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
, this);
2814 getJDesktopPanePackage().add(frmSmf
, 1);
2816 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2817 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
, this);
2818 getJDesktopPanePackage().add(frmSph
, 1);
2820 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2821 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
, this);
2822 getJDesktopPanePackage().add(frmSgd
, 1);
2824 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2825 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
, this);
2826 getJDesktopPanePackage().add(frmSprod
, 1);
2828 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2829 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
, this);
2830 getJDesktopPanePackage().add(frmSppid
, 1);
2832 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2833 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
, this);
2834 getJDesktopPanePackage().add(frmSpcdd
, 1);
2837 this.jTabbedPaneEditor
.setSelectedIndex(1);
2838 resizeDesktopPanel();
2842 Show content of editor panel via selected element
2848 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2849 this.cleanDesktopPaneModule();
2850 switch (elementType
) {
2851 case IDefaultMutableTreeNode
.MSA_HEADER
:
2852 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2853 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2855 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2856 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
, this);
2857 getJDesktopPaneModule().add(frmMlcd
, 1);
2859 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2860 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
, this);
2861 getJDesktopPaneModule().add(frmMpd
, 1);
2863 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2864 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
, this);
2865 getJDesktopPaneModule().add(frmMsf
, 1);
2867 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2868 ModuleProtocols frmMp
= new ModuleProtocols(msa
, this);
2869 getJDesktopPaneModule().add(frmMp
, 1);
2871 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2872 ModuleEvents frmMe
= new ModuleEvents(msa
, this);
2873 getJDesktopPaneModule().add(frmMe
, 1);
2875 case IDefaultMutableTreeNode
.MSA_HOBS
:
2876 ModuleHobs frmMh
= new ModuleHobs(msa
, this);
2877 getJDesktopPaneModule().add(frmMh
, 1);
2879 case IDefaultMutableTreeNode
.MSA_PPIS
:
2880 ModulePpis frmMpp
= new ModulePpis(msa
, this);
2881 getJDesktopPaneModule().add(frmMpp
, 1);
2883 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2884 ModuleVariables frmMv
= new ModuleVariables(msa
, this);
2885 getJDesktopPaneModule().add(frmMv
, 1);
2887 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2888 ModuleBootModes frmMbm
= new ModuleBootModes(msa
, this);
2889 getJDesktopPaneModule().add(frmMbm
, 1);
2891 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2892 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
, this);
2893 getJDesktopPaneModule().add(frmMst
, 1);
2895 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2896 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
, this);
2897 getJDesktopPaneModule().add(frmMdh
, 1);
2899 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2900 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
, this);
2901 getJDesktopPaneModule().add(frmMf
, 1);
2903 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2904 ModuleGuids frmGuid
= new ModuleGuids(msa
, this);
2905 getJDesktopPaneModule().add(frmGuid
, 1);
2907 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2908 ModuleExterns frmMex
= new ModuleExterns(msa
, this);
2909 getJDesktopPaneModule().add(frmMex
, 1);
2911 case IDefaultMutableTreeNode
.MSA_PCDS
:
2912 ModulePCDs frmPcd
= new ModulePCDs(msa
, this);
2913 getJDesktopPaneModule().add(frmPcd
, 1);
2915 case IDefaultMutableTreeNode
.MSA_BUILDOPTIONS
:
2916 ModuleBuildOptions frmMbo
= new ModuleBuildOptions(msa
, this);
2917 getJDesktopPaneModule().add(frmMbo
, 1);
2920 this.jTabbedPaneEditor
.setSelectedIndex(0);
2921 resizeDesktopPanel();
2925 // Define operations of menu
2931 private void fileNew() {
2934 // Selece new file type
2936 NewFileChooser nfc
= new NewFileChooser(this, true);
2937 result
= nfc
.showDialog();
2939 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2942 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2946 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2947 result
= smb
.showDialog();
2949 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2953 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2954 ModuleIdentification mid
= smb
.getMid();
2957 // Update package of workspace first
2959 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2960 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2961 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2964 wt
.addModuleToPackage(mid
, psa
);
2965 } catch (IOException e
) {
2966 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2967 Log
.err("Update MsaFiles in Package", e
.getMessage());
2969 } catch (XmlException e
) {
2970 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2971 Log
.err("Update MsaFiles in Package", e
.getMessage());
2973 } catch (Exception e
) {
2974 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2975 Log
.err("Update MsaFiles in Package", e
.getMessage());
2980 // Update Global Data
2982 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2983 GlobalData
.vModuleList
.addElement(mid
);
2986 // Create new node on the tree
2988 addModuleToTree(mid
);
2993 this.openModule(mid
.getPath(), this.dmtnModuleDescription
);
2996 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3000 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
3001 result
= smb
.showDialog();
3003 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3007 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3008 PackageIdentification pid
= smb
.getPid();
3011 wt
.addPackageToDatabase(smb
.getPid());
3012 } catch (Exception e
) {
3013 Log
.err("addPackageToDatabase", e
.getMessage());
3017 // Update Global Data
3019 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
3020 GlobalData
.vPackageList
.addElement(pid
);
3023 // Add to Module Description node
3025 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
3026 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
3027 false, pid
, this.dmtnModuleDescription
);
3029 iTree
.addNode(dmtnModuleDescription
, node
);
3032 // Add new SpdHeader node to the tree
3034 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
,
3035 this.dmtnPackageDescription
);
3036 iTree
.addNode(dmtnPackageDescription
, node
);
3038 this.openPackage(pid
.getPath());
3041 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3043 // To new a platform
3045 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
3046 result
= smb
.showDialog();
3048 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3052 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3053 PlatformIdentification fid
= smb
.getFid();
3056 wt
.addPlatformToDatabase(fid
);
3057 } catch (Exception e
) {
3058 Log
.err("addPlatformToDatabase", e
.getMessage());
3062 // Update global data
3064 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
3065 GlobalData
.vPlatformList
.addElement(fid
);
3067 // Add new SpdHeader node to the tree
3069 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
3070 IDefaultMutableTreeNode
.PLATFORM
, true,
3071 fid
, this.dmtnPlatformDescription
);
3072 iTree
.addNode(dmtnPlatformDescription
, node
);
3073 this.openPlatform(fid
.getPath());
3083 private void open() {
3084 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
3085 fc
.setAcceptAllFileFilterUsed(false);
3086 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
3087 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
3088 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
3089 fc
.addChoosableFileFilter(iffM
);
3090 fc
.addChoosableFileFilter(iffP
);
3091 fc
.addChoosableFileFilter(iffF
);
3092 fc
.setFileFilter(iffM
);
3094 int result
= fc
.showOpenDialog(new JPanel());
3096 if (result
== JFileChooser
.APPROVE_OPTION
) {
3097 String path
= fc
.getSelectedFile().getPath();
3098 String match
= path
.substring(path
.length() - 4);
3099 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
3100 openModule(path
, this.dmtnModuleDescription
);
3101 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
3103 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
3113 private void close() {
3114 TreePath item
= null;
3115 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3117 // Current is module
3120 if (this.currentOpeningModuleIndex
> -1) {
3121 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
3122 int result
= showSaveDialog();
3123 if (result
== JOptionPane
.YES_OPTION
) {
3126 if (result
== JOptionPane
.NO_OPTION
) {
3129 if (result
== JOptionPane
.CANCEL_OPTION
) {
3135 // Remove all tree paths for the module
3137 Set
<TreePath
> openingTreePaths
= GlobalData
.openingModuleList
3138 .getTreePathByIndex(currentOpeningModuleIndex
);
3139 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3140 while (openingTreePathsIter
.hasNext()) {
3141 item
= openingTreePathsIter
.next();
3142 iTree
.getNodeByPath(item
).setOpening(false);
3143 iTree
.removeNodeChildrenByPath(item
);
3146 GlobalData
.openingModuleList
.reload(this.currentOpeningModuleIndex
);
3147 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
3148 GlobalData
.openingModuleList
.setModuleSaved(this.currentOpeningModuleIndex
, true);
3150 this.cleanDesktopPaneModule();
3151 this.currentOpeningModuleIndex
= -1;
3155 // Current is package
3158 if (this.currentOpeningPackageIndex
> -1) {
3159 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
3160 int result
= showSaveDialog();
3161 if (result
== JOptionPane
.YES_OPTION
) {
3164 if (result
== JOptionPane
.NO_OPTION
) {
3167 if (result
== JOptionPane
.CANCEL_OPTION
) {
3173 // Remove all tree paths for the module
3175 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPackageList
3176 .getTreePathByIndex(currentOpeningPackageIndex
);
3177 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3178 while (openingTreePathsIter
.hasNext()) {
3179 item
= openingTreePathsIter
.next();
3180 iTree
.getNodeByPath(item
).setOpening(false);
3181 iTree
.removeNodeChildrenByPath(item
);
3184 GlobalData
.openingPackageList
.reload(this.currentOpeningPackageIndex
);
3185 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
3186 GlobalData
.openingPackageList
.setPackageSaved(this.currentOpeningPackageIndex
, true);
3187 this.cleanDesktopPanePackage();
3188 this.currentOpeningPackageIndex
= -1;
3192 // Current is platform
3195 if (this.currentOpeningPlatformIndex
> -1) {
3196 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
3197 int result
= showSaveDialog();
3198 if (result
== JOptionPane
.YES_OPTION
) {
3201 if (result
== JOptionPane
.NO_OPTION
) {
3204 if (result
== JOptionPane
.CANCEL_OPTION
) {
3210 // Remove all tree paths for the module
3212 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPlatformList
3213 .getTreePathByIndex(currentOpeningPlatformIndex
);
3214 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3215 while (openingTreePathsIter
.hasNext()) {
3216 item
= openingTreePathsIter
.next();
3217 iTree
.getNodeByPath(item
).setOpening(false);
3218 iTree
.removeNodeChildrenByPath(item
);
3221 GlobalData
.openingPlatformList
.reload(this.currentOpeningPlatformIndex
);
3222 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
3223 GlobalData
.openingPlatformList
.setPlatformSaved(this.currentOpeningPlatformIndex
, true);
3224 this.cleanDesktopPanePlatform();
3225 this.currentOpeningPlatformIndex
= -1;
3232 Close all opening files and clean all showing internal frame
3235 private int closeAll() {
3236 int result
= JOptionPane
.NO_OPTION
;
3237 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3238 || !GlobalData
.openingPlatformList
.isSaved()) {
3239 result
= showSaveDialog();
3241 if (result
== JOptionPane
.YES_OPTION
) {
3244 if (result
== JOptionPane
.NO_OPTION
) {
3249 if (result
== JOptionPane
.CANCEL_OPTION
|| result
== JOptionPane
.CLOSED_OPTION
) {
3252 this.cleanDesktopPane();
3253 GlobalData
.openingModuleList
.closeAll();
3254 GlobalData
.openingPackageList
.closeAll();
3255 GlobalData
.openingPlatformList
.closeAll();
3261 Refresh all global data from disk to memory
3264 private void refresh() {
3269 Save currentModule when press button OK
3272 private void save() {
3273 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3275 if (this.currentOpeningModuleIndex
> -1) {
3276 saveModule(this.currentOpeningModuleIndex
);
3280 if (this.currentOpeningPackageIndex
> -1) {
3281 savePackage(this.currentOpeningPackageIndex
);
3285 if (this.currentOpeningPlatformIndex
> -1) {
3286 savePlatform(this.currentOpeningPlatformIndex
);
3292 private void saveAs() {
3296 private void saveAll() {
3300 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3301 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3307 // Save all packages
3309 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3310 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3316 // Save all platforms
3318 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3319 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3320 savePlatform(index
);
3326 To save changed items before exit.
3329 private void exit() {
3330 int result
= JOptionPane
.NO_OPTION
;
3331 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3332 || !GlobalData
.openingPlatformList
.isSaved()) {
3333 result
= showSaveDialog();
3335 if (result
== JOptionPane
.YES_OPTION
) {
3337 } else if (result
== JOptionPane
.NO_OPTION
) {
3339 } else if (result
== JOptionPane
.CANCEL_OPTION
|| result
== JOptionPane
.CLOSED_OPTION
) {
3347 To find all defined PPIs in workspace
3350 private void findPpi() {
3351 FindResult fr
= FindResult
.getInstance("PPI");
3352 fr
.setVisible(true);
3356 To find all defined PROTOCOLs in workspace
3359 private void findProtocol() {
3360 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3361 fr
.setVisible(true);
3365 To find all defined PROTOCOLs in workspace
3368 private void findGuid() {
3369 FindResult fr
= FindResult
.getInstance("GUID");
3370 fr
.setVisible(true);
3374 To find all defined PROTOCOLs in workspace
3377 private void findPcd() {
3378 FindResult fr
= FindResult
.getInstance("PCD");
3379 fr
.setVisible(true);
3383 To find all defined Library Classes in workspace
3386 private void findLibraryClass() {
3387 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3388 fr
.setVisible(true);
3392 To find all defined Library Instances in workspace
3395 private void findLibraryInstance() {
3396 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3397 fr
.setVisible(true);
3401 Switch current workspace to others
3404 private void changeWorkspace() {
3405 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3406 int result
= sw
.showDialog();
3407 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3409 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3411 // Reinit whole window
3414 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3415 + Workspace
.getCurrentWorkspace() + "]");
3420 this.makeEmptyTree();
3426 To create a Far file from current workspace
3429 private void createFar() {
3430 CreateStepOne cso
= new CreateStepOne(this, true);
3431 int result
= cso
.showDialog();
3432 if (result
== DataType
.RETURN_TYPE_OK
) {
3433 String strReturn
= "Far Creation Completed!";
3434 JOptionPane
.showConfirmDialog(this, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3435 JOptionPane
.INFORMATION_MESSAGE
);
3441 To install a Far file to current workspace
3444 private void installFar() {
3445 InstallStepOne iso
= new InstallStepOne(this, true);
3446 int result
= iso
.showDialog();
3447 if (result
== DataType
.RETURN_TYPE_OK
) {
3448 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3449 JOptionPane
.showConfirmDialog(this, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3450 JOptionPane
.INFORMATION_MESSAGE
);
3453 this.makeEmptyTree();
3459 To remove a Far's items from current workspace
3462 private void removeFar() {
3463 DeleteStepOne dso
= new DeleteStepOne(this, true);
3464 int result
= dso
.showDialog();
3465 if (result
== DataType
.RETURN_TYPE_OK
) {
3466 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3467 JOptionPane
.showConfirmDialog(this, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3468 JOptionPane
.INFORMATION_MESSAGE
);
3471 this.makeEmptyTree();
3477 To update an existing Far file
3480 private void updateFar() {
3481 UpdateStepOne uso
= new UpdateStepOne(this, true);
3482 int result
= uso
.showDialog();
3483 if (result
== DataType
.RETURN_TYPE_OK
) {
3484 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3485 JOptionPane
.showConfirmDialog(this, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3486 JOptionPane
.INFORMATION_MESSAGE
);
3489 this.makeEmptyTree();
3495 Show Tool Chain Configuration Dialog to setup Tool Chain
3498 private void setupToolChainConfiguration() {
3499 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3503 private void configBuildPreferences() {
3504 Preferences bt
= Preferences
.getInstance();
3512 private void cloneItem() {
3516 // Check if there is any item can be cloned
3518 if (iTree
.getSelectionPath() == null) {
3519 Log
.wrn("Clone", "Please select a target to clone!");
3522 int category
= iTree
.getSelectCategory();
3523 Identification id
= iTree
.getSelectNode().getId();
3525 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3526 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3529 if ((category
== IDefaultMutableTreeNode
.MODULE
)
3530 || (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
)) {
3531 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3533 if ((category
== IDefaultMutableTreeNode
.PACKAGE
)
3534 || (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3535 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3537 if ((category
== IDefaultMutableTreeNode
.PLATFORM
) || (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3538 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3541 Clone c
= new Clone(this, true, mode
, id
);
3542 int result
= c
.showDialog();
3544 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3547 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3548 Tools
.showInformationMessage("Workspace Clone Completed!");
3550 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3551 Tools
.showInformationMessage("Module Clone Completed!");
3552 addModuleToTree(c
.getMid());
3554 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3555 Tools
.showInformationMessage("Package Clone Completed!");
3557 // Add new SpdHeader node to the tree
3559 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3560 IDefaultMutableTreeNode
.PACKAGE
, false,
3561 GlobalData
.vPackageList
.lastElement(),
3562 this.dmtnPackageDescription
);
3563 iTree
.addNode(this.dmtnPackageDescription
, node
);
3565 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3566 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3568 // Add new SpdHeader node to the tree
3570 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3571 GlobalData
.vPlatformList
.lastElement().getName(),
3572 IDefaultMutableTreeNode
.PLATFORM
, false,
3573 GlobalData
.vPlatformList
.lastElement(),
3574 this.dmtnPlatformDescription
);
3575 iTree
.addNode(this.dmtnPlatformDescription
, node
);
3577 if (result
== DataType
.RETURN_TYPE_OK
) {
3582 public void valueChanged(TreeSelectionEvent arg0
) {
3583 // TODO Auto-generated method stub
3587 public void menuCanceled(MenuEvent arg0
) {
3588 // TODO Auto-generated method stub
3592 public void menuDeselected(MenuEvent arg0
) {
3593 // TODO Auto-generated method stub
3597 public void menuSelected(MenuEvent arg0
) {
3598 if (arg0
.getSource() == jMenuFile
) {
3600 // Enable close/close all if some files are opened
3602 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3605 .setEnabled(GlobalData
.openingModuleList
3606 .getModuleOpen(this.currentOpeningModuleIndex
));
3608 .setEnabled(!GlobalData
.openingModuleList
3609 .getModuleSaved(this.currentOpeningModuleIndex
));
3613 .setEnabled(GlobalData
.openingPackageList
3614 .getPackageOpen(this.currentOpeningPackageIndex
));
3616 .setEnabled(!GlobalData
.openingPackageList
3617 .getPackageSaved(this.currentOpeningPackageIndex
));
3621 .setEnabled(GlobalData
.openingPlatformList
3622 .getPlatformOpen(this.currentOpeningPlatformIndex
));
3624 .setEnabled(!GlobalData
.openingPlatformList
3625 .getPlatformSaved(this.currentOpeningPlatformIndex
));
3628 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3629 || GlobalData
.openingPackageList
.isOpen()
3630 || GlobalData
.openingPlatformList
.isOpen());
3633 // Enable save/save all if some files are changed
3635 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3636 || !GlobalData
.openingPackageList
.isSaved()
3637 || !GlobalData
.openingPlatformList
.isSaved());
3640 if (arg0
.getSource() == jMenuTools
) {
3642 // Enable clone when select some items
3644 if (iTree
.getSelectionPath() == null) {
3645 jMenuItemToolsClone
.setEnabled(false);
3647 int category
= iTree
.getSelectCategory();
3648 if (category
== IDefaultMutableTreeNode
.MODULE_DESCRIPTION
3649 || category
== IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
3650 || category
== IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
3651 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3652 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3653 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3654 jMenuItemToolsClone
.setEnabled(false);
3656 jMenuItemToolsClone
.setEnabled(true);
3662 public void keyTyped(KeyEvent arg0
) {
3663 // TODO Auto-generated method stub
3667 public void keyPressed(KeyEvent arg0
) {
3668 // TODO Auto-generated method stub
3672 public void keyReleased(KeyEvent arg0
) {
3673 if (arg0
.getSource() == this.iTree
) {
3674 if (arg0
.getKeyCode() == KeyEvent
.VK_ENTER
) {
3675 this.doubleClickModuleTreeNode();
3681 Search whole workspace and find all module's name and guid, and save them to a file
3684 private void generateGuidsXref() {
3686 // Init File Chooser
3688 JFileChooser fc
= new JFileChooser();
3689 fc
.setCurrentDirectory(new File(Workspace
.getCurrentWorkspace()));
3690 fc
.setSelectedFile(new File(Workspace
.getCurrentWorkspace() + DataType
.FILE_SEPARATOR
3691 + DataType
.GUIDS_XREF_FILE_NAME
));
3692 fc
.setMultiSelectionEnabled(false);
3695 // Get guids xref and save to file
3697 int result
= fc
.showSaveDialog(new JPanel());
3698 if (result
== JFileChooser
.APPROVE_OPTION
) {
3699 Vector
<String
> v
= wt
.getAllModuleGuidXref();
3701 Log
.wrn("No guids found!!!");
3704 File f
= fc
.getSelectedFile();
3708 } catch (IOException e
) {
3709 Log
.wrn("Fail to create file", e
.getMessage());
3710 Log
.err("Fail to create file when generating guids.xref", e
.getMessage());
3713 FileWriter fw
= null;
3714 BufferedWriter bw
= null;
3716 fw
= new FileWriter(f
);
3717 bw
= new BufferedWriter(fw
);
3718 for (int index
= 0; index
< v
.size(); index
++) {
3719 bw
.write(v
.get(index
));
3726 } catch (IOException e
) {
3727 Log
.wrn("Fail to write file", e
.getMessage());
3728 Log
.err("Fail to write file when generating guids.xref", e
.getMessage());
3732 JOptionPane
.showConfirmDialog(this, "File is created", "Generate guids.xref", JOptionPane
.DEFAULT_OPTION
,
3733 JOptionPane
.INFORMATION_MESSAGE
);
3738 Check if WORKSPACE Environment is valid
3741 private void checkWorkspace() {
3742 switch (Workspace
.checkCurrentWorkspace()) {
3743 case Workspace
.WORKSPACE_VALID
:
3745 case Workspace
.WORKSPACE_NOT_DEFINED
:
3749 "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. "
3750 + DataType
.LINE_SEPARATOR
3751 + DataType
.LINE_SEPARATOR
3753 + DataType
.LINE_SEPARATOR
3754 + "This does not change the System Environment Variable."
3755 + DataType
.LINE_SEPARATOR
3756 + "It only applies to where the Wizard will manage modification and file creations.",
3757 "Error", JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3758 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3759 int result
= sw
.showDialog();
3760 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3763 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3767 case Workspace
.WORKSPACE_NOT_EXIST
:
3768 JOptionPane
.showConfirmDialog(this, "Defined WORKSPACE Is Not Existed", "Error",
3769 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3772 case Workspace
.WORKSPACE_NOT_DIRECTORY
:
3773 JOptionPane
.showConfirmDialog(this, "Defined WORKSPACE Is Not A Directory", "Error",
3774 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3777 case Workspace
.WORKSPACE_NOT_VALID
:
3778 JOptionPane
.showConfirmDialog(this, "WORKSPACE Environment Variable Is Not Valid", "Error",
3779 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3782 case Workspace
.WORKSPACE_NO_TARGET_FILE
:
3783 JOptionPane
.showConfirmDialog(this, "Target.txt File Is Not Existed", "Error", JOptionPane
.DEFAULT_OPTION
,
3784 JOptionPane
.ERROR_MESSAGE
);