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
.event
.MenuEvent
;
48 import javax
.swing
.event
.MenuListener
;
49 import javax
.swing
.event
.TreeSelectionEvent
;
50 import javax
.swing
.event
.TreeSelectionListener
;
51 import javax
.swing
.tree
.TreePath
;
53 import org
.apache
.xmlbeans
.XmlException
;
54 import org
.tianocore
.PackageSurfaceAreaDocument
;
55 import org
.tianocore
.frameworkwizard
.common
.DataType
;
56 import org
.tianocore
.frameworkwizard
.common
.GlobalData
;
57 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
58 import org
.tianocore
.frameworkwizard
.common
.Log
;
59 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
60 import org
.tianocore
.frameworkwizard
.common
.Tools
;
61 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
62 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
63 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
64 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
65 import org
.tianocore
.frameworkwizard
.common
.find
.FindResult
;
66 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
67 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
68 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
69 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
70 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
71 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
72 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
73 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
74 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
83 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
84 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
85 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
86 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
87 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
88 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
89 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
90 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
91 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
92 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
93 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
94 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
95 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
96 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
97 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
98 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
99 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
100 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
101 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
102 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
103 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
104 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
105 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
106 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
107 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
108 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
109 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
110 import org
.tianocore
.frameworkwizard
.toolchain
.Preferences
;
113 The class is used to show main GUI of FrameworkWizard
114 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
117 public class FrameworkWizardUI
extends IFrame
implements KeyListener
, MouseListener
, TreeSelectionListener
,
120 /// Define class Serial Version UID
122 private static final long serialVersionUID
= -7103240960573031772L;
125 /// Used to record current operation target
127 private int currentOpeningModuleIndex
= -1;
129 private int currentOpeningPackageIndex
= -1;
131 private int currentOpeningPlatformIndex
= -1;
134 /// Used to generate tree structure
136 private IDefaultMutableTreeNode dmtnRoot
= null;
138 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
140 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
142 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
147 private JPanel jContentPane
= null;
149 private JMenuBar jMenuBar
= null;
151 private JMenu jMenuFile
= null;
153 private JMenuItem jMenuItemFileNew
= null;
155 private JMenuItem jMenuItemFileRefresh
= null;
157 private JMenuItem jMenuItemFileSaveAs
= null;
159 private JMenuItem jMenuItemFileExit
= null;
161 private JMenu jMenuEdit
= null;
163 private JDesktopPane jDesktopPaneModule
= null;
165 private JDesktopPane jDesktopPanePackage
= null;
167 private JDesktopPane jDesktopPanePlatform
= null;
169 private JTabbedPane jTabbedPaneTree
= null;
171 private JTabbedPane jTabbedPaneEditor
= null;
173 private IDesktopManager iDesktopManager
= new IDesktopManager();
175 private JScrollPane jScrollPaneTree
= null;
177 private ITree iTree
= null;
179 private JMenu jMenuHelp
= null;
181 private JMenuItem jMenuItemHelpAbout
= null;
183 private JMenuItem jMenuItemEditDelete
= null;
185 private WorkspaceTools wt
= new WorkspaceTools();
187 private JMenuItem jMenuItemFileSave
= null;
189 private JMenuItem jMenuItemFileClose
= null;
191 private JMenu jMenuTools
= null;
193 private JMenu jMenuWindow
= null;
195 private JPanel jPanelOperation
= null;
197 private JButton jButtonOk
= null;
199 private JButton jButtonCancel
= null;
201 private JMenuItem jMenuItemFileOpen
= null;
203 private JMenuItem jMenuItemFileCloseAll
= null;
205 private JMenuItem jMenuItemFileSaveAll
= null;
207 private JMenuItem jMenuItemFilePageSetup
= null;
209 private JMenuItem jMenuItemFilePrint
= null;
211 private JMenuItem jMenuItemFileImport
= null;
213 private JMenuItem jMenuItemFileProperties
= null;
215 private JMenu jMenuFileRecentFiles
= null;
217 private JSplitPane jSplitPane
= null;
219 private JMenuItem jMenuItemEditUndo
= null;
221 private JMenuItem jMenuItemEditRedo
= null;
223 private JMenuItem jMenuItemEditCut
= null;
225 private JMenuItem jMenuItemEditCopy
= null;
227 private JMenuItem jMenuItemEditPaste
= null;
229 private JMenuItem jMenuItemEditSelectAll
= null;
231 private JMenuItem jMenuItemEditFindNext
= null;
233 private JMenu jMenuView
= null;
235 private JMenu jMenuViewToolbars
= null;
237 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
239 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
241 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
243 private JMenuItem jMenuItemViewStandard
= null;
245 private JMenuItem jMenuItemViewAdvanced
= null;
247 private JMenu jMenuProject
= null;
249 private JMenuItem jMenuItemProjectAdmin
= null;
251 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
253 private JMenuItem jMenuItemToolsBuildPreferences
= null;
255 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
257 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
259 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
261 private JMenuItem jMenuItemToolsClone
= null;
263 private JMenuItem jMenuItemToolsCodeScan
= null;
265 private JMenuItem jMenuItemWindowDisplaySide
= null;
267 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
269 private JMenuItem jMenuItemViewXML
= null;
271 private JMenuItem jMenuItemWindowTabView
= null;
273 private JMenuItem jMenuItemWindowSource
= null;
275 private JMenuItem jMenuItemWindowXML
= null;
277 private JMenuItem jMenuItemWindowPreferences
= null;
279 private JMenuItem jMenuItemHelpContents
= null;
281 private JMenuItem jMenuItemHelpIndex
= null;
283 private JMenuItem jMenuItemHelpSearch
= null;
285 private JMenuItem jMenuItemProjectInstallFar
= null;
287 private JMenuItem jMenuItemProjectUpdateFar
= null;
289 private JMenuItem jMenuItemProjectRemoveFar
= null;
291 private JMenuItem jMenuItemProjectCreateFar
= null;
293 private JMenu jMenuEditFind
= null;
295 private JMenuItem jMenuItemEditFindPcd
= null;
297 private JMenuItem jMenuItemEditFindLibraryClass
= null;
299 private JMenuItem jMenuItemEditFindPpi
= null;
301 private JMenuItem jMenuItemEditFindProtocol
= null;
303 private JMenuItem jMenuItemEditFindGuid
= null;
305 private JMenuItem jMenuItemEditFindLibraryInstance
= null;
308 /// A static definition for this class itself
310 private static FrameworkWizardUI fwui
= null;
312 private JMenuItem jMenuItemToolsGenerateGuidsXref
= null;
315 If the class hasn't an instnace, new one.
317 @return FrameworkWizardUI The instance of this class
320 public static FrameworkWizardUI
getInstance() {
322 fwui
= new FrameworkWizardUI();
328 This method initializes jMenuBar
330 @return javax.swing.JMenuBar Main menu bar for the entire GUI
333 private JMenuBar
getjJMenuBar() {
334 if (jMenuBar
== null) {
335 jMenuBar
= new JMenuBar();
336 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
337 jMenuBar
.add(getJMenuFile());
338 jMenuBar
.add(getJMenuEdit());
339 jMenuBar
.add(getJMenuView());
340 jMenuBar
.add(getJMenuProject());
341 jMenuBar
.add(getJMenuTools());
342 jMenuBar
.add(getJMenuWindow());
343 jMenuBar
.add(getJMenuHelp());
349 This method initializes jSplitPane
351 @return javax.swing.JSplitPane
354 private JSplitPane
getJSplitPane() {
355 if (jSplitPane
== null) {
356 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
357 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
358 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
359 jSplitPane
.addComponentListener(this);
365 This method initializes jTabbedPaneEditor
367 @return javax.swing.JTabbedPane
370 private JTabbedPane
getJTabbedPaneEditor() {
371 if (jTabbedPaneEditor
== null) {
372 jTabbedPaneEditor
= new JTabbedPane();
373 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
374 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
375 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
376 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
378 .setMinimumSize(new java
.awt
.Dimension(
379 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
380 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
381 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
382 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
383 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
385 return jTabbedPaneEditor
;
389 This method initializes jTabbedPaneTree
391 @return javax.swing.JTabbedPane
394 private JTabbedPane
getJTabbedPaneTree() {
395 if (jTabbedPaneTree
== null) {
396 jTabbedPaneTree
= new JTabbedPane();
398 .setPreferredSize(new java
.awt
.Dimension(
399 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
400 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
402 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
403 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
404 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
406 return jTabbedPaneTree
;
410 This method initializes jMenuFile
412 @return javax.swing.JMenu jMenuModule
415 private JMenu
getJMenuFile() {
416 if (jMenuFile
== null) {
418 // Set jMenuFile's attributes
420 jMenuFile
= new JMenu();
421 jMenuFile
.setText("File");
422 jMenuFile
.setMnemonic('F');
423 jMenuFile
.addMenuListener(this);
426 // Add sub menu items
428 jMenuFile
.add(getJMenuItemFileNew());
429 jMenuFile
.add(getJMenuItemFileOpen());
430 jMenuFile
.add(getJMenuItemFileClose());
431 jMenuFile
.add(getJMenuItemFileCloseAll());
432 jMenuFile
.addSeparator();
434 jMenuFile
.add(getJMenuFileRecentFiles());
435 jMenuFile
.add(getJMenuItemFileSave());
436 jMenuFile
.add(getJMenuItemFileSaveAs());
437 jMenuFile
.add(getJMenuItemFileSaveAll());
438 jMenuFile
.addSeparator();
440 jMenuFile
.add(getJMenuItemFileRefresh());
441 jMenuFile
.addSeparator();
443 jMenuFile
.add(getJMenuItemFilePageSetup());
444 jMenuFile
.add(getJMenuItemFilePrint());
445 jMenuFile
.add(getJMenuItemFileImport());
446 jMenuFile
.add(getJMenuItemFileProperties());
448 jMenuFile
.add(getJMenuItemFileExit());
454 This method initializes jMenuItemFileSaveAs
456 @return javax.swing.JMenuItem jMenuItemFileSaveAs
459 private JMenuItem
getJMenuItemFileSaveAs() {
460 if (jMenuItemFileSaveAs
== null) {
461 jMenuItemFileSaveAs
= new JMenuItem();
462 jMenuItemFileSaveAs
.setText("Save As...");
463 jMenuItemFileSaveAs
.setMnemonic('a');
464 jMenuItemFileSaveAs
.addActionListener(this);
465 jMenuItemFileSaveAs
.setEnabled(false);
466 jMenuItemFileSaveAs
.setVisible(false);
468 return jMenuItemFileSaveAs
;
472 This method initializes jMenuItemFileRefresh
474 @return javax.swing.JMenuItem jMenuItemFileRefresh
477 private JMenuItem
getJMenuItemFileRefresh() {
478 if (jMenuItemFileRefresh
== null) {
479 jMenuItemFileRefresh
= new JMenuItem();
480 jMenuItemFileRefresh
.setText("Refresh");
481 jMenuItemFileRefresh
.setMnemonic('R');
482 jMenuItemFileRefresh
.addActionListener(this);
483 jMenuItemFileRefresh
.setVisible(true);
485 return jMenuItemFileRefresh
;
489 This method initializes jMenuItemModuleExit
491 @return javax.swing.JMenuItem jMenuItemModuleExit
494 private JMenuItem
getJMenuItemFileExit() {
495 if (jMenuItemFileExit
== null) {
496 jMenuItemFileExit
= new JMenuItem();
497 jMenuItemFileExit
.setText("Exit");
498 jMenuItemFileExit
.setMnemonic('x');
499 jMenuItemFileExit
.addActionListener(this);
501 return jMenuItemFileExit
;
505 This method initializes jMenuEdit
507 @return javax.swing.JMenu jMenuEdit
510 private JMenu
getJMenuEdit() {
511 if (jMenuEdit
== null) {
513 // Set jMenuEdit's attributes
515 jMenuEdit
= new JMenu();
516 jMenuEdit
.setText("Edit");
517 jMenuEdit
.setMnemonic('E');
518 jMenuEdit
.setVisible(true);
521 // Add sub menu items
523 jMenuEdit
.add(getJMenuItemEditUndo());
524 jMenuEdit
.add(getJMenuItemEditRedo());
525 //jMenuEdit.addSeparator();
527 jMenuEdit
.add(getJMenuItemEditCut());
528 jMenuEdit
.add(getJMenuItemEditCopy());
529 jMenuEdit
.add(getJMenuItemEditPaste());
530 jMenuEdit
.add(getJMenuItemEditDelete());
531 //jMenuEdit.addSeparator();
533 jMenuEdit
.add(getJMenuItemEditSelectAll());
534 jMenuEdit
.add(getJMenuEditFind());
535 jMenuEdit
.add(getJMenuItemEditFindNext());
536 //jMenuEdit.addSeparator();
542 This method initializes jDesktopPane
544 @return javax.swing.JDesktopPane jDesktopPane
547 private JDesktopPane
getJDesktopPaneModule() {
548 if (jDesktopPaneModule
== null) {
549 jDesktopPaneModule
= new JDesktopPane();
551 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
552 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
553 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
554 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
556 .setMinimumSize(new java
.awt
.Dimension(
557 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
558 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
559 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
560 jDesktopPaneModule
.addComponentListener(this);
562 return jDesktopPaneModule
;
566 This method initializes jDesktopPane
568 @return javax.swing.JDesktopPane jDesktopPane
571 private JDesktopPane
getJDesktopPanePackage() {
572 if (jDesktopPanePackage
== null) {
573 jDesktopPanePackage
= new JDesktopPane();
575 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
576 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
577 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
578 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
580 .setMinimumSize(new java
.awt
.Dimension(
581 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
582 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
583 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
584 jDesktopPanePackage
.addComponentListener(this);
586 return jDesktopPanePackage
;
590 This method initializes jDesktopPane
592 @return javax.swing.JDesktopPane jDesktopPane
595 private JDesktopPane
getJDesktopPanePlatform() {
596 if (jDesktopPanePlatform
== null) {
597 jDesktopPanePlatform
= new JDesktopPane();
599 .setBounds(new java
.awt
.Rectangle(
600 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
601 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
602 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
603 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
605 .setMinimumSize(new java
.awt
.Dimension(
606 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
607 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
608 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
609 jDesktopPanePlatform
.addComponentListener(this);
611 return jDesktopPanePlatform
;
615 This method initializes jScrollPaneTree
617 @return javax.swing.JScrollPane jScrollPaneTree
620 private JScrollPane
getJScrollPaneTree() {
621 if (jScrollPaneTree
== null) {
622 jScrollPaneTree
= new JScrollPane();
624 .setPreferredSize(new java
.awt
.Dimension(
625 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
626 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
628 .setMinimumSize(new java
.awt
.Dimension(
629 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
630 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
631 jScrollPaneTree
.setViewportView(getITree());
633 return jScrollPaneTree
;
637 This method initializes iTree
639 @return org.tianocore.packaging.common.ui.ITree iTree
642 private ITree
getITree() {
644 //Before open a real module, use an empty root node for the tree
651 This method initializes jMenuHelp
653 @return javax.swing.JMenu jMenuHelp
656 private JMenu
getJMenuHelp() {
657 if (jMenuHelp
== null) {
659 // Set jMenuHelp's attributes
661 jMenuHelp
= new JMenu();
662 jMenuHelp
.setText("Help");
663 jMenuHelp
.setMnemonic('H');
666 // Add sub menu items
668 jMenuHelp
.add(getJMenuItemHelpContents());
669 jMenuHelp
.add(getJMenuItemHelpIndex());
670 jMenuHelp
.add(getJMenuItemHelpSearch());
672 jMenuHelp
.add(getJMenuItemHelpAbout());
678 This method initializes jMenuItemHelpAbout
680 @return javax.swing.JMenuItem jMenuItemHelpAbout
683 private JMenuItem
getJMenuItemHelpAbout() {
684 if (jMenuItemHelpAbout
== null) {
685 jMenuItemHelpAbout
= new JMenuItem();
686 jMenuItemHelpAbout
.setText("About");
687 jMenuItemHelpAbout
.setMnemonic('A');
688 jMenuItemHelpAbout
.addActionListener(this);
690 return jMenuItemHelpAbout
;
694 This method initializes jMenuItemEditDelete
696 @return javax.swing.JMenuItem jMenuItemEditDelete
699 private JMenuItem
getJMenuItemEditDelete() {
700 if (jMenuItemEditDelete
== null) {
701 jMenuItemEditDelete
= new JMenuItem();
702 jMenuItemEditDelete
.setText("Delete");
703 jMenuItemEditDelete
.setMnemonic('D');
704 jMenuItemEditDelete
.setVisible(false);
705 jMenuItemEditDelete
.setEnabled(false);
706 jMenuItemEditDelete
.addActionListener(this);
708 //Disabled first when no module is open
710 jMenuItemEditDelete
.setEnabled(false);
712 return jMenuItemEditDelete
;
716 This method initializes jMenuFileNew
718 @return javax.swing.JMenuItem jMenuFileNew
721 private JMenuItem
getJMenuItemFileNew() {
722 if (jMenuItemFileNew
== null) {
723 jMenuItemFileNew
= new JMenuItem();
724 jMenuItemFileNew
.setText("New...");
725 jMenuItemFileNew
.setMnemonic('N');
726 jMenuItemFileNew
.addActionListener(this);
728 return jMenuItemFileNew
;
732 This method initializes jMenuItemFileSave
734 @return javax.swing.JMenuItem jMenuItemModuleSave
737 private JMenuItem
getJMenuItemFileSave() {
738 if (jMenuItemFileSave
== null) {
739 jMenuItemFileSave
= new JMenuItem();
740 jMenuItemFileSave
.setText("Save");
741 jMenuItemFileSave
.setMnemonic('S');
742 jMenuItemFileSave
.addActionListener(this);
743 jMenuItemFileSave
.setEnabled(true);
745 return jMenuItemFileSave
;
749 This method initializes jMenuItemModuleClose
751 @return javax.swing.JMenuItem jMenuItemModuleClose
754 private JMenuItem
getJMenuItemFileClose() {
755 if (jMenuItemFileClose
== null) {
756 jMenuItemFileClose
= new JMenuItem();
757 jMenuItemFileClose
.setText("Close");
758 jMenuItemFileClose
.setMnemonic('C');
759 jMenuItemFileClose
.setEnabled(true);
760 jMenuItemFileClose
.addActionListener(this);
762 return jMenuItemFileClose
;
766 This method initializes jMenuTools
769 @return javax.swing.JMenu jMenuTools
772 private JMenu
getJMenuTools() {
773 if (jMenuTools
== null) {
775 // Set jMenuTools's attributes
777 jMenuTools
= new JMenu();
778 jMenuTools
.setText("Tools");
779 jMenuTools
.setMnemonic('T');
780 jMenuTools
.addMenuListener(this);
783 // Add sub menu items
786 jMenuTools
.add(getJMenuItemToolsClone());
787 jMenuTools
.add(getJMenuItemToolsCodeScan());
788 jMenuTools
.addSeparator();
790 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
791 jMenuTools
.add(getJMenuItemToolsBuildPreferences());
792 jMenuTools
.addSeparator();
794 jMenuTools
.add(getJMenuItemToolsGenerateGuidsXref());
800 This method initializes jMenuWindow
803 @return javax.swing.JMenu jMenuWindow
806 private JMenu
getJMenuWindow() {
807 if (jMenuWindow
== null) {
809 // Set jMenuWindow's attribute
811 jMenuWindow
= new JMenu();
812 jMenuWindow
.setText("Window");
813 jMenuWindow
.setMnemonic('W');
814 jMenuWindow
.setVisible(false);
817 // Add sub menu items
819 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
820 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
821 jMenuWindow
.addSeparator();
823 jMenuWindow
.add(getJMenuItemWindowTabView());
824 jMenuWindow
.addSeparator();
826 jMenuWindow
.add(getJMenuItemWindowSource());
827 jMenuWindow
.add(getJMenuItemWindowXML());
828 jMenuWindow
.addSeparator();
830 jMenuWindow
.add(getJMenuItemWindowPreferences());
836 This method initializes jPanelOperation
839 @return javax.swing.JPanel jPanelOperation
842 private JPanel
getJPanelOperation() {
843 if (jPanelOperation
== null) {
844 jPanelOperation
= new JPanel();
845 jPanelOperation
.setLayout(null);
846 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
847 jPanelOperation
.add(getJButtonOk(), null);
848 jPanelOperation
.add(getJButtonCancel(), null);
849 jPanelOperation
.setVisible(false);
851 return jPanelOperation
;
855 This method initializes jButtonOk
858 @return javax.swing.JButton jButtonOk
861 private JButton
getJButtonOk() {
862 if (jButtonOk
== null) {
863 jButtonOk
= new JButton();
864 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
865 jButtonOk
.setText("Ok");
866 jButtonOk
.setEnabled(false);
867 jButtonOk
.addActionListener(this);
873 This method initializes jButtonCancel
876 @return javax.swing.JButton jButtonCancel
879 private JButton
getJButtonCancel() {
880 if (jButtonCancel
== null) {
881 jButtonCancel
= new JButton();
882 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
883 jButtonCancel
.setText("Cancel");
884 jButtonCancel
.setEnabled(false);
885 jButtonCancel
.addActionListener(this);
886 jButtonCancel
.setVisible(false);
888 return jButtonCancel
;
892 This method initializes jMenuItemFileOpen
894 @return javax.swing.JMenuItem jMenuItemFileOpen
897 private JMenuItem
getJMenuItemFileOpen() {
898 if (jMenuItemFileOpen
== null) {
899 jMenuItemFileOpen
= new JMenuItem();
900 jMenuItemFileOpen
.setText("Open...");
901 jMenuItemFileOpen
.setMnemonic('O');
902 jMenuItemFileOpen
.addActionListener(this);
904 return jMenuItemFileOpen
;
908 This method initializes jMenuItemFileCloseAll
910 @return javax.swing.JMenuItem jMenuItemFileOpen
913 private JMenuItem
getJMenuItemFileCloseAll() {
914 if (jMenuItemFileCloseAll
== null) {
915 jMenuItemFileCloseAll
= new JMenuItem();
916 jMenuItemFileCloseAll
.setText("Close All");
917 jMenuItemFileCloseAll
.setMnemonic('A');
918 jMenuItemFileCloseAll
.setEnabled(true);
919 jMenuItemFileCloseAll
.addActionListener(this);
921 return jMenuItemFileCloseAll
;
925 This method initializes jMenuItemFileSaveAll
927 @return javax.swing.JMenuItem jMenuItemFileSaveAll
930 private JMenuItem
getJMenuItemFileSaveAll() {
931 if (jMenuItemFileSaveAll
== null) {
932 jMenuItemFileSaveAll
= new JMenuItem();
933 jMenuItemFileSaveAll
.setText("Save All");
934 jMenuItemFileSaveAll
.setMnemonic('v');
935 jMenuItemFileSaveAll
.setEnabled(true);
936 jMenuItemFileSaveAll
.addActionListener(this);
938 return jMenuItemFileSaveAll
;
942 This method initializes jMenuItemFilePageSetup
944 @return javax.swing.JMenuItem
947 private JMenuItem
getJMenuItemFilePageSetup() {
948 if (jMenuItemFilePageSetup
== null) {
949 jMenuItemFilePageSetup
= new JMenuItem();
950 jMenuItemFilePageSetup
.setText("Page Setup");
951 jMenuItemFilePageSetup
.setMnemonic('u');
952 jMenuItemFilePageSetup
.setEnabled(false);
953 jMenuItemFilePageSetup
.addActionListener(this);
954 jMenuItemFilePageSetup
.setVisible(false);
956 return jMenuItemFilePageSetup
;
960 This method initializes jMenuItemFilePrint
962 @return javax.swing.JMenuItem
965 private JMenuItem
getJMenuItemFilePrint() {
966 if (jMenuItemFilePrint
== null) {
967 jMenuItemFilePrint
= new JMenuItem();
968 jMenuItemFilePrint
.setText("Print");
969 jMenuItemFilePrint
.setMnemonic('P');
970 jMenuItemFilePrint
.setEnabled(false);
971 jMenuItemFilePrint
.addActionListener(this);
972 jMenuItemFilePrint
.setVisible(false);
974 return jMenuItemFilePrint
;
978 This method initializes jMenuItemFileImport
980 @return javax.swing.JMenuItem
983 private JMenuItem
getJMenuItemFileImport() {
984 if (jMenuItemFileImport
== null) {
985 jMenuItemFileImport
= new JMenuItem();
986 jMenuItemFileImport
.setText("Import");
987 jMenuItemFileImport
.setMnemonic('I');
988 jMenuItemFileImport
.setEnabled(false);
989 jMenuItemFileImport
.addActionListener(this);
990 jMenuItemFileImport
.setVisible(false);
992 return jMenuItemFileImport
;
996 This method initializes jMenuItemFileProperties
998 @return javax.swing.JMenuItem
1001 private JMenuItem
getJMenuItemFileProperties() {
1002 if (jMenuItemFileProperties
== null) {
1003 jMenuItemFileProperties
= new JMenuItem();
1004 jMenuItemFileProperties
.setText("Properties");
1005 jMenuItemFileProperties
.setMnemonic('t');
1006 jMenuItemFileProperties
.setEnabled(false);
1007 jMenuItemFileProperties
.addActionListener(this);
1008 jMenuItemFileProperties
.setVisible(false);
1010 return jMenuItemFileProperties
;
1014 This method initializes jMenuFileRecentFiles
1016 @return javax.swing.JMenu
1019 private JMenu
getJMenuFileRecentFiles() {
1020 if (jMenuFileRecentFiles
== null) {
1021 jMenuFileRecentFiles
= new JMenu();
1022 jMenuFileRecentFiles
.setText("Recent Files");
1023 jMenuFileRecentFiles
.setMnemonic('F');
1024 jMenuFileRecentFiles
.setEnabled(false);
1025 jMenuFileRecentFiles
.addActionListener(this);
1026 jMenuFileRecentFiles
.setVisible(false);
1028 return jMenuFileRecentFiles
;
1032 This method initializes jMenuItemEditUndo
1034 @return javax.swing.JMenuItem
1037 private JMenuItem
getJMenuItemEditUndo() {
1038 if (jMenuItemEditUndo
== null) {
1039 jMenuItemEditUndo
= new JMenuItem();
1040 jMenuItemEditUndo
.setText("Undo");
1041 jMenuItemEditUndo
.setMnemonic('U');
1042 jMenuItemEditUndo
.setEnabled(false);
1043 jMenuItemEditUndo
.setVisible(false);
1044 jMenuItemEditUndo
.addActionListener(this);
1046 return jMenuItemEditUndo
;
1050 This method initializes jMenuItemEditRedo
1052 @return javax.swing.JMenuItem
1055 private JMenuItem
getJMenuItemEditRedo() {
1056 if (jMenuItemEditRedo
== null) {
1057 jMenuItemEditRedo
= new JMenuItem();
1058 jMenuItemEditRedo
.setText("Redo");
1059 jMenuItemEditRedo
.setMnemonic('R');
1060 jMenuItemEditRedo
.setEnabled(false);
1061 jMenuItemEditRedo
.setVisible(false);
1062 jMenuItemEditRedo
.addActionListener(this);
1064 return jMenuItemEditRedo
;
1068 This method initializes jMenuItemEditCut
1070 @return javax.swing.JMenuItem
1073 private JMenuItem
getJMenuItemEditCut() {
1074 if (jMenuItemEditCut
== null) {
1075 jMenuItemEditCut
= new JMenuItem();
1076 jMenuItemEditCut
.setText("Cut");
1077 jMenuItemEditCut
.setMnemonic('t');
1078 jMenuItemEditCut
.setEnabled(false);
1079 jMenuItemEditCut
.setVisible(false);
1080 jMenuItemEditCut
.addActionListener(this);
1082 return jMenuItemEditCut
;
1086 This method initializes jMenuItemEditCopy
1088 @return javax.swing.JMenuItem
1091 private JMenuItem
getJMenuItemEditCopy() {
1092 if (jMenuItemEditCopy
== null) {
1093 jMenuItemEditCopy
= new JMenuItem();
1094 jMenuItemEditCopy
.setText("Copy");
1095 jMenuItemEditCopy
.setMnemonic('C');
1096 jMenuItemEditCopy
.setEnabled(false);
1097 jMenuItemEditCopy
.setVisible(false);
1098 jMenuItemEditCopy
.addActionListener(this);
1100 return jMenuItemEditCopy
;
1104 This method initializes jMenuItemEditPaste
1106 return javax.swing.JMenuItem
1109 private JMenuItem
getJMenuItemEditPaste() {
1110 if (jMenuItemEditPaste
== null) {
1111 jMenuItemEditPaste
= new JMenuItem();
1112 jMenuItemEditPaste
.setText("Paste");
1113 jMenuItemEditPaste
.setMnemonic('P');
1114 jMenuItemEditPaste
.setEnabled(false);
1115 jMenuItemEditPaste
.setVisible(false);
1116 jMenuItemEditPaste
.addActionListener(this);
1118 return jMenuItemEditPaste
;
1122 This method initializes jMenuItem
1124 @return javax.swing.JMenuItem
1127 private JMenuItem
getJMenuItemEditSelectAll() {
1128 if (jMenuItemEditSelectAll
== null) {
1129 jMenuItemEditSelectAll
= new JMenuItem();
1130 jMenuItemEditSelectAll
.setText("Select All");
1131 jMenuItemEditSelectAll
.setMnemonic('A');
1132 jMenuItemEditSelectAll
.setEnabled(false);
1133 jMenuItemEditSelectAll
.setVisible(false);
1134 jMenuItemEditSelectAll
.addActionListener(this);
1136 return jMenuItemEditSelectAll
;
1140 This method initializes jMenuItemEditFindNext
1142 @return javax.swing.JMenuItem
1145 private JMenuItem
getJMenuItemEditFindNext() {
1146 if (jMenuItemEditFindNext
== null) {
1147 jMenuItemEditFindNext
= new JMenuItem();
1148 jMenuItemEditFindNext
.setText("Find Next");
1149 jMenuItemEditFindNext
.setMnemonic('n');
1150 jMenuItemEditFindNext
.setEnabled(false);
1151 jMenuItemEditFindNext
.setVisible(false);
1152 jMenuItemEditFindNext
.addActionListener(this);
1154 return jMenuItemEditFindNext
;
1158 This method initializes jMenuView
1160 @return javax.swing.JMenu
1163 private JMenu
getJMenuView() {
1164 if (jMenuView
== null) {
1166 // Set jMenuView's attributes
1168 jMenuView
= new JMenu();
1169 jMenuView
.setText("View");
1170 jMenuView
.setMnemonic('V');
1171 jMenuView
.setVisible(false);
1174 // Add sub menu items
1176 jMenuView
.add(getJMenuViewToolbars());
1177 jMenuView
.add(getJMenuItemViewAdvanced());
1178 jMenuView
.add(getJMenuItemViewStandard());
1179 jMenuView
.add(getJMenuItemViewXML());
1185 This method initializes jMenuViewToolbars
1187 @return javax.swing.JMenu
1190 private JMenu
getJMenuViewToolbars() {
1191 if (jMenuViewToolbars
== null) {
1192 jMenuViewToolbars
= new JMenu();
1193 jMenuViewToolbars
.setText("Toolbars");
1194 jMenuViewToolbars
.setMnemonic('T');
1196 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1197 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1198 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1200 return jMenuViewToolbars
;
1204 This method initializes jCheckBoxMenuItemViewToolbarsFile
1206 @return javax.swing.JCheckBoxMenuItem
1209 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1210 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1211 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1212 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1213 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1214 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1216 return jCheckBoxMenuItemViewToolbarsFile
;
1220 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1222 @return javax.swing.JCheckBoxMenuItem
1225 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1226 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1227 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1228 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1229 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1230 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1232 return jCheckBoxMenuItemViewToolbarsEdit
;
1236 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1238 @return javax.swing.JCheckBoxMenuItem
1241 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1242 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1243 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1244 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1245 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1246 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1248 return jCheckBoxMenuItemViewToolbarsWindow
;
1252 This method initializes jMenuItemStandard
1254 @return javax.swing.JMenuItem
1257 private JMenuItem
getJMenuItemViewStandard() {
1258 if (jMenuItemViewStandard
== null) {
1259 jMenuItemViewStandard
= new JMenuItem();
1260 jMenuItemViewStandard
.setText("Standard");
1261 jMenuItemViewStandard
.setMnemonic('S');
1262 jMenuItemViewStandard
.setEnabled(false);
1263 jMenuItemViewStandard
.addActionListener(this);
1265 return jMenuItemViewStandard
;
1269 This method initializes jMenuItemAdvanced
1271 @return javax.swing.JMenuItem
1274 private JMenuItem
getJMenuItemViewAdvanced() {
1275 if (jMenuItemViewAdvanced
== null) {
1276 jMenuItemViewAdvanced
= new JMenuItem();
1277 jMenuItemViewAdvanced
.setText("Advanced");
1278 jMenuItemViewAdvanced
.setMnemonic('A');
1279 jMenuItemViewAdvanced
.setEnabled(false);
1280 jMenuItemViewAdvanced
.addActionListener(this);
1282 return jMenuItemViewAdvanced
;
1286 This method initializes jMenuProject
1288 @return javax.swing.JMenu
1291 private JMenu
getJMenuProject() {
1292 if (jMenuProject
== null) {
1294 // Set jMenuProject's attributes
1296 jMenuProject
= new JMenu();
1297 jMenuProject
.setText("Project");
1298 jMenuProject
.setMnemonic('P');
1301 // Add sub menu items
1303 jMenuProject
.add(getJMenuItemProjectAdmin());
1305 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1306 jMenuProject
.addSeparator();
1308 jMenuProject
.add(getJMenuItemProjectCreateFar());
1309 jMenuProject
.add(getJMenuItemProjectInstallFar());
1310 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1311 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1314 return jMenuProject
;
1318 This method initializes jMenuItemProjectAdmin
1320 @return javax.swing.JMenuItem
1323 private JMenuItem
getJMenuItemProjectAdmin() {
1324 if (jMenuItemProjectAdmin
== null) {
1325 jMenuItemProjectAdmin
= new JMenuItem();
1326 jMenuItemProjectAdmin
.setText("Admin...");
1327 jMenuItemProjectAdmin
.setMnemonic('A');
1328 jMenuItemProjectAdmin
.setEnabled(false);
1329 jMenuItemProjectAdmin
.addActionListener(this);
1330 jMenuItemProjectAdmin
.setVisible(false);
1332 return jMenuItemProjectAdmin
;
1336 This method initializes jMenuItemProjectChangeWorkspace
1338 @return javax.swing.JMenuItem
1341 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1342 if (jMenuItemProjectChangeWorkspace
== null) {
1343 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1344 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1345 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1346 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1347 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1349 return jMenuItemProjectChangeWorkspace
;
1353 This method initializes jMenuProjectBuildPreferences
1355 @return javax.swing.JMenu
1358 private JMenuItem
getJMenuItemToolsBuildPreferences() {
1359 if (jMenuItemToolsBuildPreferences
== null) {
1360 jMenuItemToolsBuildPreferences
= new JMenuItem();
1361 jMenuItemToolsBuildPreferences
.setText("Build Preferences...");
1362 jMenuItemToolsBuildPreferences
.setMnemonic('P');
1363 jMenuItemToolsBuildPreferences
.setEnabled(true);
1364 jMenuItemToolsBuildPreferences
.addActionListener(this);
1366 return jMenuItemToolsBuildPreferences
;
1370 This method initializes jMenuItemToolsToolChainConfiguration
1372 @return javax.swing.JMenuItem
1375 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1376 if (jMenuItemToolsToolChainConfiguration
== null) {
1377 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1378 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1379 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1380 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1382 return jMenuItemToolsToolChainConfiguration
;
1386 This method initializes jMenuItemToolsClone
1388 @return javax.swing.JMenuItem
1391 private JMenuItem
getJMenuItemToolsClone() {
1392 if (jMenuItemToolsClone
== null) {
1393 jMenuItemToolsClone
= new JMenuItem();
1394 jMenuItemToolsClone
.setText("Clone...");
1395 jMenuItemToolsClone
.setMnemonic('l');
1396 jMenuItemToolsClone
.setEnabled(true);
1397 jMenuItemToolsClone
.addActionListener(this);
1399 return jMenuItemToolsClone
;
1403 This method initializes jMenuItemToolsCodeScan
1405 @return javax.swing.JMenuItem
1408 private JMenuItem
getJMenuItemToolsCodeScan() {
1409 if (jMenuItemToolsCodeScan
== null) {
1410 jMenuItemToolsCodeScan
= new JMenuItem();
1411 jMenuItemToolsCodeScan
.setText("Code Scan...");
1412 jMenuItemToolsCodeScan
.setMnemonic('S');
1413 jMenuItemToolsCodeScan
.setEnabled(false);
1414 jMenuItemToolsCodeScan
.addActionListener(this);
1415 jMenuItemToolsCodeScan
.setVisible(false);
1417 return jMenuItemToolsCodeScan
;
1421 This method initializes jMenuItemWindowSplitVertical
1423 @return javax.swing.JMenuItem
1426 private JMenuItem
getJMenuItemWindowDisplaySide() {
1427 if (jMenuItemWindowDisplaySide
== null) {
1428 jMenuItemWindowDisplaySide
= new JMenuItem();
1429 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1430 jMenuItemWindowDisplaySide
.setMnemonic('S');
1431 jMenuItemWindowDisplaySide
.setEnabled(false);
1432 jMenuItemWindowDisplaySide
.addActionListener(this);
1434 return jMenuItemWindowDisplaySide
;
1438 This method initializes jMenuItemWindowSplitHorizontal
1440 @return javax.swing.JMenuItem
1443 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1444 if (jMenuItemWindowDisplayTopBottom
== null) {
1445 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1446 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1447 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1448 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1449 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1451 return jMenuItemWindowDisplayTopBottom
;
1455 This method initializes jMenuItemViewXML
1457 @return javax.swing.JMenuItem
1460 private JMenuItem
getJMenuItemViewXML() {
1461 if (jMenuItemViewXML
== null) {
1462 jMenuItemViewXML
= new JMenuItem();
1463 jMenuItemViewXML
.setText("XML");
1464 jMenuItemViewXML
.setMnemonic('X');
1465 jMenuItemViewXML
.setEnabled(false);
1466 jMenuItemViewXML
.addActionListener(this);
1468 return jMenuItemViewXML
;
1472 This method initializes jMenuItemWindowTabView
1474 @return javax.swing.JMenuItem
1477 private JMenuItem
getJMenuItemWindowTabView() {
1478 if (jMenuItemWindowTabView
== null) {
1479 jMenuItemWindowTabView
= new JMenuItem();
1480 jMenuItemWindowTabView
.setText("Tab View");
1481 jMenuItemWindowTabView
.setMnemonic('T');
1482 jMenuItemWindowTabView
.setEnabled(false);
1483 jMenuItemWindowTabView
.addActionListener(this);
1485 return jMenuItemWindowTabView
;
1489 This method initializes jMenuItemWindowSource
1491 @return javax.swing.JMenuItem
1494 private JMenuItem
getJMenuItemWindowSource() {
1495 if (jMenuItemWindowSource
== null) {
1496 jMenuItemWindowSource
= new JMenuItem();
1497 jMenuItemWindowSource
.setText("Source");
1498 jMenuItemWindowSource
.setMnemonic('S');
1499 jMenuItemWindowSource
.setEnabled(false);
1500 jMenuItemWindowSource
.addActionListener(this);
1502 return jMenuItemWindowSource
;
1506 This method initializes jMenuItemWindowXML
1508 @return javax.swing.JMenuItem
1511 private JMenuItem
getJMenuItemWindowXML() {
1512 if (jMenuItemWindowXML
== null) {
1513 jMenuItemWindowXML
= new JMenuItem();
1514 jMenuItemWindowXML
.setText("XML");
1515 jMenuItemWindowXML
.setMnemonic('X');
1516 jMenuItemWindowXML
.setEnabled(false);
1517 jMenuItemWindowXML
.addActionListener(this);
1519 return jMenuItemWindowXML
;
1523 This method initializes jMenuItemWindowPreferences
1525 @return javax.swing.JMenuItem
1528 private JMenuItem
getJMenuItemWindowPreferences() {
1529 if (jMenuItemWindowPreferences
== null) {
1530 jMenuItemWindowPreferences
= new JMenuItem();
1531 jMenuItemWindowPreferences
.setText("Preferences");
1532 jMenuItemWindowPreferences
.setMnemonic('P');
1533 jMenuItemWindowPreferences
.setEnabled(false);
1534 jMenuItemWindowPreferences
.addActionListener(this);
1536 return jMenuItemWindowPreferences
;
1540 This method initializes jMenuItemHelpContents
1542 @return javax.swing.JMenuItem
1545 private JMenuItem
getJMenuItemHelpContents() {
1546 if (jMenuItemHelpContents
== null) {
1547 jMenuItemHelpContents
= new JMenuItem();
1548 jMenuItemHelpContents
.setText("Contents");
1549 jMenuItemHelpContents
.setMnemonic('C');
1550 jMenuItemHelpContents
.setEnabled(false);
1551 jMenuItemHelpContents
.addActionListener(this);
1552 jMenuItemHelpContents
.setVisible(false);
1554 return jMenuItemHelpContents
;
1558 This method initializes jMenuItemHelpIndex
1560 @return javax.swing.JMenuItem
1563 private JMenuItem
getJMenuItemHelpIndex() {
1564 if (jMenuItemHelpIndex
== null) {
1565 jMenuItemHelpIndex
= new JMenuItem();
1566 jMenuItemHelpIndex
.setText("Index");
1567 jMenuItemHelpIndex
.setMnemonic('I');
1568 jMenuItemHelpIndex
.setEnabled(false);
1569 jMenuItemHelpIndex
.addActionListener(this);
1570 jMenuItemHelpIndex
.setVisible(false);
1572 return jMenuItemHelpIndex
;
1576 This method initializes jMenuItemHelpSearch
1578 @return javax.swing.JMenuItem
1581 private JMenuItem
getJMenuItemHelpSearch() {
1582 if (jMenuItemHelpSearch
== null) {
1583 jMenuItemHelpSearch
= new JMenuItem();
1584 jMenuItemHelpSearch
.setText("Search");
1585 jMenuItemHelpSearch
.setMnemonic('S');
1586 jMenuItemHelpSearch
.setEnabled(false);
1587 jMenuItemHelpSearch
.addActionListener(this);
1588 jMenuItemHelpSearch
.setVisible(false);
1590 return jMenuItemHelpSearch
;
1594 * This method initializes jMenuItemToolsInstallPackage
1596 * @return javax.swing.JMenuItem
1598 private JMenuItem
getJMenuItemProjectInstallFar() {
1599 if (jMenuItemProjectInstallFar
== null) {
1600 jMenuItemProjectInstallFar
= new JMenuItem();
1601 jMenuItemProjectInstallFar
.setText("Install FAR...");
1602 jMenuItemProjectInstallFar
.setMnemonic('I');
1603 jMenuItemProjectInstallFar
.setEnabled(true);
1604 jMenuItemProjectInstallFar
.addActionListener(this);
1606 return jMenuItemProjectInstallFar
;
1610 * This method initializes jMenuItemToolsUpdatePackage
1612 * @return javax.swing.JMenuItem
1614 private JMenuItem
getJMenuItemProjectUpdateFar() {
1615 if (jMenuItemProjectUpdateFar
== null) {
1616 jMenuItemProjectUpdateFar
= new JMenuItem();
1617 jMenuItemProjectUpdateFar
.setText("Update FAR...");
1618 jMenuItemProjectUpdateFar
.setMnemonic('U');
1619 jMenuItemProjectUpdateFar
.setEnabled(true);
1620 jMenuItemProjectUpdateFar
.addActionListener(this);
1621 jMenuItemProjectUpdateFar
.setVisible(true);
1623 return jMenuItemProjectUpdateFar
;
1627 * This method initializes jMenuItemRemovePackage
1629 * @return javax.swing.JMenuItem
1631 private JMenuItem
getJMenuItemProjectRemoveFar() {
1632 if (jMenuItemProjectRemoveFar
== null) {
1633 jMenuItemProjectRemoveFar
= new JMenuItem();
1634 jMenuItemProjectRemoveFar
.setText("Remove FAR...");
1635 jMenuItemProjectRemoveFar
.setMnemonic('R');
1636 jMenuItemProjectRemoveFar
.setEnabled(true);
1637 jMenuItemProjectRemoveFar
.addActionListener(this);
1639 return jMenuItemProjectRemoveFar
;
1643 * This method initializes jMenuItemProjectCreateFar
1645 * @return javax.swing.JMenuItem
1647 private JMenuItem
getJMenuItemProjectCreateFar() {
1648 if (jMenuItemProjectCreateFar
== null) {
1649 jMenuItemProjectCreateFar
= new JMenuItem();
1650 jMenuItemProjectCreateFar
.setText("Create FAR...");
1651 jMenuItemProjectCreateFar
.setMnemonic('C');
1652 jMenuItemProjectCreateFar
.addActionListener(this);
1654 return jMenuItemProjectCreateFar
;
1658 * This method initializes jMenuEditFind
1660 * @return javax.swing.JMenu
1662 private JMenu
getJMenuEditFind() {
1663 if (jMenuEditFind
== null) {
1664 jMenuEditFind
= new JMenu();
1665 jMenuEditFind
.setText("Find");
1666 jMenuEditFind
.setMnemonic('F');
1668 jMenuEditFind
.add(getJMenuItemEditFindPpi());
1669 jMenuEditFind
.add(getJMenuItemEditFindProtocol());
1670 jMenuEditFind
.add(getJMenuItemEditFindGuid());
1671 jMenuEditFind
.add(getJMenuItemEditFindPcd());
1672 jMenuEditFind
.add(getJMenuItemEditFindLibraryClass());
1673 jMenuEditFind
.add(getJMenuItemEditFindLibraryInstance());
1675 return jMenuEditFind
;
1679 * This method initializes jMenuItemEditFindPcd
1681 * @return javax.swing.JMenuItem
1683 private JMenuItem
getJMenuItemEditFindPcd() {
1684 if (jMenuItemEditFindPcd
== null) {
1685 jMenuItemEditFindPcd
= new JMenuItem();
1686 jMenuItemEditFindPcd
.setText("All PCD entries");
1687 jMenuItemEditFindPcd
.setMnemonic('P');
1688 jMenuItemEditFindPcd
.addActionListener(this);
1690 return jMenuItemEditFindPcd
;
1694 * This method initializes jMenuItemEditFindLibraryClass
1696 * @return javax.swing.JMenuItem
1698 private JMenuItem
getJMenuItemEditFindLibraryClass() {
1699 if (jMenuItemEditFindLibraryClass
== null) {
1700 jMenuItemEditFindLibraryClass
= new JMenuItem();
1701 jMenuItemEditFindLibraryClass
.setText("All Library Classes");
1702 jMenuItemEditFindLibraryClass
.setMnemonic('C');
1703 jMenuItemEditFindLibraryClass
.addActionListener(this);
1705 return jMenuItemEditFindLibraryClass
;
1709 * This method initializes jMenuItemEditFindPpi
1711 * @return javax.swing.JMenuItem
1713 private JMenuItem
getJMenuItemEditFindPpi() {
1714 if (jMenuItemEditFindPpi
== null) {
1715 jMenuItemEditFindPpi
= new JMenuItem();
1716 jMenuItemEditFindPpi
.setText("All PPIs");
1717 jMenuItemEditFindPpi
.setMnemonic('I');
1718 jMenuItemEditFindPpi
.addActionListener(this);
1720 return jMenuItemEditFindPpi
;
1724 * This method initializes jMenuItemEditFindProtocol
1726 * @return javax.swing.JMenuItem
1728 private JMenuItem
getJMenuItemEditFindProtocol() {
1729 if (jMenuItemEditFindProtocol
== null) {
1730 jMenuItemEditFindProtocol
= new JMenuItem();
1731 jMenuItemEditFindProtocol
.setText("All Protocols");
1732 jMenuItemEditFindProtocol
.setMnemonic('r');
1733 jMenuItemEditFindProtocol
.addActionListener(this);
1735 return jMenuItemEditFindProtocol
;
1739 * This method initializes jMenuItemEditFindGuid
1741 * @return javax.swing.JMenuItem
1743 private JMenuItem
getJMenuItemEditFindGuid() {
1744 if (jMenuItemEditFindGuid
== null) {
1745 jMenuItemEditFindGuid
= new JMenuItem();
1746 jMenuItemEditFindGuid
.setText("All GUIDs");
1747 jMenuItemEditFindGuid
.setMnemonic('G');
1748 jMenuItemEditFindGuid
.addActionListener(this);
1750 return jMenuItemEditFindGuid
;
1754 * This method initializes jMenuItemEditFindLibraryInstance
1756 * @return javax.swing.JMenuItem
1758 private JMenuItem
getJMenuItemEditFindLibraryInstance() {
1759 if (jMenuItemEditFindLibraryInstance
== null) {
1760 jMenuItemEditFindLibraryInstance
= new JMenuItem();
1761 jMenuItemEditFindLibraryInstance
.setText("All Library Instances");
1762 jMenuItemEditFindLibraryInstance
.setMnemonic('n');
1763 jMenuItemEditFindLibraryInstance
.addActionListener(this);
1764 jMenuItemEditFindLibraryInstance
.setVisible(false);
1766 return jMenuItemEditFindLibraryInstance
;
1770 * This method initializes jMenuItemProjectGenerateGuidsXref
1772 * @return javax.swing.JMenuItem
1774 private JMenuItem
getJMenuItemToolsGenerateGuidsXref() {
1775 if (jMenuItemToolsGenerateGuidsXref
== null) {
1776 jMenuItemToolsGenerateGuidsXref
= new JMenuItem();
1777 jMenuItemToolsGenerateGuidsXref
.setText("Generate guids.xref...");
1778 jMenuItemToolsGenerateGuidsXref
.setMnemonic('G');
1779 jMenuItemToolsGenerateGuidsXref
.addActionListener(this);
1781 return jMenuItemToolsGenerateGuidsXref
;
1785 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1787 * Main class, start the GUI
1790 public static void main(String
[] args
) {
1791 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance();
1792 module
.setVisible(true);
1796 This is the default constructor
1799 public FrameworkWizardUI() {
1805 This method initializes this
1809 private void init() {
1811 // Set current workspace and check
1812 // Check if exists WORKSPACE
1814 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1815 this.checkWorkspace();
1818 // Show splash screen
1820 SplashScreen ss
= new SplashScreen();
1821 ss
.setVisible(true);
1829 // Close splash screen
1836 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1837 this.setResizable(true);
1838 this.setJMenuBar(getjJMenuBar());
1839 this.setContentPane(getJContentPane());
1840 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1841 + Workspace
.getCurrentWorkspace() + "]");
1842 this.setExitType(1);
1847 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1851 This method initializes jContentPane
1853 @return javax.swing.JPanel jContentPane
1856 private JPanel
getJContentPane() {
1857 if (jContentPane
== null) {
1858 jContentPane
= new JPanel();
1859 jContentPane
.setLayout(null);
1860 jContentPane
.add(getJPanelOperation(), null);
1861 jContentPane
.add(getJSplitPane(), null);
1863 return jContentPane
;
1867 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1869 * Override actionPerformed to listen all actions
1872 public void actionPerformed(ActionEvent arg0
) {
1874 // Operations of Menu
1876 if (arg0
.getSource() == this.jMenuItemFileNew
) {
1880 if (arg0
.getSource() == this.jMenuItemFileOpen
) {
1884 if (arg0
.getSource() == this.jMenuItemFileClose
) {
1888 if (arg0
.getSource() == this.jMenuItemFileCloseAll
) {
1891 this.makeEmptyTree();
1894 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1898 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1902 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1906 if (arg0
.getSource() == this.jMenuItemFileRefresh
) {
1907 if (this.closeAll() == 0) {
1909 this.makeEmptyTree();
1913 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1917 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1921 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1922 this.findProtocol();
1925 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1929 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1933 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1934 this.findLibraryClass();
1937 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1938 this.findLibraryInstance();
1941 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1942 configBuildPreferences();
1945 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1946 this.changeWorkspace();
1949 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1953 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1957 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1961 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1965 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1969 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1970 this.setupToolChainConfiguration();
1973 if (arg0
.getSource() == this.jMenuItemToolsGenerateGuidsXref
) {
1974 this.generateGuidsXref();
1977 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
1978 About a
= new About(this, true);
1979 int result
= a
.showDialog();
1980 if (result
== DataType
.RETURN_TYPE_OK
) {
1987 Create an empty tree if no file is open
1990 private void makeEmptyTree() {
1994 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, false, null, null);
1997 // Make Module Description
1999 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE_DESCRIPTION
,
2000 false, null, dmtnRoot
);
2003 // First add package
2005 if (GlobalData
.vPackageList
.size() > 0) {
2006 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2007 IDefaultMutableTreeNode dmtnModulePackage
= null;
2008 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2009 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2011 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
2012 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
2013 GlobalData
.vPackageList
.elementAt(index
),
2014 this.dmtnModuleDescription
);
2015 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2016 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
2017 false, GlobalData
.vPackageList
.elementAt(index
),
2018 this.dmtnModuleDescription
);
2019 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
2020 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2021 false, GlobalData
.vPackageList
.elementAt(index
),
2022 this.dmtnModuleDescription
);
2024 // And then add each module in its package
2026 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
2027 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2028 if (vModule
.get(indexJ
).isLibrary()) {
2029 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2030 IDefaultMutableTreeNode
.MODULE
, false,
2031 vModule
.get(indexJ
),
2032 this.dmtnModuleDescription
));
2034 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2035 IDefaultMutableTreeNode
.MODULE
, false,
2036 vModule
.get(indexJ
),
2037 this.dmtnModuleDescription
));
2040 if (dmtnModulePackageModule
.getChildCount() > 0) {
2041 dmtnModulePackage
.add(dmtnModulePackageModule
);
2043 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2044 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
2047 dmtnModuleDescription
.add(dmtnModulePackage
);
2052 // Make Package Description
2054 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
,
2055 false, null, this.dmtnRoot
);
2056 if (GlobalData
.vPackageList
.size() > 0) {
2057 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2058 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
2060 IDefaultMutableTreeNode
.PACKAGE
, false,
2061 GlobalData
.vPackageList
.elementAt(index
),
2062 this.dmtnPackageDescription
));
2067 // Make Platform Description
2069 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms",
2070 IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
, false,
2071 null, this.dmtnRoot
);
2072 if (GlobalData
.vPlatformList
.size() > 0) {
2073 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
2074 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
2076 IDefaultMutableTreeNode
.PLATFORM
, false,
2077 GlobalData
.vPlatformList
.elementAt(index
),
2078 this.dmtnPlatformDescription
));
2083 // Add sub nodes to root node
2085 dmtnRoot
.add(dmtnModuleDescription
);
2086 dmtnRoot
.add(dmtnPackageDescription
);
2087 dmtnRoot
.add(dmtnPlatformDescription
);
2088 iTree
= new ITree(dmtnRoot
);
2089 iTree
.addMouseListener(this);
2090 iTree
.addKeyListener(this);
2091 jScrollPaneTree
.setViewportView(iTree
);
2095 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2097 * Override windowClosing to popup warning message to confirm quit
2100 public void windowClosing(WindowEvent arg0
) {
2105 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2107 * Override mouseClicked to check if need display popup menu
2110 public void mouseClicked(MouseEvent arg0
) {
2112 // When double click
2114 if (arg0
.getClickCount() == 2) {
2115 doubleClickModuleTreeNode();
2119 public void mouseEntered(MouseEvent arg0
) {
2120 // TODO Auto-generated method stub
2123 public void mouseExited(MouseEvent arg0
) {
2124 // TODO Auto-generated method stub
2127 public void mousePressed(MouseEvent arg0
) {
2128 // TODO Auto-generated method stub
2131 public void mouseReleased(MouseEvent arg0
) {
2132 // TODO Auto-generated method stub
2136 Remove all Internal Frame of Module Desktop Pane
2139 private void cleanDesktopPaneModule() {
2140 if (jDesktopPaneModule
!= null) {
2141 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2142 for (int index
= 0; index
< iif
.length
; index
++) {
2143 iif
[index
].dispose();
2149 Remove all Internal Frame of package Desktop Pane
2152 private void cleanDesktopPanePackage() {
2153 if (jDesktopPanePlatform
!= null) {
2154 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2155 for (int index
= 0; index
< iif
.length
; index
++) {
2156 iif
[index
].dispose();
2162 Remove all Internal Frame of platform Desktop Pane
2165 private void cleanDesktopPanePlatform() {
2166 if (jDesktopPanePlatform
!= null) {
2167 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2168 for (int index
= 0; index
< iif
.length
; index
++) {
2169 iif
[index
].dispose();
2175 Remove all Internal Frame of all Desktop Panes
2178 private void cleanDesktopPane() {
2179 cleanDesktopPaneModule();
2180 cleanDesktopPanePackage();
2181 cleanDesktopPanePlatform();
2185 Set file filter as input ext
2191 private int getNewFilePath(String ext
) {
2192 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2193 fc
.setAcceptAllFileFilterUsed(false);
2194 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2195 return fc
.showSaveDialog(new JPanel());
2199 Add a module to tree
2201 @param mid The module node to be added
2204 private void addModuleToTree(ModuleIdentification mid
) {
2206 // Add new MsaHeader node to the tree
2208 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
,
2209 false, mid
, this.dmtnModuleDescription
);
2211 // First find the module belongs to which package
2213 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2214 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2216 // To check if has module node or library node
2218 IDefaultMutableTreeNode parentModuleNode
= null;
2219 IDefaultMutableTreeNode parentLibraryNode
= null;
2220 boolean hasModule
= false;
2221 boolean hasLibrary
= false;
2222 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2223 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2224 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2226 parentLibraryNode
= iNode
;
2228 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2230 parentModuleNode
= iNode
;
2237 if (!mid
.isLibrary()) {
2239 // Create parent node first if has no parent node
2242 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2243 false, mid
.getPackageId(), this.dmtnModuleDescription
);
2244 iTree
.addNode(packageNode
, parentModuleNode
);
2247 iTree
.addNode(parentModuleNode
, node
);
2253 if (mid
.isLibrary()) {
2255 // Create parent node first if has no parent node
2258 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2259 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2260 mid
.getPackageId(), this.dmtnModuleDescription
);
2261 iTree
.addNode(packageNode
, parentLibraryNode
);
2264 iTree
.addNode(parentLibraryNode
, node
);
2271 @param path input file path
2274 private void openModule(String path
, IDefaultMutableTreeNode belongNode
) {
2275 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2278 // The module is not in existing packages
2280 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2285 // Make the node selected
2287 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MODULE
)));
2290 // Update opening Module list information
2292 if (!iTree
.getSelectNode().isOpening()) {
2294 // Insert sub node of module
2296 insertModuleTreeNode(id
, belongNode
);
2297 iTree
.getSelectNode().setOpening(true);
2300 // Update opening module list
2302 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2303 Set
<TreePath
> temp
= GlobalData
.openingModuleList
.getTreePathById(id
);
2304 temp
.add(iTree
.getSelectionPath());
2305 GlobalData
.openingModuleList
.setTreePathById(id
, temp
);
2308 // Select msa header node and show it in editor panel
2311 .setSelectionPath(iTree
2312 .getPathOfNode(iTree
2313 .getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MSA_HEADER
)));
2314 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2315 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2321 @param path input file path
2324 private void openPackage(String path
) {
2325 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2328 // The package is not in current workspace
2330 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2335 // Make the node selected
2337 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2338 IDefaultMutableTreeNode
.PACKAGE
)));
2340 // Update opening package list information
2342 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2344 // Insert sub node of module
2346 insertPackageTreeNode(id
);
2347 iTree
.getSelectNode().setOpening(true);
2350 // Update opening module list
2352 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2353 Set
<TreePath
> temp
= GlobalData
.openingPackageList
.getTreePathById(id
);
2354 temp
.add(iTree
.getSelectionPath());
2355 GlobalData
.openingPackageList
.setTreePathById(id
, temp
);
2358 // Show spd header in editor panel
2360 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2361 IDefaultMutableTreeNode
.SPD_HEADER
)));
2362 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2363 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2369 @param path input file path
2372 private void openPlatform(String path
) {
2373 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2376 // The platform is not in current workspace
2378 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2383 // Make the node selected
2385 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2386 IDefaultMutableTreeNode
.PLATFORM
)));
2388 // Update opening package list information
2390 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2392 // Insert sub node of module
2394 insertPlatformTreeNode(id
);
2395 iTree
.getSelectNode().setOpening(true);
2398 // Update opening module list
2400 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2401 Set
<TreePath
> temp
= GlobalData
.openingPlatformList
.getTreePathById(id
);
2402 temp
.add(iTree
.getSelectionPath());
2403 GlobalData
.openingPlatformList
.setTreePathById(id
, temp
);
2406 // Show fpd header in editor panel
2408 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2409 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2410 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2411 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2412 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2419 private void saveModule(int index
) {
2420 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2422 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2427 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2428 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2429 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2430 } catch (Exception e
) {
2431 Log
.wrn("Save Module", e
.getMessage());
2432 Log
.err("Save Module", e
.getMessage());
2440 private void savePackage(int index
) {
2441 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2443 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2448 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2449 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2450 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2451 } catch (Exception e
) {
2452 Log
.wrn("Save Package", e
.getMessage());
2453 Log
.err("Save Package", e
.getMessage());
2461 private void savePlatform(int index
) {
2462 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2464 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2469 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2470 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2471 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2472 } catch (Exception e
) {
2473 Log
.wrn("Save Package", e
.getMessage());
2474 Log
.err("Save Package", e
.getMessage());
2478 public void componentResized(ComponentEvent arg0
) {
2479 if (this.jSplitPane
!= null) {
2480 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2481 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2482 this.jSplitPane
.validate();
2483 resizeDesktopPanel();
2488 Resize JDesktopPanel
2491 private void resizeDesktopPanel() {
2492 resizeDesktopPanel(this.jDesktopPaneModule
);
2493 resizeDesktopPanel(this.jDesktopPanePackage
);
2494 resizeDesktopPanel(this.jDesktopPanePlatform
);
2498 Resize JDesktopPanel
2501 private void resizeDesktopPanel(JDesktopPane jdk
) {
2502 JInternalFrame
[] iif
= jdk
.getAllFrames();
2503 for (int index
= 0; index
< iif
.length
; index
++) {
2504 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2508 private void insertModuleTreeNode(Identification id
, IDefaultMutableTreeNode belongNode
) {
2509 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
,
2511 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
,
2513 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2514 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
,
2517 .addNode(new IDefaultMutableTreeNode("Package Dependencies",
2518 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
, belongNode
));
2519 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
,
2521 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
, belongNode
));
2522 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
, belongNode
));
2523 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
, belongNode
));
2524 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
,
2526 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
,
2528 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
,
2530 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
,
2532 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
,
2534 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
, belongNode
));
2535 iTree
.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
,
2537 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
, belongNode
));
2540 private void insertPackageTreeNode(Identification id
) {
2541 IDefaultMutableTreeNode idmtTemp
= this.dmtnPackageDescription
;
2542 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
,
2544 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2545 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
,
2547 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
,
2549 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2551 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2552 true, id
, idmtTemp
));
2554 .addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2555 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
, idmtTemp
));
2556 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2557 true, id
, idmtTemp
));
2558 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2559 true, id
, idmtTemp
));
2561 // Add modules in this package
2563 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2564 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2566 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2567 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2569 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2570 false, id
, idmtTemp
);
2572 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PackageIdentification(id
));
2573 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2574 if (vModule
.get(indexJ
).isLibrary()) {
2575 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2576 IDefaultMutableTreeNode
.MODULE
, false,
2577 vModule
.get(indexJ
), idmtTemp
));
2579 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2580 IDefaultMutableTreeNode
.MODULE
, false,
2581 vModule
.get(indexJ
), idmtTemp
));
2584 if (dmtnModulePackageModule
.getChildCount() > 0) {
2585 iTree
.addNode(dmtnModulePackageModule
);
2587 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2588 iTree
.addNode(dmtnModulePackageLibrary
);
2592 private void insertPlatformTreeNode(Identification id
) {
2593 IDefaultMutableTreeNode idmtTemp
= this.dmtnPlatformDescription
;
2594 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2596 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2597 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
, idmtTemp
));
2598 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
,
2600 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2601 true, id
, idmtTemp
));
2602 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2603 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
,
2605 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
,
2609 // Add modules in this platform
2611 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2612 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2614 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2615 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2617 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2618 false, id
, idmtTemp
);
2620 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PlatformIdentification(id
));
2621 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2622 if (vModule
.get(indexJ
).isLibrary()) {
2623 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2624 IDefaultMutableTreeNode
.MODULE
, false,
2625 vModule
.get(indexJ
), idmtTemp
));
2627 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2628 IDefaultMutableTreeNode
.MODULE
, false,
2629 vModule
.get(indexJ
), idmtTemp
));
2632 if (dmtnModulePackageModule
.getChildCount() > 0) {
2633 iTree
.addNode(dmtnModulePackageModule
);
2635 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2636 iTree
.addNode(dmtnModulePackageLibrary
);
2641 Operate when double click a tree node
2644 private void doubleClickModuleTreeNode() {
2645 Identification id
= null;
2646 int intCategory
= -1;
2648 IDefaultMutableTreeNode belongNode
= null;
2652 // Get selected tree node
2654 if (iTree
.getSelectNode() != null) {
2655 id
= iTree
.getSelectNode().getId();
2659 // If id is null, return directly
2665 intCategory
= iTree
.getSelectCategory();
2666 belongNode
= iTree
.getSelectNode().getBelongNode();
2669 // If the node is not opened yet
2670 // Insert top level elements first
2672 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2673 path
= iTree
.getSelectNode().getId().getPath();
2674 openModule(path
, belongNode
);
2677 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2678 path
= iTree
.getSelectNode().getId().getPath();
2682 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2683 path
= iTree
.getSelectNode().getId().getPath();
2689 // Show editor panel
2691 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2692 showModuleElement(intCategory
,
2693 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2694 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2695 .findIndexOfListById(new ModuleIdentification(
2698 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2699 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2700 showPackageElement(intCategory
,
2701 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2702 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2703 .findIndexOfListById(new PackageIdentification(
2706 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2707 showPlatformElement(
2709 GlobalData
.openingPlatformList
2710 .getOpeningPlatformById(new PlatformIdentification(id
)));
2711 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2712 .findIndexOfListById(new PlatformIdentification(
2715 } catch (Exception e
) {
2716 Log
.err("double click category: " + intCategory
);
2717 Log
.err("double click belong node: " + belongNode
.toString());
2718 Log
.err("double click id path: " + id
);
2719 Log
.err("double click exception: " + e
.getMessage());
2724 Show content of editor panel via selected element
2730 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2731 this.cleanDesktopPanePlatform();
2733 switch (elementType
) {
2734 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2735 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2736 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2738 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2739 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2740 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2742 case IDefaultMutableTreeNode
.FPD_FLASH
:
2743 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2744 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2746 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2747 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2748 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2750 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2751 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2752 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2754 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2755 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2756 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2759 this.jTabbedPaneEditor
.setSelectedIndex(2);
2760 resizeDesktopPanel();
2764 Show content of editor panel via selected element
2770 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2771 this.cleanDesktopPanePackage();
2772 Tools
.dirForNewSpd
= spd
.getId().getPath();
2773 switch (elementType
) {
2774 case IDefaultMutableTreeNode
.SPD_HEADER
:
2775 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2776 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2778 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2779 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2780 getJDesktopPanePackage().add(frmSlcd
, 1);
2782 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2783 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2784 getJDesktopPanePackage().add(frmSmf
, 1);
2786 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2787 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2788 getJDesktopPanePackage().add(frmSph
, 1);
2790 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2791 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2792 getJDesktopPanePackage().add(frmSgd
, 1);
2794 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2795 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2796 getJDesktopPanePackage().add(frmSprod
, 1);
2798 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2799 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2800 getJDesktopPanePackage().add(frmSppid
, 1);
2802 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2803 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2804 getJDesktopPanePackage().add(frmSpcdd
, 1);
2807 this.jTabbedPaneEditor
.setSelectedIndex(1);
2808 resizeDesktopPanel();
2812 Show content of editor panel via selected element
2818 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2819 this.cleanDesktopPaneModule();
2820 switch (elementType
) {
2821 case IDefaultMutableTreeNode
.MSA_HEADER
:
2822 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2823 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2825 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2826 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2827 getJDesktopPaneModule().add(frmMlcd
, 1);
2829 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2830 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2831 getJDesktopPaneModule().add(frmMpd
, 1);
2833 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2834 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2835 getJDesktopPaneModule().add(frmMsf
, 1);
2837 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2838 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2839 getJDesktopPaneModule().add(frmMp
, 1);
2841 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2842 ModuleEvents frmMe
= new ModuleEvents(msa
);
2843 getJDesktopPaneModule().add(frmMe
, 1);
2845 case IDefaultMutableTreeNode
.MSA_HOBS
:
2846 ModuleHobs frmMh
= new ModuleHobs(msa
);
2847 getJDesktopPaneModule().add(frmMh
, 1);
2849 case IDefaultMutableTreeNode
.MSA_PPIS
:
2850 ModulePpis frmMpp
= new ModulePpis(msa
);
2851 getJDesktopPaneModule().add(frmMpp
, 1);
2853 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2854 ModuleVariables frmMv
= new ModuleVariables(msa
);
2855 getJDesktopPaneModule().add(frmMv
, 1);
2857 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2858 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2859 getJDesktopPaneModule().add(frmMbm
, 1);
2861 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2862 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2863 getJDesktopPaneModule().add(frmMst
, 1);
2865 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2866 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2867 getJDesktopPaneModule().add(frmMdh
, 1);
2869 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2870 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2871 getJDesktopPaneModule().add(frmMf
, 1);
2873 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2874 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2875 getJDesktopPaneModule().add(frmGuid
, 1);
2877 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2878 ModuleExterns frmMex
= new ModuleExterns(msa
);
2879 getJDesktopPaneModule().add(frmMex
, 1);
2881 case IDefaultMutableTreeNode
.MSA_PCDS
:
2882 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2883 getJDesktopPaneModule().add(frmPcd
, 1);
2886 this.jTabbedPaneEditor
.setSelectedIndex(0);
2887 resizeDesktopPanel();
2891 // Define operations of menu
2897 private void fileNew() {
2900 // Selece new file type
2902 NewFileChooser nfc
= new NewFileChooser(this, true);
2903 result
= nfc
.showDialog();
2905 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2908 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2912 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2913 result
= smb
.showDialog();
2915 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2919 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2920 ModuleIdentification mid
= smb
.getMid();
2923 // Update package of workspace first
2925 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2926 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2927 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2930 wt
.addModuleToPackage(mid
, psa
);
2931 } catch (IOException e
) {
2932 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2933 Log
.err("Update MsaFiles in Package", e
.getMessage());
2935 } catch (XmlException e
) {
2936 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2937 Log
.err("Update MsaFiles in Package", e
.getMessage());
2939 } catch (Exception e
) {
2940 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2941 Log
.err("Update MsaFiles in Package", e
.getMessage());
2946 // Update Global Data
2948 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2949 GlobalData
.vModuleList
.addElement(mid
);
2952 // Create new node on the tree
2954 addModuleToTree(mid
);
2959 this.openModule(mid
.getPath(), this.dmtnModuleDescription
);
2962 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2966 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2967 result
= smb
.showDialog();
2969 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2973 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2974 PackageIdentification pid
= smb
.getPid();
2977 wt
.addPackageToDatabase(smb
.getPid());
2978 } catch (Exception e
) {
2979 Log
.err("addPackageToDatabase", e
.getMessage());
2983 // Update Global Data
2985 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
2986 GlobalData
.vPackageList
.addElement(pid
);
2989 // Add to Module Description node
2991 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
2992 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2993 false, pid
, this.dmtnModuleDescription
);
2995 iTree
.addNode(dmtnModuleDescription
, node
);
2998 // Add new SpdHeader node to the tree
3000 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
,
3001 this.dmtnPackageDescription
);
3002 iTree
.addNode(dmtnPackageDescription
, node
);
3004 this.openPackage(pid
.getPath());
3007 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3009 // To new a platform
3011 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
3012 result
= smb
.showDialog();
3014 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3018 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3019 PlatformIdentification fid
= smb
.getFid();
3022 wt
.addPlatformToDatabase(fid
);
3023 } catch (Exception e
) {
3024 Log
.err("addPlatformToDatabase", e
.getMessage());
3028 // Update global data
3030 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
3031 GlobalData
.vPlatformList
.addElement(fid
);
3033 // Add new SpdHeader node to the tree
3035 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
3036 IDefaultMutableTreeNode
.PLATFORM
, true,
3037 fid
, this.dmtnPlatformDescription
);
3038 iTree
.addNode(dmtnPlatformDescription
, node
);
3039 this.openPlatform(fid
.getPath());
3049 private void open() {
3050 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
3051 fc
.setAcceptAllFileFilterUsed(false);
3052 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
3053 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
3054 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
3055 fc
.addChoosableFileFilter(iffM
);
3056 fc
.addChoosableFileFilter(iffP
);
3057 fc
.addChoosableFileFilter(iffF
);
3058 fc
.setFileFilter(iffM
);
3060 int result
= fc
.showOpenDialog(new JPanel());
3062 if (result
== JFileChooser
.APPROVE_OPTION
) {
3063 String path
= fc
.getSelectedFile().getPath();
3064 String match
= path
.substring(path
.length() - 4);
3065 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
3066 openModule(path
, this.dmtnModuleDescription
);
3067 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
3069 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
3079 private void close() {
3080 TreePath item
= null;
3081 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3083 // Current is module
3086 if (this.currentOpeningModuleIndex
> -1) {
3087 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
3088 int result
= showSaveDialog();
3089 if (result
== JOptionPane
.YES_OPTION
) {
3092 if (result
== JOptionPane
.NO_OPTION
) {
3095 if (result
== JOptionPane
.CANCEL_OPTION
) {
3101 // Remove all tree paths for the module
3103 Set
<TreePath
> openingTreePaths
= GlobalData
.openingModuleList
3104 .getTreePathByIndex(currentOpeningModuleIndex
);
3105 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3106 while (openingTreePathsIter
.hasNext()) {
3107 item
= openingTreePathsIter
.next();
3108 iTree
.getNodeByPath(item
).setOpening(false);
3109 iTree
.removeNodeChildrenByPath(item
);
3112 GlobalData
.openingModuleList
.reload(this.currentOpeningModuleIndex
);
3113 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
3114 GlobalData
.openingModuleList
.setModuleSaved(this.currentOpeningModuleIndex
, true);
3116 this.cleanDesktopPaneModule();
3117 this.currentOpeningModuleIndex
= -1;
3121 // Current is package
3124 if (this.currentOpeningPackageIndex
> -1) {
3125 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
3126 int result
= showSaveDialog();
3127 if (result
== JOptionPane
.YES_OPTION
) {
3130 if (result
== JOptionPane
.NO_OPTION
) {
3133 if (result
== JOptionPane
.CANCEL_OPTION
) {
3139 // Remove all tree paths for the module
3141 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPackageList
3142 .getTreePathByIndex(currentOpeningPackageIndex
);
3143 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3144 while (openingTreePathsIter
.hasNext()) {
3145 item
= openingTreePathsIter
.next();
3146 iTree
.getNodeByPath(item
).setOpening(false);
3147 iTree
.removeNodeChildrenByPath(item
);
3150 GlobalData
.openingPackageList
.reload(this.currentOpeningPackageIndex
);
3151 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
3152 GlobalData
.openingPackageList
.setPackageSaved(this.currentOpeningPackageIndex
, true);
3153 this.cleanDesktopPanePackage();
3154 this.currentOpeningPackageIndex
= -1;
3158 // Current is platform
3161 if (this.currentOpeningPlatformIndex
> -1) {
3162 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
3163 int result
= showSaveDialog();
3164 if (result
== JOptionPane
.YES_OPTION
) {
3167 if (result
== JOptionPane
.NO_OPTION
) {
3170 if (result
== JOptionPane
.CANCEL_OPTION
) {
3176 // Remove all tree paths for the module
3178 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPlatformList
3179 .getTreePathByIndex(currentOpeningPlatformIndex
);
3180 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3181 while (openingTreePathsIter
.hasNext()) {
3182 item
= openingTreePathsIter
.next();
3183 iTree
.getNodeByPath(item
).setOpening(false);
3184 iTree
.removeNodeChildrenByPath(item
);
3187 GlobalData
.openingPlatformList
.reload(this.currentOpeningPlatformIndex
);
3188 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
3189 GlobalData
.openingPlatformList
.setPlatformSaved(this.currentOpeningPlatformIndex
, true);
3190 this.cleanDesktopPanePlatform();
3191 this.currentOpeningPlatformIndex
= -1;
3198 Close all opening files and clean all showing internal frame
3201 private int closeAll() {
3202 int result
= JOptionPane
.NO_OPTION
;
3203 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3204 || !GlobalData
.openingPlatformList
.isSaved()) {
3205 result
= showSaveDialog();
3207 if (result
== JOptionPane
.YES_OPTION
) {
3210 if (result
== JOptionPane
.NO_OPTION
) {
3215 if (result
== JOptionPane
.CANCEL_OPTION
|| result
== JOptionPane
.CLOSED_OPTION
) {
3218 this.cleanDesktopPane();
3219 GlobalData
.openingModuleList
.closeAll();
3220 GlobalData
.openingPackageList
.closeAll();
3221 GlobalData
.openingPlatformList
.closeAll();
3227 Refresh all global data from disk to memory
3230 private void refresh() {
3235 Save currentModule when press button OK
3238 private void save() {
3239 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3241 if (this.currentOpeningModuleIndex
> -1) {
3242 saveModule(this.currentOpeningModuleIndex
);
3246 if (this.currentOpeningPackageIndex
> -1) {
3247 savePackage(this.currentOpeningPackageIndex
);
3251 if (this.currentOpeningPlatformIndex
> -1) {
3252 savePlatform(this.currentOpeningPlatformIndex
);
3258 private void saveAs() {
3262 private void saveAll() {
3266 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3267 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3273 // Save all packages
3275 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3276 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3282 // Save all platforms
3284 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3285 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3286 savePlatform(index
);
3292 To save changed items before exit.
3295 private void exit() {
3296 int result
= JOptionPane
.NO_OPTION
;
3297 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3298 || !GlobalData
.openingPlatformList
.isSaved()) {
3299 result
= showSaveDialog();
3301 if (result
== JOptionPane
.YES_OPTION
) {
3303 } else if (result
== JOptionPane
.NO_OPTION
) {
3305 } else if (result
== JOptionPane
.CANCEL_OPTION
|| result
== JOptionPane
.CLOSED_OPTION
) {
3313 To find all defined PPIs in workspace
3316 private void findPpi() {
3317 FindResult fr
= FindResult
.getInstance("PPI");
3318 fr
.setVisible(true);
3322 To find all defined PROTOCOLs in workspace
3325 private void findProtocol() {
3326 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3327 fr
.setVisible(true);
3331 To find all defined PROTOCOLs in workspace
3334 private void findGuid() {
3335 FindResult fr
= FindResult
.getInstance("GUID");
3336 fr
.setVisible(true);
3340 To find all defined PROTOCOLs in workspace
3343 private void findPcd() {
3344 FindResult fr
= FindResult
.getInstance("PCD");
3345 fr
.setVisible(true);
3349 To find all defined Library Classes in workspace
3352 private void findLibraryClass() {
3353 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3354 fr
.setVisible(true);
3358 To find all defined Library Instances in workspace
3361 private void findLibraryInstance() {
3362 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3363 fr
.setVisible(true);
3367 Switch current workspace to others
3370 private void changeWorkspace() {
3371 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3372 int result
= sw
.showDialog();
3373 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3375 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3377 // Reinit whole window
3380 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3381 + Workspace
.getCurrentWorkspace() + "]");
3386 this.makeEmptyTree();
3392 To create a Far file from current workspace
3395 private void createFar() {
3396 CreateStepOne cso
= new CreateStepOne(this, true);
3397 int result
= cso
.showDialog();
3398 if (result
== DataType
.RETURN_TYPE_OK
) {
3399 String strReturn
= "Far Creation Completed!";
3400 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3401 JOptionPane
.INFORMATION_MESSAGE
);
3407 To install a Far file to current workspace
3410 private void installFar() {
3411 InstallStepOne iso
= new InstallStepOne(this, true);
3412 int result
= iso
.showDialog();
3413 if (result
== DataType
.RETURN_TYPE_OK
) {
3414 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3415 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3416 JOptionPane
.INFORMATION_MESSAGE
);
3419 this.makeEmptyTree();
3425 To remove a Far's items from current workspace
3428 private void removeFar() {
3429 DeleteStepOne dso
= new DeleteStepOne(this, true);
3430 int result
= dso
.showDialog();
3431 if (result
== DataType
.RETURN_TYPE_OK
) {
3432 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3433 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3434 JOptionPane
.INFORMATION_MESSAGE
);
3437 this.makeEmptyTree();
3443 To update an existing Far file
3446 private void updateFar() {
3447 UpdateStepOne uso
= new UpdateStepOne(this, true);
3448 int result
= uso
.showDialog();
3449 if (result
== DataType
.RETURN_TYPE_OK
) {
3450 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3451 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3452 JOptionPane
.INFORMATION_MESSAGE
);
3455 this.makeEmptyTree();
3461 Show Tool Chain Configuration Dialog to setup Tool Chain
3464 private void setupToolChainConfiguration() {
3465 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3469 private void configBuildPreferences() {
3470 Preferences bt
= Preferences
.getInstance();
3478 private void cloneItem() {
3482 // Check if there is any item can be cloned
3484 if (iTree
.getSelectionPath() == null) {
3485 Log
.wrn("Clone", "Please select a target to clone!");
3488 int category
= iTree
.getSelectCategory();
3489 Identification id
= iTree
.getSelectNode().getId();
3491 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3492 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3495 if ((category
== IDefaultMutableTreeNode
.MODULE
)
3496 || (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
)) {
3497 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3499 if ((category
== IDefaultMutableTreeNode
.PACKAGE
)
3500 || (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3501 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3503 if ((category
== IDefaultMutableTreeNode
.PLATFORM
) || (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3504 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3507 Clone c
= new Clone(this, true, mode
, id
);
3508 int result
= c
.showDialog();
3510 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3513 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3514 Tools
.showInformationMessage("Workspace Clone Completed!");
3516 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3517 Tools
.showInformationMessage("Module Clone Completed!");
3518 addModuleToTree(c
.getMid());
3520 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3521 Tools
.showInformationMessage("Package Clone Completed!");
3523 // Add new SpdHeader node to the tree
3525 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3526 IDefaultMutableTreeNode
.PACKAGE
, false,
3527 GlobalData
.vPackageList
.lastElement(),
3528 this.dmtnPackageDescription
);
3529 iTree
.addNode(this.dmtnPackageDescription
, node
);
3531 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3532 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3534 // Add new SpdHeader node to the tree
3536 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3537 GlobalData
.vPlatformList
.lastElement().getName(),
3538 IDefaultMutableTreeNode
.PLATFORM
, false,
3539 GlobalData
.vPlatformList
.lastElement(),
3540 this.dmtnPlatformDescription
);
3541 iTree
.addNode(this.dmtnPlatformDescription
, node
);
3543 if (result
== DataType
.RETURN_TYPE_OK
) {
3548 public void valueChanged(TreeSelectionEvent arg0
) {
3549 // TODO Auto-generated method stub
3553 public void menuCanceled(MenuEvent arg0
) {
3554 // TODO Auto-generated method stub
3558 public void menuDeselected(MenuEvent arg0
) {
3559 // TODO Auto-generated method stub
3563 public void menuSelected(MenuEvent arg0
) {
3564 if (arg0
.getSource() == jMenuFile
) {
3566 // Enable close/close all if some files are opened
3568 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3571 .setEnabled(GlobalData
.openingModuleList
3572 .getModuleOpen(this.currentOpeningModuleIndex
));
3574 .setEnabled(!GlobalData
.openingModuleList
3575 .getModuleSaved(this.currentOpeningModuleIndex
));
3579 .setEnabled(GlobalData
.openingPackageList
3580 .getPackageOpen(this.currentOpeningPackageIndex
));
3582 .setEnabled(!GlobalData
.openingPackageList
3583 .getPackageSaved(this.currentOpeningPackageIndex
));
3587 .setEnabled(GlobalData
.openingPlatformList
3588 .getPlatformOpen(this.currentOpeningPlatformIndex
));
3590 .setEnabled(!GlobalData
.openingPlatformList
3591 .getPlatformSaved(this.currentOpeningPlatformIndex
));
3594 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3595 || GlobalData
.openingPackageList
.isOpen()
3596 || GlobalData
.openingPlatformList
.isOpen());
3599 // Enable save/save all if some files are changed
3601 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3602 || !GlobalData
.openingPackageList
.isSaved()
3603 || !GlobalData
.openingPlatformList
.isSaved());
3606 if (arg0
.getSource() == jMenuTools
) {
3608 // Enable clone when select some items
3610 if (iTree
.getSelectionPath() == null) {
3611 jMenuItemToolsClone
.setEnabled(false);
3613 int category
= iTree
.getSelectCategory();
3614 if (category
== IDefaultMutableTreeNode
.MODULE_DESCRIPTION
3615 || category
== IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
3616 || category
== IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
3617 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3618 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3619 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3620 jMenuItemToolsClone
.setEnabled(false);
3622 jMenuItemToolsClone
.setEnabled(true);
3628 public void keyTyped(KeyEvent arg0
) {
3629 // TODO Auto-generated method stub
3633 public void keyPressed(KeyEvent arg0
) {
3634 // TODO Auto-generated method stub
3638 public void keyReleased(KeyEvent arg0
) {
3639 if (arg0
.getSource() == this.iTree
) {
3640 if (arg0
.getKeyCode() == KeyEvent
.VK_ENTER
) {
3641 this.doubleClickModuleTreeNode();
3647 Search whole workspace and find all module's name and guid, and save them to a file
3650 private void generateGuidsXref() {
3652 // Init File Chooser
3654 JFileChooser fc
= new JFileChooser();
3655 fc
.setCurrentDirectory(new File(Workspace
.getCurrentWorkspace()));
3656 fc
.setSelectedFile(new File(Workspace
.getCurrentWorkspace() + DataType
.FILE_SEPARATOR
3657 + DataType
.GUIDS_XREF_FILE_NAME
));
3658 fc
.setMultiSelectionEnabled(false);
3661 // Get guids xref and save to file
3663 int result
= fc
.showSaveDialog(new JPanel());
3664 if (result
== JFileChooser
.APPROVE_OPTION
) {
3665 Vector
<String
> v
= wt
.getAllModuleGuidXref();
3667 Log
.wrn("No guids found!!!");
3670 File f
= fc
.getSelectedFile();
3674 } catch (IOException e
) {
3675 Log
.wrn("Fail to create file", e
.getMessage());
3676 Log
.err("Fail to create file when generating guids.xref", e
.getMessage());
3679 FileWriter fw
= null;
3680 BufferedWriter bw
= null;
3682 fw
= new FileWriter(f
);
3683 bw
= new BufferedWriter(fw
);
3684 for (int index
= 0; index
< v
.size(); index
++) {
3685 bw
.write(v
.get(index
));
3692 } catch (IOException e
) {
3693 Log
.wrn("Fail to write file", e
.getMessage());
3694 Log
.err("Fail to write file when generating guids.xref", e
.getMessage());
3698 JOptionPane
.showConfirmDialog(null, "File is created", "Generate guids.xref", JOptionPane
.DEFAULT_OPTION
,
3699 JOptionPane
.INFORMATION_MESSAGE
);
3704 Check if WORKSPACE Environment is valid
3707 private void checkWorkspace() {
3708 switch (Workspace
.checkCurrentWorkspace()) {
3709 case Workspace
.WORKSPACE_VALID
:
3711 case Workspace
.WORKSPACE_NOT_DEFINED
:
3715 "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. "
3716 + DataType
.LINE_SEPARATOR
3717 + DataType
.LINE_SEPARATOR
3719 + DataType
.LINE_SEPARATOR
3720 + "This does not change the System Environment Variable."
3721 + DataType
.LINE_SEPARATOR
3722 + "It only applies to where the Wizard will manage modification and file creations.",
3723 "Error", JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3724 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3725 int result
= sw
.showDialog();
3726 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3729 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3733 case Workspace
.WORKSPACE_NOT_EXIST
:
3734 JOptionPane
.showConfirmDialog(null, "Defined WORKSPACE Is Not Existed", "Error",
3735 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3738 case Workspace
.WORKSPACE_NOT_DIRECTORY
:
3739 JOptionPane
.showConfirmDialog(null, "Defined WORKSPACE Is Not A Directory", "Error",
3740 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3743 case Workspace
.WORKSPACE_NOT_VALID
:
3744 JOptionPane
.showConfirmDialog(null, "WORKSPACE Environment Variable Is Not Valid", "Error",
3745 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3748 case Workspace
.WORKSPACE_NO_TARGET_FILE
:
3749 JOptionPane
.showConfirmDialog(null, "Target.txt File Is Not Existed", "Error", JOptionPane
.DEFAULT_OPTION
,
3750 JOptionPane
.ERROR_MESSAGE
);