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
) {
1890 this.makeEmptyTree();
1893 if (arg0
.getSource() == this.jMenuItemFileSave
) {
1897 if (arg0
.getSource() == this.jMenuItemFileSaveAs
) {
1901 if (arg0
.getSource() == this.jMenuItemFileSaveAll
) {
1905 if (arg0
.getSource() == this.jMenuItemFileRefresh
) {
1908 this.makeEmptyTree();
1911 if (arg0
.getSource() == this.jMenuItemFileExit
) {
1915 if (arg0
.getSource() == this.jMenuItemEditFindPpi
) {
1919 if (arg0
.getSource() == this.jMenuItemEditFindProtocol
) {
1920 this.findProtocol();
1923 if (arg0
.getSource() == this.jMenuItemEditFindGuid
) {
1927 if (arg0
.getSource() == this.jMenuItemEditFindPcd
) {
1931 if (arg0
.getSource() == this.jMenuItemEditFindLibraryClass
) {
1932 this.findLibraryClass();
1935 if (arg0
.getSource() == this.jMenuItemEditFindLibraryInstance
) {
1936 this.findLibraryInstance();
1939 if (arg0
.getSource() == jMenuItemToolsBuildPreferences
) {
1940 configBuildPreferences();
1943 if (arg0
.getSource() == this.jMenuItemProjectChangeWorkspace
) {
1944 this.changeWorkspace();
1947 if (arg0
.getSource() == this.jMenuItemProjectCreateFar
) {
1951 if (arg0
.getSource() == this.jMenuItemProjectInstallFar
) {
1955 if (arg0
.getSource() == this.jMenuItemProjectRemoveFar
) {
1959 if (arg0
.getSource() == this.jMenuItemProjectUpdateFar
) {
1963 if (arg0
.getSource() == this.jMenuItemToolsClone
) {
1967 if (arg0
.getSource() == this.jMenuItemToolsToolChainConfiguration
) {
1968 this.setupToolChainConfiguration();
1971 if (arg0
.getSource() == this.jMenuItemToolsGenerateGuidsXref
) {
1972 this.generateGuidsXref();
1975 if (arg0
.getSource() == this.jMenuItemHelpAbout
) {
1976 About a
= new About(this, true);
1977 int result
= a
.showDialog();
1978 if (result
== DataType
.RETURN_TYPE_OK
) {
1985 Create an empty tree if no file is open
1988 private void makeEmptyTree() {
1992 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, false, null, null);
1995 // Make Module Description
1997 dmtnModuleDescription
= new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode
.MODULE_DESCRIPTION
,
1998 false, null, dmtnRoot
);
2001 // First add package
2003 if (GlobalData
.vPackageList
.size() > 0) {
2004 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2005 IDefaultMutableTreeNode dmtnModulePackage
= null;
2006 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2007 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2009 dmtnModulePackage
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
).getName(),
2010 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
2011 GlobalData
.vPackageList
.elementAt(index
),
2012 this.dmtnModuleDescription
);
2013 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2014 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
2015 false, GlobalData
.vPackageList
.elementAt(index
),
2016 this.dmtnModuleDescription
);
2017 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
2018 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2019 false, GlobalData
.vPackageList
.elementAt(index
),
2020 this.dmtnModuleDescription
);
2022 // And then add each module in its package
2024 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(GlobalData
.vPackageList
.elementAt(index
));
2025 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2026 if (vModule
.get(indexJ
).isLibrary()) {
2027 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2028 IDefaultMutableTreeNode
.MODULE
, false,
2029 vModule
.get(indexJ
),
2030 this.dmtnModuleDescription
));
2032 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2033 IDefaultMutableTreeNode
.MODULE
, false,
2034 vModule
.get(indexJ
),
2035 this.dmtnModuleDescription
));
2038 if (dmtnModulePackageModule
.getChildCount() > 0) {
2039 dmtnModulePackage
.add(dmtnModulePackageModule
);
2041 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2042 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
2045 dmtnModuleDescription
.add(dmtnModulePackage
);
2050 // Make Package Description
2052 dmtnPackageDescription
= new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
,
2053 false, null, this.dmtnRoot
);
2054 if (GlobalData
.vPackageList
.size() > 0) {
2055 for (int index
= 0; index
< GlobalData
.vPackageList
.size(); index
++) {
2056 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPackageList
.elementAt(index
)
2058 IDefaultMutableTreeNode
.PACKAGE
, false,
2059 GlobalData
.vPackageList
.elementAt(index
),
2060 this.dmtnPackageDescription
));
2065 // Make Platform Description
2067 dmtnPlatformDescription
= new IDefaultMutableTreeNode("Platforms",
2068 IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
, false,
2069 null, this.dmtnRoot
);
2070 if (GlobalData
.vPlatformList
.size() > 0) {
2071 for (int index
= 0; index
< GlobalData
.vPlatformList
.size(); index
++) {
2072 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(GlobalData
.vPlatformList
.elementAt(index
)
2074 IDefaultMutableTreeNode
.PLATFORM
, false,
2075 GlobalData
.vPlatformList
.elementAt(index
),
2076 this.dmtnPlatformDescription
));
2081 // Add sub nodes to root node
2083 dmtnRoot
.add(dmtnModuleDescription
);
2084 dmtnRoot
.add(dmtnPackageDescription
);
2085 dmtnRoot
.add(dmtnPlatformDescription
);
2086 iTree
= new ITree(dmtnRoot
);
2087 iTree
.addMouseListener(this);
2088 iTree
.addKeyListener(this);
2089 jScrollPaneTree
.setViewportView(iTree
);
2093 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2095 * Override windowClosing to popup warning message to confirm quit
2098 public void windowClosing(WindowEvent arg0
) {
2103 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2105 * Override mouseClicked to check if need display popup menu
2108 public void mouseClicked(MouseEvent arg0
) {
2110 // When double click
2112 if (arg0
.getClickCount() == 2) {
2113 doubleClickModuleTreeNode();
2117 public void mouseEntered(MouseEvent arg0
) {
2118 // TODO Auto-generated method stub
2121 public void mouseExited(MouseEvent arg0
) {
2122 // TODO Auto-generated method stub
2125 public void mousePressed(MouseEvent arg0
) {
2126 // TODO Auto-generated method stub
2129 public void mouseReleased(MouseEvent arg0
) {
2130 // TODO Auto-generated method stub
2134 Remove all Internal Frame of Module Desktop Pane
2137 private void cleanDesktopPaneModule() {
2138 if (jDesktopPaneModule
!= null) {
2139 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
2140 for (int index
= 0; index
< iif
.length
; index
++) {
2141 iif
[index
].dispose();
2147 Remove all Internal Frame of package Desktop Pane
2150 private void cleanDesktopPanePackage() {
2151 if (jDesktopPanePlatform
!= null) {
2152 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
2153 for (int index
= 0; index
< iif
.length
; index
++) {
2154 iif
[index
].dispose();
2160 Remove all Internal Frame of platform Desktop Pane
2163 private void cleanDesktopPanePlatform() {
2164 if (jDesktopPanePlatform
!= null) {
2165 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
2166 for (int index
= 0; index
< iif
.length
; index
++) {
2167 iif
[index
].dispose();
2173 Remove all Internal Frame of all Desktop Panes
2176 private void cleanDesktopPane() {
2177 cleanDesktopPaneModule();
2178 cleanDesktopPanePackage();
2179 cleanDesktopPanePlatform();
2183 Set file filter as input ext
2189 private int getNewFilePath(String ext
) {
2190 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2191 fc
.setAcceptAllFileFilterUsed(false);
2192 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2193 return fc
.showSaveDialog(new JPanel());
2197 Add a module to tree
2199 @param mid The module node to be added
2202 private void addModuleToTree(ModuleIdentification mid
) {
2204 // Add new MsaHeader node to the tree
2206 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MODULE
,
2207 false, mid
, this.dmtnModuleDescription
);
2209 // First find the module belongs to which package
2211 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2212 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2214 // To check if has module node or library node
2216 IDefaultMutableTreeNode parentModuleNode
= null;
2217 IDefaultMutableTreeNode parentLibraryNode
= null;
2218 boolean hasModule
= false;
2219 boolean hasLibrary
= false;
2220 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2221 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2222 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2224 parentLibraryNode
= iNode
;
2226 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2228 parentModuleNode
= iNode
;
2235 if (!mid
.isLibrary()) {
2237 // Create parent node first if has no parent node
2240 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2241 false, mid
.getPackageId(), this.dmtnModuleDescription
);
2242 iTree
.addNode(packageNode
, parentModuleNode
);
2245 iTree
.addNode(parentModuleNode
, node
);
2251 if (mid
.isLibrary()) {
2253 // Create parent node first if has no parent node
2256 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2257 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2258 mid
.getPackageId(), this.dmtnModuleDescription
);
2259 iTree
.addNode(packageNode
, parentLibraryNode
);
2262 iTree
.addNode(parentLibraryNode
, node
);
2269 @param path input file path
2272 private void openModule(String path
, IDefaultMutableTreeNode belongNode
) {
2273 ModuleIdentification id
= GlobalData
.openingModuleList
.getIdByPath(path
);
2276 // The module is not in existing packages
2278 Log
.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2283 // Make the node selected
2285 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MODULE
)));
2288 // Update opening Module list information
2290 if (!iTree
.getSelectNode().isOpening()) {
2292 // Insert sub node of module
2294 insertModuleTreeNode(id
, belongNode
);
2295 iTree
.getSelectNode().setOpening(true);
2298 // Update opening module list
2300 GlobalData
.openingModuleList
.setModuleOpen(id
, true);
2301 Set
<TreePath
> temp
= GlobalData
.openingModuleList
.getTreePathById(id
);
2302 temp
.add(iTree
.getSelectionPath());
2303 GlobalData
.openingModuleList
.setTreePathById(id
, temp
);
2306 // Select msa header node and show it in editor panel
2309 .setSelectionPath(iTree
2310 .getPathOfNode(iTree
2311 .getNodeById(belongNode
, id
, IDefaultMutableTreeNode
.MSA_HEADER
)));
2312 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, GlobalData
.openingModuleList
.getOpeningModuleById(id
));
2313 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
.findIndexOfListById(id
);
2319 @param path input file path
2322 private void openPackage(String path
) {
2323 PackageIdentification id
= GlobalData
.openingPackageList
.getIdByPath(path
);
2326 // The package is not in current workspace
2328 Log
.wrn("Open Package", "The package has not been installed in the current workspace!");
2333 // Make the node selected
2335 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2336 IDefaultMutableTreeNode
.PACKAGE
)));
2338 // Update opening package list information
2340 if (!GlobalData
.openingPackageList
.getPackageOpen(id
)) {
2342 // Insert sub node of module
2344 insertPackageTreeNode(id
);
2345 iTree
.getSelectNode().setOpening(true);
2348 // Update opening module list
2350 GlobalData
.openingPackageList
.setPackageOpen(id
, true);
2351 Set
<TreePath
> temp
= GlobalData
.openingPackageList
.getTreePathById(id
);
2352 temp
.add(iTree
.getSelectionPath());
2353 GlobalData
.openingPackageList
.setTreePathById(id
, temp
);
2356 // Show spd header in editor panel
2358 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2359 IDefaultMutableTreeNode
.SPD_HEADER
)));
2360 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, GlobalData
.openingPackageList
.getOpeningPackageById(id
));
2361 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
.findIndexOfListById(id
);
2367 @param path input file path
2370 private void openPlatform(String path
) {
2371 PlatformIdentification id
= GlobalData
.openingPlatformList
.getIdByPath(path
);
2374 // The platform is not in current workspace
2376 Log
.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2381 // Make the node selected
2383 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2384 IDefaultMutableTreeNode
.PLATFORM
)));
2386 // Update opening package list information
2388 if (!GlobalData
.openingPlatformList
.getPlatformOpen(id
)) {
2390 // Insert sub node of module
2392 insertPlatformTreeNode(id
);
2393 iTree
.getSelectNode().setOpening(true);
2396 // Update opening module list
2398 GlobalData
.openingPlatformList
.setPlatformOpen(id
, true);
2399 Set
<TreePath
> temp
= GlobalData
.openingPlatformList
.getTreePathById(id
);
2400 temp
.add(iTree
.getSelectionPath());
2401 GlobalData
.openingPlatformList
.setTreePathById(id
, temp
);
2404 // Show fpd header in editor panel
2406 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2407 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2408 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2409 GlobalData
.openingPlatformList
.getOpeningPlatformById(id
));
2410 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
.findIndexOfListById(id
);
2417 private void saveModule(int index
) {
2418 OpeningModuleType omt
= GlobalData
.openingModuleList
.getOpeningModuleByIndex(index
);
2420 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2425 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2426 GlobalData
.openingModuleList
.setNew(omt
.getId(), false);
2427 GlobalData
.openingModuleList
.setModuleSaved(omt
.getId(), true);
2428 } catch (Exception e
) {
2429 Log
.wrn("Save Module", e
.getMessage());
2430 Log
.err("Save Module", e
.getMessage());
2438 private void savePackage(int index
) {
2439 OpeningPackageType opt
= GlobalData
.openingPackageList
.getOpeningPackageByIndex(index
);
2441 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2446 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2447 GlobalData
.openingPackageList
.setNew(opt
.getId(), false);
2448 GlobalData
.openingPackageList
.setPackageSaved(opt
.getId(), true);
2449 } catch (Exception e
) {
2450 Log
.wrn("Save Package", e
.getMessage());
2451 Log
.err("Save Package", e
.getMessage());
2459 private void savePlatform(int index
) {
2460 OpeningPlatformType opt
= GlobalData
.openingPlatformList
.getOpeningPlatformByIndex(index
);
2462 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2467 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2468 GlobalData
.openingPlatformList
.setNew(opt
.getId(), false);
2469 GlobalData
.openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2470 } catch (Exception e
) {
2471 Log
.wrn("Save Package", e
.getMessage());
2472 Log
.err("Save Package", e
.getMessage());
2476 public void componentResized(ComponentEvent arg0
) {
2477 if (this.jSplitPane
!= null) {
2478 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2479 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2480 this.jSplitPane
.validate();
2481 resizeDesktopPanel();
2486 Resize JDesktopPanel
2489 private void resizeDesktopPanel() {
2490 resizeDesktopPanel(this.jDesktopPaneModule
);
2491 resizeDesktopPanel(this.jDesktopPanePackage
);
2492 resizeDesktopPanel(this.jDesktopPanePlatform
);
2496 Resize JDesktopPanel
2499 private void resizeDesktopPanel(JDesktopPane jdk
) {
2500 JInternalFrame
[] iif
= jdk
.getAllFrames();
2501 for (int index
= 0; index
< iif
.length
; index
++) {
2502 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2506 private void insertModuleTreeNode(Identification id
, IDefaultMutableTreeNode belongNode
) {
2507 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
,
2509 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
,
2511 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2512 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
,
2515 .addNode(new IDefaultMutableTreeNode("Package Dependencies",
2516 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
, belongNode
));
2517 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
,
2519 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
, belongNode
));
2520 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
, belongNode
));
2521 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
, belongNode
));
2522 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
,
2524 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
,
2526 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
,
2528 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
,
2530 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
,
2532 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
, belongNode
));
2533 iTree
.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
,
2535 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
, belongNode
));
2538 private void insertPackageTreeNode(Identification id
) {
2539 IDefaultMutableTreeNode idmtTemp
= this.dmtnPackageDescription
;
2540 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
,
2542 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2543 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
,
2545 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
,
2547 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2549 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2550 true, id
, idmtTemp
));
2552 .addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2553 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
, idmtTemp
));
2554 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2555 true, id
, idmtTemp
));
2556 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2557 true, id
, idmtTemp
));
2559 // Add modules in this package
2561 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2562 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2564 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2565 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2567 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2568 false, id
, idmtTemp
);
2570 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PackageIdentification(id
));
2571 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2572 if (vModule
.get(indexJ
).isLibrary()) {
2573 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2574 IDefaultMutableTreeNode
.MODULE
, false,
2575 vModule
.get(indexJ
), idmtTemp
));
2577 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2578 IDefaultMutableTreeNode
.MODULE
, false,
2579 vModule
.get(indexJ
), idmtTemp
));
2582 if (dmtnModulePackageModule
.getChildCount() > 0) {
2583 iTree
.addNode(dmtnModulePackageModule
);
2585 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2586 iTree
.addNode(dmtnModulePackageLibrary
);
2590 private void insertPlatformTreeNode(Identification id
) {
2591 IDefaultMutableTreeNode idmtTemp
= this.dmtnPlatformDescription
;
2592 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2594 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2595 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
, idmtTemp
));
2596 iTree
.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
,
2598 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2599 true, id
, idmtTemp
));
2600 iTree
.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2601 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
,
2603 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
,
2607 // Add modules in this platform
2609 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
2610 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
2612 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
2613 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2615 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2616 false, id
, idmtTemp
);
2618 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(new PlatformIdentification(id
));
2619 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
2620 if (vModule
.get(indexJ
).isLibrary()) {
2621 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2622 IDefaultMutableTreeNode
.MODULE
, false,
2623 vModule
.get(indexJ
), idmtTemp
));
2625 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
2626 IDefaultMutableTreeNode
.MODULE
, false,
2627 vModule
.get(indexJ
), idmtTemp
));
2630 if (dmtnModulePackageModule
.getChildCount() > 0) {
2631 iTree
.addNode(dmtnModulePackageModule
);
2633 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
2634 iTree
.addNode(dmtnModulePackageLibrary
);
2639 Operate when double click a tree node
2642 private void doubleClickModuleTreeNode() {
2643 Identification id
= null;
2644 int intCategory
= -1;
2646 IDefaultMutableTreeNode belongNode
= null;
2650 // Get selected tree node
2652 if (iTree
.getSelectNode() != null) {
2653 id
= iTree
.getSelectNode().getId();
2657 // If id is null, return directly
2663 intCategory
= iTree
.getSelectCategory();
2664 belongNode
= iTree
.getSelectNode().getBelongNode();
2667 // If the node is not opened yet
2668 // Insert top level elements first
2670 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2671 path
= iTree
.getSelectNode().getId().getPath();
2672 openModule(path
, belongNode
);
2675 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2676 path
= iTree
.getSelectNode().getId().getPath();
2680 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2681 path
= iTree
.getSelectNode().getId().getPath();
2687 // Show editor panel
2689 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2690 showModuleElement(intCategory
,
2691 GlobalData
.openingModuleList
.getOpeningModuleById(new ModuleIdentification(id
)));
2692 this.currentOpeningModuleIndex
= GlobalData
.openingModuleList
2693 .findIndexOfListById(new ModuleIdentification(
2696 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2697 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2698 showPackageElement(intCategory
,
2699 GlobalData
.openingPackageList
.getOpeningPackageById(new PackageIdentification(id
)));
2700 this.currentOpeningPackageIndex
= GlobalData
.openingPackageList
2701 .findIndexOfListById(new PackageIdentification(
2704 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2705 showPlatformElement(
2707 GlobalData
.openingPlatformList
2708 .getOpeningPlatformById(new PlatformIdentification(id
)));
2709 this.currentOpeningPlatformIndex
= GlobalData
.openingPlatformList
2710 .findIndexOfListById(new PlatformIdentification(
2713 } catch (Exception e
) {
2714 Log
.err("double click category: " + intCategory
);
2715 Log
.err("double click belong node: " + belongNode
.toString());
2716 Log
.err("double click id path: " + id
);
2717 Log
.err("double click exception: " + e
.getMessage());
2722 Show content of editor panel via selected element
2728 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2729 this.cleanDesktopPanePlatform();
2731 switch (elementType
) {
2732 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2733 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2734 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2736 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2737 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2738 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2740 case IDefaultMutableTreeNode
.FPD_FLASH
:
2741 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2742 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2744 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2745 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2746 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2748 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2749 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2750 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2752 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2753 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2754 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2757 this.jTabbedPaneEditor
.setSelectedIndex(2);
2758 resizeDesktopPanel();
2762 Show content of editor panel via selected element
2768 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2769 this.cleanDesktopPanePackage();
2770 Tools
.dirForNewSpd
= spd
.getId().getPath();
2771 switch (elementType
) {
2772 case IDefaultMutableTreeNode
.SPD_HEADER
:
2773 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2774 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2776 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2777 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2778 getJDesktopPanePackage().add(frmSlcd
, 1);
2780 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2781 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2782 getJDesktopPanePackage().add(frmSmf
, 1);
2784 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2785 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2786 getJDesktopPanePackage().add(frmSph
, 1);
2788 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2789 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2790 getJDesktopPanePackage().add(frmSgd
, 1);
2792 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2793 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2794 getJDesktopPanePackage().add(frmSprod
, 1);
2796 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2797 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2798 getJDesktopPanePackage().add(frmSppid
, 1);
2800 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2801 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2802 getJDesktopPanePackage().add(frmSpcdd
, 1);
2805 this.jTabbedPaneEditor
.setSelectedIndex(1);
2806 resizeDesktopPanel();
2810 Show content of editor panel via selected element
2816 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2817 this.cleanDesktopPaneModule();
2818 switch (elementType
) {
2819 case IDefaultMutableTreeNode
.MSA_HEADER
:
2820 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2821 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2823 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2824 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2825 getJDesktopPaneModule().add(frmMlcd
, 1);
2827 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2828 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2829 getJDesktopPaneModule().add(frmMpd
, 1);
2831 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2832 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2833 getJDesktopPaneModule().add(frmMsf
, 1);
2835 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2836 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2837 getJDesktopPaneModule().add(frmMp
, 1);
2839 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2840 ModuleEvents frmMe
= new ModuleEvents(msa
);
2841 getJDesktopPaneModule().add(frmMe
, 1);
2843 case IDefaultMutableTreeNode
.MSA_HOBS
:
2844 ModuleHobs frmMh
= new ModuleHobs(msa
);
2845 getJDesktopPaneModule().add(frmMh
, 1);
2847 case IDefaultMutableTreeNode
.MSA_PPIS
:
2848 ModulePpis frmMpp
= new ModulePpis(msa
);
2849 getJDesktopPaneModule().add(frmMpp
, 1);
2851 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2852 ModuleVariables frmMv
= new ModuleVariables(msa
);
2853 getJDesktopPaneModule().add(frmMv
, 1);
2855 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2856 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2857 getJDesktopPaneModule().add(frmMbm
, 1);
2859 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2860 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2861 getJDesktopPaneModule().add(frmMst
, 1);
2863 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2864 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2865 getJDesktopPaneModule().add(frmMdh
, 1);
2867 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2868 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2869 getJDesktopPaneModule().add(frmMf
, 1);
2871 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2872 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2873 getJDesktopPaneModule().add(frmGuid
, 1);
2875 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2876 ModuleExterns frmMex
= new ModuleExterns(msa
);
2877 getJDesktopPaneModule().add(frmMex
, 1);
2879 case IDefaultMutableTreeNode
.MSA_PCDS
:
2880 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2881 getJDesktopPaneModule().add(frmPcd
, 1);
2884 this.jTabbedPaneEditor
.setSelectedIndex(0);
2885 resizeDesktopPanel();
2889 // Define operations of menu
2895 private void fileNew() {
2898 // Selece new file type
2900 NewFileChooser nfc
= new NewFileChooser(this, true);
2901 result
= nfc
.showDialog();
2903 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2906 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2910 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2911 result
= smb
.showDialog();
2913 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2917 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2918 ModuleIdentification mid
= smb
.getMid();
2921 // Update package of workspace first
2923 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2924 if (GlobalData
.openingPackageList
.existsPackage(mid
.getPackageId())) {
2925 psa
= GlobalData
.openingPackageList
.getPackageSurfaceAreaFromId(mid
.getPackageId());
2928 wt
.addModuleToPackage(mid
, psa
);
2929 } catch (IOException e
) {
2930 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2931 Log
.err("Update MsaFiles in Package", e
.getMessage());
2933 } catch (XmlException e
) {
2934 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2935 Log
.err("Update MsaFiles in Package", e
.getMessage());
2937 } catch (Exception e
) {
2938 Log
.wrn("Update MsaFiles in Package", e
.getMessage());
2939 Log
.err("Update MsaFiles in Package", e
.getMessage());
2944 // Update Global Data
2946 GlobalData
.openingModuleList
.insertToOpeningModuleList(mid
, smb
.getMsa());
2947 GlobalData
.vModuleList
.addElement(mid
);
2950 // Create new node on the tree
2952 addModuleToTree(mid
);
2957 this.openModule(mid
.getPath(), this.dmtnModuleDescription
);
2960 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2964 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2965 result
= smb
.showDialog();
2967 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2971 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2972 PackageIdentification pid
= smb
.getPid();
2975 wt
.addPackageToDatabase(smb
.getPid());
2976 } catch (Exception e
) {
2977 Log
.err("addPackageToDatabase", e
.getMessage());
2981 // Update Global Data
2983 GlobalData
.openingPackageList
.insertToOpeningPackageList(pid
, smb
.getSpd());
2984 GlobalData
.vPackageList
.addElement(pid
);
2987 // Add to Module Description node
2989 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(pid
.getName(),
2990 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2991 false, pid
, this.dmtnModuleDescription
);
2993 iTree
.addNode(dmtnModuleDescription
, node
);
2996 // Add new SpdHeader node to the tree
2998 node
= new IDefaultMutableTreeNode(pid
.getName(), IDefaultMutableTreeNode
.PACKAGE
, true, pid
,
2999 this.dmtnPackageDescription
);
3000 iTree
.addNode(dmtnPackageDescription
, node
);
3002 this.openPackage(pid
.getPath());
3005 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3007 // To new a platform
3009 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
3010 result
= smb
.showDialog();
3012 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3016 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3017 PlatformIdentification fid
= smb
.getFid();
3020 wt
.addPlatformToDatabase(fid
);
3021 } catch (Exception e
) {
3022 Log
.err("addPlatformToDatabase", e
.getMessage());
3026 // Update global data
3028 GlobalData
.openingPlatformList
.insertToOpeningPlatformList(fid
, smb
.getFpd());
3029 GlobalData
.vPlatformList
.addElement(fid
);
3031 // Add new SpdHeader node to the tree
3033 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(fid
.getName(),
3034 IDefaultMutableTreeNode
.PLATFORM
, true,
3035 fid
, this.dmtnPlatformDescription
);
3036 iTree
.addNode(dmtnPlatformDescription
, node
);
3037 this.openPlatform(fid
.getPath());
3047 private void open() {
3048 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
3049 fc
.setAcceptAllFileFilterUsed(false);
3050 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
3051 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
3052 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
3053 fc
.addChoosableFileFilter(iffM
);
3054 fc
.addChoosableFileFilter(iffP
);
3055 fc
.addChoosableFileFilter(iffF
);
3056 fc
.setFileFilter(iffM
);
3058 int result
= fc
.showOpenDialog(new JPanel());
3060 if (result
== JFileChooser
.APPROVE_OPTION
) {
3061 String path
= fc
.getSelectedFile().getPath();
3062 String match
= path
.substring(path
.length() - 4);
3063 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
3064 openModule(path
, this.dmtnModuleDescription
);
3065 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
3067 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
3077 private void close() {
3078 TreePath item
= null;
3079 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3081 // Current is module
3084 if (this.currentOpeningModuleIndex
> -1) {
3085 if (!GlobalData
.openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
3086 int result
= showSaveDialog();
3087 if (result
== JOptionPane
.YES_OPTION
) {
3090 if (result
== JOptionPane
.NO_OPTION
) {
3093 if (result
== JOptionPane
.CANCEL_OPTION
) {
3099 // Remove all tree paths for the module
3101 Set
<TreePath
> openingTreePaths
= GlobalData
.openingModuleList
3102 .getTreePathByIndex(currentOpeningModuleIndex
);
3103 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3104 while (openingTreePathsIter
.hasNext()) {
3105 item
= openingTreePathsIter
.next();
3106 iTree
.getNodeByPath(item
).setOpening(false);
3107 iTree
.removeNodeChildrenByPath(item
);
3110 GlobalData
.openingModuleList
.setModuleOpen(this.currentOpeningModuleIndex
, false);
3111 this.cleanDesktopPaneModule();
3112 this.currentOpeningModuleIndex
= -1;
3116 // Current is package
3119 if (this.currentOpeningPackageIndex
> -1) {
3120 if (!GlobalData
.openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
3121 int result
= showSaveDialog();
3122 if (result
== JOptionPane
.YES_OPTION
) {
3125 if (result
== JOptionPane
.NO_OPTION
) {
3128 if (result
== JOptionPane
.CANCEL_OPTION
) {
3134 // Remove all tree paths for the module
3136 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPackageList
3137 .getTreePathByIndex(currentOpeningPackageIndex
);
3138 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3139 while (openingTreePathsIter
.hasNext()) {
3140 item
= openingTreePathsIter
.next();
3141 iTree
.getNodeByPath(item
).setOpening(false);
3142 iTree
.removeNodeChildrenByPath(item
);
3145 GlobalData
.openingPackageList
.setPackageOpen(this.currentOpeningPackageIndex
, false);
3146 this.cleanDesktopPanePackage();
3147 this.currentOpeningPackageIndex
= -1;
3151 // Current is platform
3154 if (this.currentOpeningPlatformIndex
> -1) {
3155 if (!GlobalData
.openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
3156 int result
= showSaveDialog();
3157 if (result
== JOptionPane
.YES_OPTION
) {
3160 if (result
== JOptionPane
.NO_OPTION
) {
3163 if (result
== JOptionPane
.CANCEL_OPTION
) {
3169 // Remove all tree paths for the module
3171 Set
<TreePath
> openingTreePaths
= GlobalData
.openingPlatformList
3172 .getTreePathByIndex(currentOpeningPlatformIndex
);
3173 Iterator
<TreePath
> openingTreePathsIter
= openingTreePaths
.iterator();
3174 while (openingTreePathsIter
.hasNext()) {
3175 item
= openingTreePathsIter
.next();
3176 iTree
.getNodeByPath(item
).setOpening(false);
3177 iTree
.removeNodeChildrenByPath(item
);
3180 GlobalData
.openingPlatformList
.setPlatformOpen(this.currentOpeningPlatformIndex
, false);
3181 this.cleanDesktopPanePlatform();
3182 this.currentOpeningPlatformIndex
= -1;
3189 Close all opening files and clean all showing internal frame
3192 private void closeAll() {
3194 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3195 || !GlobalData
.openingPlatformList
.isSaved()) {
3196 result
= showSaveDialog();
3198 if (result
== JOptionPane
.YES_OPTION
) {
3201 if (result
== JOptionPane
.NO_OPTION
) {
3206 if (result
== JOptionPane
.CANCEL_OPTION
) {
3209 this.cleanDesktopPane();
3210 GlobalData
.openingModuleList
.closeAll();
3211 GlobalData
.openingPackageList
.closeAll();
3212 GlobalData
.openingPlatformList
.closeAll();
3216 Refresh all global data from disk to memory
3219 private void refresh() {
3224 Save currentModule when press button OK
3227 private void save() {
3228 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3230 if (this.currentOpeningModuleIndex
> -1) {
3231 saveModule(this.currentOpeningModuleIndex
);
3235 if (this.currentOpeningPackageIndex
> -1) {
3236 savePackage(this.currentOpeningPackageIndex
);
3240 if (this.currentOpeningPlatformIndex
> -1) {
3241 savePlatform(this.currentOpeningPlatformIndex
);
3247 private void saveAs() {
3251 private void saveAll() {
3255 for (int index
= 0; index
< GlobalData
.openingModuleList
.size(); index
++) {
3256 if (!GlobalData
.openingModuleList
.getModuleSaved(index
)) {
3262 // Save all packages
3264 for (int index
= 0; index
< GlobalData
.openingPackageList
.size(); index
++) {
3265 if (!GlobalData
.openingPackageList
.getPackageSaved(index
)) {
3271 // Save all platforms
3273 for (int index
= 0; index
< GlobalData
.openingPlatformList
.size(); index
++) {
3274 if (!GlobalData
.openingPlatformList
.getPlatformSaved(index
)) {
3275 savePlatform(index
);
3281 To save changed items before exit.
3284 private void exit() {
3286 if (!GlobalData
.openingModuleList
.isSaved() || !GlobalData
.openingPackageList
.isSaved()
3287 || !GlobalData
.openingPlatformList
.isSaved()) {
3288 result
= showSaveDialog();
3290 if (result
== JOptionPane
.YES_OPTION
) {
3293 if (result
== JOptionPane
.NO_OPTION
) {
3296 if (result
== JOptionPane
.CANCEL_OPTION
) {
3304 To find all defined PPIs in workspace
3307 private void findPpi() {
3308 FindResult fr
= FindResult
.getInstance("PPI");
3309 fr
.setVisible(true);
3313 To find all defined PROTOCOLs in workspace
3316 private void findProtocol() {
3317 FindResult fr
= FindResult
.getInstance("PROTOCOL");
3318 fr
.setVisible(true);
3322 To find all defined PROTOCOLs in workspace
3325 private void findGuid() {
3326 FindResult fr
= FindResult
.getInstance("GUID");
3327 fr
.setVisible(true);
3331 To find all defined PROTOCOLs in workspace
3334 private void findPcd() {
3335 FindResult fr
= FindResult
.getInstance("PCD");
3336 fr
.setVisible(true);
3340 To find all defined Library Classes in workspace
3343 private void findLibraryClass() {
3344 FindResult fr
= FindResult
.getInstance("LIBRARY_CLASS");
3345 fr
.setVisible(true);
3349 To find all defined Library Instances in workspace
3352 private void findLibraryInstance() {
3353 FindResult fr
= FindResult
.getInstance("LIBRARY_INSTANCE");
3354 fr
.setVisible(true);
3358 Switch current workspace to others
3361 private void changeWorkspace() {
3362 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3363 int result
= sw
.showDialog();
3364 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3366 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3368 // Reinit whole window
3371 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3372 + Workspace
.getCurrentWorkspace() + "]");
3382 To create a Far file from current workspace
3385 private void createFar() {
3386 CreateStepOne cso
= new CreateStepOne(this, true);
3387 int result
= cso
.showDialog();
3388 if (result
== DataType
.RETURN_TYPE_OK
) {
3389 String strReturn
= "Far Creation Completed!";
3390 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3391 JOptionPane
.INFORMATION_MESSAGE
);
3397 To install a Far file to current workspace
3400 private void installFar() {
3401 InstallStepOne iso
= new InstallStepOne(this, true);
3402 int result
= iso
.showDialog();
3403 if (result
== DataType
.RETURN_TYPE_OK
) {
3404 String strReturn
= "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3405 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3406 JOptionPane
.INFORMATION_MESSAGE
);
3409 this.makeEmptyTree();
3415 To remove a Far's items from current workspace
3418 private void removeFar() {
3419 DeleteStepOne dso
= new DeleteStepOne(this, true);
3420 int result
= dso
.showDialog();
3421 if (result
== DataType
.RETURN_TYPE_OK
) {
3422 String strReturn
= "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3423 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3424 JOptionPane
.INFORMATION_MESSAGE
);
3427 this.makeEmptyTree();
3433 To update an existing Far file
3436 private void updateFar() {
3437 UpdateStepOne uso
= new UpdateStepOne(this, true);
3438 int result
= uso
.showDialog();
3439 if (result
== DataType
.RETURN_TYPE_OK
) {
3440 String strReturn
= "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3441 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3442 JOptionPane
.INFORMATION_MESSAGE
);
3445 this.makeEmptyTree();
3451 Show Tool Chain Configuration Dialog to setup Tool Chain
3454 private void setupToolChainConfiguration() {
3455 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3459 private void configBuildPreferences() {
3460 Preferences bt
= Preferences
.getInstance();
3468 private void cloneItem() {
3472 // Check if there is any item can be cloned
3474 if (iTree
.getSelectionPath() == null) {
3475 Log
.wrn("Clone", "Please select a target to clone!");
3478 int category
= iTree
.getSelectCategory();
3479 Identification id
= iTree
.getSelectNode().getId();
3481 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3482 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3485 if ((category
== IDefaultMutableTreeNode
.MODULE
)
3486 || (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
)) {
3487 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3489 if ((category
== IDefaultMutableTreeNode
.PACKAGE
)
3490 || (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3491 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3493 if ((category
== IDefaultMutableTreeNode
.PLATFORM
) || (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)) {
3494 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3497 Clone c
= new Clone(this, true, mode
, id
);
3498 int result
= c
.showDialog();
3500 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3503 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3504 Tools
.showInformationMessage("Workspace Clone Completed!");
3506 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3507 Tools
.showInformationMessage("Module Clone Completed!");
3508 addModuleToTree(c
.getMid());
3510 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3511 Tools
.showInformationMessage("Package Clone Completed!");
3513 // Add new SpdHeader node to the tree
3515 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(GlobalData
.vPackageList
.lastElement().getName(),
3516 IDefaultMutableTreeNode
.PACKAGE
, false,
3517 GlobalData
.vPackageList
.lastElement(),
3518 this.dmtnPackageDescription
);
3519 iTree
.addNode(this.dmtnPackageDescription
, node
);
3521 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3522 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3524 // Add new SpdHeader node to the tree
3526 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(
3527 GlobalData
.vPlatformList
.lastElement().getName(),
3528 IDefaultMutableTreeNode
.PLATFORM
, false,
3529 GlobalData
.vPlatformList
.lastElement(),
3530 this.dmtnPlatformDescription
);
3531 iTree
.addNode(this.dmtnPlatformDescription
, node
);
3533 if (result
== DataType
.RETURN_TYPE_OK
) {
3538 public void valueChanged(TreeSelectionEvent arg0
) {
3539 // TODO Auto-generated method stub
3543 public void menuCanceled(MenuEvent arg0
) {
3544 // TODO Auto-generated method stub
3548 public void menuDeselected(MenuEvent arg0
) {
3549 // TODO Auto-generated method stub
3553 public void menuSelected(MenuEvent arg0
) {
3554 if (arg0
.getSource() == jMenuFile
) {
3556 // Enable close/close all if some files are opened
3558 jMenuItemFileClose
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3559 || GlobalData
.openingPackageList
.isOpen()
3560 || GlobalData
.openingPlatformList
.isOpen());
3561 jMenuItemFileCloseAll
.setEnabled(GlobalData
.openingModuleList
.isOpen()
3562 || GlobalData
.openingPackageList
.isOpen()
3563 || GlobalData
.openingPlatformList
.isOpen());
3566 // Enable save/save all if some files are changed
3568 jMenuItemFileSave
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3569 || !GlobalData
.openingPackageList
.isSaved()
3570 || !GlobalData
.openingPlatformList
.isSaved());
3571 jMenuItemFileSaveAll
.setEnabled(!GlobalData
.openingModuleList
.isSaved()
3572 || !GlobalData
.openingPackageList
.isSaved()
3573 || !GlobalData
.openingPlatformList
.isSaved());
3576 if (arg0
.getSource() == jMenuTools
) {
3578 // Enable clone when select some items
3580 if (iTree
.getSelectionPath() == null) {
3581 jMenuItemToolsClone
.setEnabled(false);
3583 int category
= iTree
.getSelectCategory();
3584 if (category
== IDefaultMutableTreeNode
.MODULE_DESCRIPTION
3585 || category
== IDefaultMutableTreeNode
.PACKAGE_DESCRIPTION
3586 || category
== IDefaultMutableTreeNode
.PLATFORM_DESCRIPTION
3587 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3588 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3589 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3590 jMenuItemToolsClone
.setEnabled(false);
3592 jMenuItemToolsClone
.setEnabled(true);
3598 public void keyTyped(KeyEvent arg0
) {
3599 // TODO Auto-generated method stub
3603 public void keyPressed(KeyEvent arg0
) {
3604 // TODO Auto-generated method stub
3608 public void keyReleased(KeyEvent arg0
) {
3609 if (arg0
.getSource() == this.iTree
) {
3610 if (arg0
.getKeyCode() == KeyEvent
.VK_ENTER
) {
3611 this.doubleClickModuleTreeNode();
3617 Search whole workspace and find all module's name and guid, and save them to a file
3620 private void generateGuidsXref() {
3622 // Init File Chooser
3624 JFileChooser fc
= new JFileChooser();
3625 fc
.setCurrentDirectory(new File(Workspace
.getCurrentWorkspace()));
3626 fc
.setSelectedFile(new File(Workspace
.getCurrentWorkspace() + DataType
.FILE_SEPARATOR
3627 + DataType
.GUIDS_XREF_FILE_NAME
));
3628 fc
.setMultiSelectionEnabled(false);
3631 // Get guids xref and save to file
3633 int result
= fc
.showSaveDialog(new JPanel());
3634 if (result
== JFileChooser
.APPROVE_OPTION
) {
3635 Vector
<String
> v
= wt
.getAllModuleGuidXref();
3637 Log
.wrn("No guids found!!!");
3640 File f
= fc
.getSelectedFile();
3644 } catch (IOException e
) {
3645 Log
.wrn("Fail to create file", e
.getMessage());
3646 Log
.err("Fail to create file when generating guids.xref", e
.getMessage());
3649 FileWriter fw
= null;
3650 BufferedWriter bw
= null;
3652 fw
= new FileWriter(f
);
3653 bw
= new BufferedWriter(fw
);
3654 for (int index
= 0; index
< v
.size(); index
++) {
3655 bw
.write(v
.get(index
));
3662 } catch (IOException e
) {
3663 Log
.wrn("Fail to write file", e
.getMessage());
3664 Log
.err("Fail to write file when generating guids.xref", e
.getMessage());
3668 JOptionPane
.showConfirmDialog(null, "File is created", "Generate guids.xref", JOptionPane
.DEFAULT_OPTION
,
3669 JOptionPane
.INFORMATION_MESSAGE
);
3674 Check if WORKSPACE Environment is valid
3677 private void checkWorkspace() {
3678 switch (Workspace
.checkCurrentWorkspace()) {
3679 case Workspace
.WORKSPACE_VALID
:
3681 case Workspace
.WORKSPACE_NOT_DEFINED
:
3685 "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. " +
3686 DataType
.LINE_SEPARATOR
+ DataType
.LINE_SEPARATOR
+ "NOTICE:" +
3687 DataType
.LINE_SEPARATOR
+ "This does not change the System Environment Variable." +
3688 DataType
.LINE_SEPARATOR
+ "It only applies to where the Wizard will manage modification and file creations.",
3689 "Error", JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3690 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3691 int result
= sw
.showDialog();
3692 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3695 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3699 case Workspace
.WORKSPACE_NOT_EXIST
:
3700 JOptionPane
.showConfirmDialog(null, "Defined WORKSPACE Is Not Existed", "Error",
3701 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3704 case Workspace
.WORKSPACE_NOT_DIRECTORY
:
3705 JOptionPane
.showConfirmDialog(null, "Defined WORKSPACE Is Not A Directory", "Error",
3706 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);
3709 case Workspace
.WORKSPACE_NOT_VALID
:
3710 JOptionPane
.showConfirmDialog(null, "WORKSPACE Environment Variable Is Not Valid", "Error",
3711 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.ERROR_MESSAGE
);