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
.ComponentListener
;
21 import java
.awt
.event
.MouseEvent
;
22 import java
.awt
.event
.MouseListener
;
23 import java
.awt
.event
.WindowEvent
;
24 import java
.io
.IOException
;
25 import java
.util
.Vector
;
27 import javax
.swing
.JButton
;
28 import javax
.swing
.JCheckBoxMenuItem
;
29 import javax
.swing
.JDesktopPane
;
30 import javax
.swing
.JFileChooser
;
31 import javax
.swing
.JFrame
;
32 import javax
.swing
.JInternalFrame
;
33 import javax
.swing
.JMenu
;
34 import javax
.swing
.JMenuBar
;
35 import javax
.swing
.JMenuItem
;
36 import javax
.swing
.JOptionPane
;
37 import javax
.swing
.JPanel
;
38 import javax
.swing
.JScrollPane
;
39 import javax
.swing
.JSplitPane
;
40 import javax
.swing
.JTabbedPane
;
41 import javax
.swing
.event
.MenuEvent
;
42 import javax
.swing
.event
.MenuListener
;
43 import javax
.swing
.event
.TreeSelectionEvent
;
44 import javax
.swing
.event
.TreeSelectionListener
;
46 import org
.apache
.xmlbeans
.XmlException
;
47 import org
.tianocore
.ModuleSurfaceAreaDocument
;
48 import org
.tianocore
.PackageSurfaceAreaDocument
;
49 import org
.tianocore
.PlatformSurfaceAreaDocument
;
50 import org
.tianocore
.frameworkwizard
.common
.DataType
;
51 import org
.tianocore
.frameworkwizard
.common
.IFileFilter
;
52 import org
.tianocore
.frameworkwizard
.common
.Log
;
53 import org
.tianocore
.frameworkwizard
.common
.OpenFile
;
54 import org
.tianocore
.frameworkwizard
.common
.SaveFile
;
55 import org
.tianocore
.frameworkwizard
.common
.Tools
;
56 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
57 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleList
;
58 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningModuleType
;
59 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageList
;
60 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPackageType
;
61 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformList
;
62 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpeningPlatformType
;
63 import org
.tianocore
.frameworkwizard
.common
.ui
.IDefaultMutableTreeNode
;
64 import org
.tianocore
.frameworkwizard
.common
.ui
.IDesktopManager
;
65 import org
.tianocore
.frameworkwizard
.common
.ui
.IFrame
;
66 import org
.tianocore
.frameworkwizard
.common
.ui
.ITree
;
67 import org
.tianocore
.frameworkwizard
.far
.createui
.CreateStepOne
;
68 import org
.tianocore
.frameworkwizard
.far
.deleteui
.DeleteStepOne
;
69 import org
.tianocore
.frameworkwizard
.far
.installui
.InstallStepOne
;
70 import org
.tianocore
.frameworkwizard
.far
.updateui
.UpdateStepOne
;
71 import org
.tianocore
.frameworkwizard
.module
.Identifications
.ModuleIdentification
;
72 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
73 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
74 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDefinitions
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
83 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
84 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
85 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
86 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
87 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
88 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
89 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
90 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
91 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
92 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
93 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
94 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageDefinitions
;
95 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
96 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
97 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
98 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
99 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
100 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
101 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
102 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
103 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
104 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
105 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
106 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
107 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
108 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
111 The class is used to show main GUI of FrameworkWizard
112 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
115 public class FrameworkWizardUI
extends IFrame
implements MouseListener
, TreeSelectionListener
, ComponentListener
,
118 /// Define class Serial Version UID
120 private static final long serialVersionUID
= -7103240960573031772L;
123 /// Used to save information of all files
125 private Vector
<ModuleIdentification
> vModuleList
= new Vector
<ModuleIdentification
>();
127 private Vector
<PackageIdentification
> vPackageList
= new Vector
<PackageIdentification
>();
129 private Vector
<PlatformIdentification
> vPlatformList
= new Vector
<PlatformIdentification
>();
131 private OpeningModuleList openingModuleList
= new OpeningModuleList();
133 private OpeningPackageList openingPackageList
= new OpeningPackageList();
135 private OpeningPlatformList openingPlatformList
= new OpeningPlatformList();
137 private int currentOpeningModuleIndex
= -1;
139 private int currentOpeningPackageIndex
= -1;
141 private int currentOpeningPlatformIndex
= -1;
144 /// Used to generate tree structure
146 private IDefaultMutableTreeNode dmtnRoot
= null;
148 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
150 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
152 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
157 private JPanel jContentPane
= null;
159 private JMenuBar jMenuBar
= null;
161 private JMenu jMenuFile
= null;
163 private JMenuItem jMenuItemFileNew
= null;
165 private JMenuItem jMenuItemFileSaveAs
= null;
167 private JMenuItem jMenuItemFileExit
= null;
169 private JMenu jMenuEdit
= null;
171 private JDesktopPane jDesktopPaneModule
= null;
173 private JDesktopPane jDesktopPanePackage
= null;
175 private JDesktopPane jDesktopPanePlatform
= null;
177 private JTabbedPane jTabbedPaneTree
= null;
179 private JTabbedPane jTabbedPaneEditor
= null;
181 private IDesktopManager iDesktopManager
= new IDesktopManager();
183 private JScrollPane jScrollPaneTree
= null;
185 private ITree iTree
= null;
187 private JMenu jMenuHelp
= null;
189 private JMenuItem jMenuItemHelpAbout
= null;
191 private JMenuItem jMenuItemEditDelete
= null;
193 private WorkspaceTools wt
= new WorkspaceTools();
195 private JMenuItem jMenuItemFileSave
= null;
197 private JMenuItem jMenuItemFileClose
= null;
199 private JMenu jMenuTools
= null;
201 private JMenu jMenuWindow
= null;
203 private JPanel jPanelOperation
= null;
205 private JButton jButtonOk
= null;
207 private JButton jButtonCancel
= null;
209 private JMenuItem jMenuItemFileOpen
= null;
211 private JMenuItem jMenuItemFileCloseAll
= null;
213 private JMenuItem jMenuItemFileSaveAll
= null;
215 private JMenuItem jMenuItemFilePageSetup
= null;
217 private JMenuItem jMenuItemFilePrint
= null;
219 private JMenuItem jMenuItemFileImport
= null;
221 private JMenuItem jMenuItemFileProperties
= null;
223 private JMenu jMenuFileRecentFiles
= null;
225 private JSplitPane jSplitPane
= null;
227 private JMenuItem jMenuItemEditUndo
= null;
229 private JMenuItem jMenuItemEditRedo
= null;
231 private JMenuItem jMenuItemEditCut
= null;
233 private JMenuItem jMenuItemEditCopy
= null;
235 private JMenuItem jMenuItemEditPaste
= null;
237 private JMenuItem jMenuItemEditSelectAll
= null;
239 private JMenuItem jMenuItemEditFind
= null;
241 private JMenuItem jMenuItemEditFindNext
= null;
243 private JMenu jMenuView
= null;
245 private JMenu jMenuViewToolbars
= null;
247 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
249 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
251 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
253 private JMenuItem jMenuItemViewStandard
= null;
255 private JMenuItem jMenuItemViewAdvanced
= null;
257 private JMenu jMenuProject
= null;
259 private JMenuItem jMenuItemProjectAdmin
= null;
261 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
263 private JMenu jMenuProjectBuildTargets
= null;
265 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug
= null;
267 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease
= null;
269 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
271 private JMenuItem jMenuItemToolsClone
= null;
273 private JMenuItem jMenuItemToolsCodeScan
= null;
275 private JMenuItem jMenuItemWindowDisplaySide
= null;
277 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
279 private JMenuItem jMenuItemViewXML
= null;
281 private JMenuItem jMenuItemWindowTabView
= null;
283 private JMenuItem jMenuItemWindowSource
= null;
285 private JMenuItem jMenuItemWindowXML
= null;
287 private JMenuItem jMenuItemWindowPreferences
= null;
289 private JMenuItem jMenuItemHelpContents
= null;
291 private JMenuItem jMenuItemHelpIndex
= null;
293 private JMenuItem jMenuItemHelpSearch
= null;
295 private JMenuItem jMenuItemProjectInstallFar
= null;
297 private JMenuItem jMenuItemProjectUpdateFar
= null;
299 private JMenuItem jMenuItemProjectRemoveFar
= null;
301 private JMenuItem jMenuItemProjectCreateFar
= null;
304 /// A static definition for this class itself
306 private static FrameworkWizardUI fwui
= null;
309 If the class hasn't an instnace, new one.
311 @return FrameworkWizardUI The instance of this class
314 public static FrameworkWizardUI
getInstance() {
316 fwui
= new FrameworkWizardUI();
322 This method initializes jMenuBar
324 @return javax.swing.JMenuBar Main menu bar for the entire GUI
327 private JMenuBar
getjJMenuBar() {
328 if (jMenuBar
== null) {
329 jMenuBar
= new JMenuBar();
330 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
331 jMenuBar
.add(getJMenuFile());
332 jMenuBar
.add(getJMenuEdit());
333 jMenuBar
.add(getJMenuView());
334 jMenuBar
.add(getJMenuProject());
335 jMenuBar
.add(getJMenuTools());
336 jMenuBar
.add(getJMenuWindow());
337 jMenuBar
.add(getJMenuHelp());
343 This method initializes jSplitPane
345 @return javax.swing.JSplitPane
348 private JSplitPane
getJSplitPane() {
349 if (jSplitPane
== null) {
350 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
351 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
352 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
353 jSplitPane
.addComponentListener(this);
359 This method initializes jTabbedPaneEditor
361 @return javax.swing.JTabbedPane
364 private JTabbedPane
getJTabbedPaneEditor() {
365 if (jTabbedPaneEditor
== null) {
366 jTabbedPaneEditor
= new JTabbedPane();
367 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
368 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
369 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
370 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
372 .setMinimumSize(new java
.awt
.Dimension(
373 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
374 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
375 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
376 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
377 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
379 return jTabbedPaneEditor
;
383 This method initializes jTabbedPaneTree
385 @return javax.swing.JTabbedPane
388 private JTabbedPane
getJTabbedPaneTree() {
389 if (jTabbedPaneTree
== null) {
390 jTabbedPaneTree
= new JTabbedPane();
392 .setPreferredSize(new java
.awt
.Dimension(
393 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
394 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
396 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
397 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
398 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
400 return jTabbedPaneTree
;
404 This method initializes jMenuFile
406 @return javax.swing.JMenu jMenuModule
409 private JMenu
getJMenuFile() {
410 if (jMenuFile
== null) {
412 // Set jMenuFile's attributes
414 jMenuFile
= new JMenu();
415 jMenuFile
.setText("File");
416 jMenuFile
.setMnemonic('F');
417 jMenuFile
.addMenuListener(this);
420 // Add sub menu items
422 jMenuFile
.add(getJMenuItemFileNew());
423 jMenuFile
.add(getJMenuItemFileOpen());
424 jMenuFile
.add(getJMenuItemFileClose());
425 jMenuFile
.add(getJMenuItemFileCloseAll());
426 jMenuFile
.addSeparator();
428 jMenuFile
.add(getJMenuFileRecentFiles());
429 jMenuFile
.add(getJMenuItemFileSave());
430 jMenuFile
.add(getJMenuItemFileSaveAs());
431 jMenuFile
.add(getJMenuItemFileSaveAll());
432 jMenuFile
.addSeparator();
434 jMenuFile
.add(getJMenuItemFilePageSetup());
435 jMenuFile
.add(getJMenuItemFilePrint());
436 jMenuFile
.add(getJMenuItemFileImport());
437 jMenuFile
.add(getJMenuItemFileProperties());
439 jMenuFile
.add(getJMenuItemFileExit());
445 This method initializes jMenuItemFileSaveAs
447 @return javax.swing.JMenuItem jMenuItemFileSaveAs
450 private JMenuItem
getJMenuItemFileSaveAs() {
451 if (jMenuItemFileSaveAs
== null) {
452 jMenuItemFileSaveAs
= new JMenuItem();
453 jMenuItemFileSaveAs
.setText("Save As...");
454 jMenuItemFileSaveAs
.setMnemonic('a');
455 jMenuItemFileSaveAs
.addActionListener(this);
456 jMenuItemFileSaveAs
.setEnabled(false);
457 jMenuItemFileSaveAs
.setVisible(false);
459 return jMenuItemFileSaveAs
;
463 This method initializes jMenuItemModuleExit
465 @return javax.swing.JMenuItem jMenuItemModuleExit
468 private JMenuItem
getJMenuItemFileExit() {
469 if (jMenuItemFileExit
== null) {
470 jMenuItemFileExit
= new JMenuItem();
471 jMenuItemFileExit
.setText("Exit");
472 jMenuItemFileExit
.setMnemonic('x');
473 jMenuItemFileExit
.addActionListener(this);
475 return jMenuItemFileExit
;
479 This method initializes jMenuEdit
481 @return javax.swing.JMenu jMenuEdit
484 private JMenu
getJMenuEdit() {
485 if (jMenuEdit
== null) {
487 // Set jMenuEdit's attributes
489 jMenuEdit
= new JMenu();
490 jMenuEdit
.setText("Edit");
491 jMenuEdit
.setMnemonic('E');
492 jMenuEdit
.setVisible(false);
495 // Add sub menu items
497 jMenuEdit
.add(getJMenuItemEditUndo());
498 jMenuEdit
.add(getJMenuItemEditRedo());
499 jMenuEdit
.addSeparator();
501 jMenuEdit
.add(getJMenuItemEditCut());
502 jMenuEdit
.add(getJMenuItemEditCopy());
503 jMenuEdit
.add(getJMenuItemEditPaste());
504 jMenuEdit
.add(getJMenuItemEditDelete());
505 jMenuEdit
.addSeparator();
507 jMenuEdit
.add(getJMenuItemEditSelectAll());
508 jMenuEdit
.add(getJMenuItemEditFind());
509 jMenuEdit
.add(getJMenuItemEditFindNext());
510 jMenuEdit
.addSeparator();
516 This method initializes jDesktopPane
518 @return javax.swing.JDesktopPane jDesktopPane
521 private JDesktopPane
getJDesktopPaneModule() {
522 if (jDesktopPaneModule
== null) {
523 jDesktopPaneModule
= new JDesktopPane();
525 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
526 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
527 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
528 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
530 .setMinimumSize(new java
.awt
.Dimension(
531 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
532 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
533 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
534 jDesktopPaneModule
.addComponentListener(this);
536 return jDesktopPaneModule
;
540 This method initializes jDesktopPane
542 @return javax.swing.JDesktopPane jDesktopPane
545 private JDesktopPane
getJDesktopPanePackage() {
546 if (jDesktopPanePackage
== null) {
547 jDesktopPanePackage
= new JDesktopPane();
549 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
550 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
551 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
552 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
554 .setMinimumSize(new java
.awt
.Dimension(
555 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
556 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
557 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
558 jDesktopPanePackage
.addComponentListener(this);
560 return jDesktopPanePackage
;
564 This method initializes jDesktopPane
566 @return javax.swing.JDesktopPane jDesktopPane
569 private JDesktopPane
getJDesktopPanePlatform() {
570 if (jDesktopPanePlatform
== null) {
571 jDesktopPanePlatform
= new JDesktopPane();
573 .setBounds(new java
.awt
.Rectangle(
574 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
575 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
576 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
577 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
579 .setMinimumSize(new java
.awt
.Dimension(
580 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
581 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
582 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
583 jDesktopPanePlatform
.addComponentListener(this);
585 return jDesktopPanePlatform
;
589 This method initializes jScrollPaneTree
591 @return javax.swing.JScrollPane jScrollPaneTree
594 private JScrollPane
getJScrollPaneTree() {
595 if (jScrollPaneTree
== null) {
596 jScrollPaneTree
= new JScrollPane();
598 .setPreferredSize(new java
.awt
.Dimension(
599 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
600 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
602 .setMinimumSize(new java
.awt
.Dimension(
603 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
604 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
605 jScrollPaneTree
.setViewportView(getITree());
607 return jScrollPaneTree
;
611 This method initializes iTree
613 @return org.tianocore.packaging.common.ui.ITree iTree
616 private ITree
getITree() {
618 //Before open a real module, use an empty root node for the tree
625 This method initializes jMenuHelp
627 @return javax.swing.JMenu jMenuHelp
630 private JMenu
getJMenuHelp() {
631 if (jMenuHelp
== null) {
633 // Set jMenuHelp's attributes
635 jMenuHelp
= new JMenu();
636 jMenuHelp
.setText("Help");
639 // Add sub menu items
641 jMenuHelp
.add(getJMenuItemHelpContents());
642 jMenuHelp
.add(getJMenuItemHelpIndex());
643 jMenuHelp
.add(getJMenuItemHelpSearch());
645 jMenuHelp
.add(getJMenuItemHelpAbout());
651 This method initializes jMenuItemHelpAbout
653 @return javax.swing.JMenuItem jMenuItemHelpAbout
656 private JMenuItem
getJMenuItemHelpAbout() {
657 if (jMenuItemHelpAbout
== null) {
658 jMenuItemHelpAbout
= new JMenuItem();
659 jMenuItemHelpAbout
.setText("About...");
660 jMenuItemHelpAbout
.addActionListener(this);
662 return jMenuItemHelpAbout
;
666 This method initializes jMenuItemEditDelete
668 @return javax.swing.JMenuItem jMenuItemEditDelete
671 private JMenuItem
getJMenuItemEditDelete() {
672 if (jMenuItemEditDelete
== null) {
673 jMenuItemEditDelete
= new JMenuItem();
674 jMenuItemEditDelete
.setText("Delete");
675 jMenuItemEditDelete
.setMnemonic('D');
676 jMenuItemEditDelete
.addActionListener(this);
678 //Disabled first when no module is open
680 jMenuItemEditDelete
.setEnabled(false);
682 return jMenuItemEditDelete
;
686 This method initializes jMenuFileNew
688 @return javax.swing.JMenuItem jMenuFileNew
691 private JMenuItem
getJMenuItemFileNew() {
692 if (jMenuItemFileNew
== null) {
693 jMenuItemFileNew
= new JMenuItem();
694 jMenuItemFileNew
.setText("New...");
695 jMenuItemFileNew
.setMnemonic('N');
696 jMenuItemFileNew
.addActionListener(this);
698 return jMenuItemFileNew
;
702 This method initializes jMenuItemFileSave
704 @return javax.swing.JMenuItem jMenuItemModuleSave
707 private JMenuItem
getJMenuItemFileSave() {
708 if (jMenuItemFileSave
== null) {
709 jMenuItemFileSave
= new JMenuItem();
710 jMenuItemFileSave
.setText("Save");
711 jMenuItemFileSave
.setMnemonic('S');
712 jMenuItemFileSave
.addActionListener(this);
713 jMenuItemFileSave
.setEnabled(true);
715 return jMenuItemFileSave
;
719 This method initializes jMenuItemModuleClose
721 @return javax.swing.JMenuItem jMenuItemModuleClose
724 private JMenuItem
getJMenuItemFileClose() {
725 if (jMenuItemFileClose
== null) {
726 jMenuItemFileClose
= new JMenuItem();
727 jMenuItemFileClose
.setText("Close");
728 jMenuItemFileClose
.setMnemonic('C');
729 jMenuItemFileClose
.setEnabled(true);
730 jMenuItemFileClose
.addActionListener(this);
732 return jMenuItemFileClose
;
736 This method initializes jMenuTools
739 @return javax.swing.JMenu jMenuTools
742 private JMenu
getJMenuTools() {
743 if (jMenuTools
== null) {
745 // Set jMenuTools's attributes
747 jMenuTools
= new JMenu();
748 jMenuTools
.setText("Tools");
749 jMenuTools
.setMnemonic('T');
750 jMenuTools
.addMenuListener(this);
753 // Add sub menu items
755 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
756 jMenuTools
.addSeparator();
758 jMenuTools
.add(getJMenuItemToolsClone());
759 jMenuTools
.add(getJMenuItemToolsCodeScan());
765 This method initializes jMenuWindow
768 @return javax.swing.JMenu jMenuWindow
771 private JMenu
getJMenuWindow() {
772 if (jMenuWindow
== null) {
774 // Set jMenuWindow's attribute
776 jMenuWindow
= new JMenu();
777 jMenuWindow
.setText("Window");
778 jMenuWindow
.setMnemonic('W');
779 jMenuWindow
.setVisible(false);
782 // Add sub menu items
784 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
785 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
786 jMenuWindow
.addSeparator();
788 jMenuWindow
.add(getJMenuItemWindowTabView());
789 jMenuWindow
.addSeparator();
791 jMenuWindow
.add(getJMenuItemWindowSource());
792 jMenuWindow
.add(getJMenuItemWindowXML());
793 jMenuWindow
.addSeparator();
795 jMenuWindow
.add(getJMenuItemWindowPreferences());
801 This method initializes jPanelOperation
804 @return javax.swing.JPanel jPanelOperation
807 private JPanel
getJPanelOperation() {
808 if (jPanelOperation
== null) {
809 jPanelOperation
= new JPanel();
810 jPanelOperation
.setLayout(null);
811 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
812 jPanelOperation
.add(getJButtonOk(), null);
813 jPanelOperation
.add(getJButtonCancel(), null);
814 jPanelOperation
.setVisible(false);
816 return jPanelOperation
;
820 This method initializes jButtonOk
823 @return javax.swing.JButton jButtonOk
826 private JButton
getJButtonOk() {
827 if (jButtonOk
== null) {
828 jButtonOk
= new JButton();
829 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
830 jButtonOk
.setText("Ok");
831 jButtonOk
.setEnabled(false);
832 jButtonOk
.addActionListener(this);
838 This method initializes jButtonCancel
841 @return javax.swing.JButton jButtonCancel
844 private JButton
getJButtonCancel() {
845 if (jButtonCancel
== null) {
846 jButtonCancel
= new JButton();
847 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
848 jButtonCancel
.setText("Cancel");
849 jButtonCancel
.setEnabled(false);
850 jButtonCancel
.addActionListener(this);
851 jButtonCancel
.setVisible(false);
853 return jButtonCancel
;
857 This method initializes jMenuItemFileOpen
859 @return javax.swing.JMenuItem jMenuItemFileOpen
862 private JMenuItem
getJMenuItemFileOpen() {
863 if (jMenuItemFileOpen
== null) {
864 jMenuItemFileOpen
= new JMenuItem();
865 jMenuItemFileOpen
.setText("Open...");
866 jMenuItemFileOpen
.setMnemonic('O');
867 jMenuItemFileOpen
.addActionListener(this);
869 return jMenuItemFileOpen
;
873 This method initializes jMenuItemFileCloseAll
875 @return javax.swing.JMenuItem jMenuItemFileOpen
878 private JMenuItem
getJMenuItemFileCloseAll() {
879 if (jMenuItemFileCloseAll
== null) {
880 jMenuItemFileCloseAll
= new JMenuItem();
881 jMenuItemFileCloseAll
.setText("Close All");
882 jMenuItemFileCloseAll
.setEnabled(true);
883 jMenuItemFileCloseAll
.addActionListener(this);
885 return jMenuItemFileCloseAll
;
889 This method initializes jMenuItemFileSaveAll
891 @return javax.swing.JMenuItem jMenuItemFileSaveAll
894 private JMenuItem
getJMenuItemFileSaveAll() {
895 if (jMenuItemFileSaveAll
== null) {
896 jMenuItemFileSaveAll
= new JMenuItem();
897 jMenuItemFileSaveAll
.setText("Save All");
898 jMenuItemFileSaveAll
.setMnemonic('v');
899 jMenuItemFileSaveAll
.setEnabled(true);
900 jMenuItemFileSaveAll
.addActionListener(this);
902 return jMenuItemFileSaveAll
;
906 This method initializes jMenuItemFilePageSetup
908 @return javax.swing.JMenuItem
911 private JMenuItem
getJMenuItemFilePageSetup() {
912 if (jMenuItemFilePageSetup
== null) {
913 jMenuItemFilePageSetup
= new JMenuItem();
914 jMenuItemFilePageSetup
.setText("Page Setup");
915 jMenuItemFilePageSetup
.setMnemonic('u');
916 jMenuItemFilePageSetup
.setEnabled(false);
917 jMenuItemFilePageSetup
.addActionListener(this);
918 jMenuItemFilePageSetup
.setVisible(false);
920 return jMenuItemFilePageSetup
;
924 This method initializes jMenuItemFilePrint
926 @return javax.swing.JMenuItem
929 private JMenuItem
getJMenuItemFilePrint() {
930 if (jMenuItemFilePrint
== null) {
931 jMenuItemFilePrint
= new JMenuItem();
932 jMenuItemFilePrint
.setText("Print");
933 jMenuItemFilePrint
.setMnemonic('P');
934 jMenuItemFilePrint
.setEnabled(false);
935 jMenuItemFilePrint
.addActionListener(this);
936 jMenuItemFilePrint
.setVisible(false);
938 return jMenuItemFilePrint
;
942 This method initializes jMenuItemFileImport
944 @return javax.swing.JMenuItem
947 private JMenuItem
getJMenuItemFileImport() {
948 if (jMenuItemFileImport
== null) {
949 jMenuItemFileImport
= new JMenuItem();
950 jMenuItemFileImport
.setText("Import");
951 jMenuItemFileImport
.setMnemonic('I');
952 jMenuItemFileImport
.setEnabled(false);
953 jMenuItemFileImport
.addActionListener(this);
954 jMenuItemFileImport
.setVisible(false);
956 return jMenuItemFileImport
;
960 This method initializes jMenuItemFileProperties
962 @return javax.swing.JMenuItem
965 private JMenuItem
getJMenuItemFileProperties() {
966 if (jMenuItemFileProperties
== null) {
967 jMenuItemFileProperties
= new JMenuItem();
968 jMenuItemFileProperties
.setText("Properties");
969 jMenuItemFileProperties
.setMnemonic('t');
970 jMenuItemFileProperties
.setEnabled(false);
971 jMenuItemFileProperties
.addActionListener(this);
972 jMenuItemFileProperties
.setVisible(false);
974 return jMenuItemFileProperties
;
978 This method initializes jMenuFileRecentFiles
980 @return javax.swing.JMenu
983 private JMenu
getJMenuFileRecentFiles() {
984 if (jMenuFileRecentFiles
== null) {
985 jMenuFileRecentFiles
= new JMenu();
986 jMenuFileRecentFiles
.setText("Recent Files");
987 jMenuFileRecentFiles
.setMnemonic('F');
988 jMenuFileRecentFiles
.setEnabled(false);
989 jMenuFileRecentFiles
.addActionListener(this);
990 jMenuFileRecentFiles
.setVisible(false);
992 return jMenuFileRecentFiles
;
996 This method initializes jMenuItemEditUndo
998 @return javax.swing.JMenuItem
1001 private JMenuItem
getJMenuItemEditUndo() {
1002 if (jMenuItemEditUndo
== null) {
1003 jMenuItemEditUndo
= new JMenuItem();
1004 jMenuItemEditUndo
.setText("Undo");
1005 jMenuItemEditUndo
.setMnemonic('U');
1006 jMenuItemEditUndo
.setEnabled(false);
1007 jMenuItemEditUndo
.addActionListener(this);
1009 return jMenuItemEditUndo
;
1013 This method initializes jMenuItemEditRedo
1015 @return javax.swing.JMenuItem
1018 private JMenuItem
getJMenuItemEditRedo() {
1019 if (jMenuItemEditRedo
== null) {
1020 jMenuItemEditRedo
= new JMenuItem();
1021 jMenuItemEditRedo
.setText("Redo");
1022 jMenuItemEditRedo
.setMnemonic('R');
1023 jMenuItemEditRedo
.setEnabled(false);
1024 jMenuItemEditRedo
.addActionListener(this);
1026 return jMenuItemEditRedo
;
1030 This method initializes jMenuItemEditCut
1032 @return javax.swing.JMenuItem
1035 private JMenuItem
getJMenuItemEditCut() {
1036 if (jMenuItemEditCut
== null) {
1037 jMenuItemEditCut
= new JMenuItem();
1038 jMenuItemEditCut
.setText("Cut");
1039 jMenuItemEditCut
.setMnemonic('t');
1040 jMenuItemEditCut
.setEnabled(false);
1041 jMenuItemEditCut
.addActionListener(this);
1043 return jMenuItemEditCut
;
1047 This method initializes jMenuItemEditCopy
1049 @return javax.swing.JMenuItem
1052 private JMenuItem
getJMenuItemEditCopy() {
1053 if (jMenuItemEditCopy
== null) {
1054 jMenuItemEditCopy
= new JMenuItem();
1055 jMenuItemEditCopy
.setText("Copy");
1056 jMenuItemEditCopy
.setMnemonic('C');
1057 jMenuItemEditCopy
.setEnabled(false);
1058 jMenuItemEditCopy
.addActionListener(this);
1060 return jMenuItemEditCopy
;
1064 This method initializes jMenuItemEditPaste
1066 return javax.swing.JMenuItem
1069 private JMenuItem
getJMenuItemEditPaste() {
1070 if (jMenuItemEditPaste
== null) {
1071 jMenuItemEditPaste
= new JMenuItem();
1072 jMenuItemEditPaste
.setText("Paste");
1073 jMenuItemEditPaste
.setMnemonic('P');
1074 jMenuItemEditPaste
.setEnabled(false);
1075 jMenuItemEditPaste
.addActionListener(this);
1077 return jMenuItemEditPaste
;
1081 This method initializes jMenuItem
1083 @return javax.swing.JMenuItem
1086 private JMenuItem
getJMenuItemEditSelectAll() {
1087 if (jMenuItemEditSelectAll
== null) {
1088 jMenuItemEditSelectAll
= new JMenuItem();
1089 jMenuItemEditSelectAll
.setText("Select All");
1090 jMenuItemEditSelectAll
.setMnemonic('A');
1091 jMenuItemEditSelectAll
.setEnabled(false);
1092 jMenuItemEditSelectAll
.addActionListener(this);
1094 return jMenuItemEditSelectAll
;
1098 This method initializes jMenuItemEditFind
1100 @return javax.swing.JMenuItem
1103 private JMenuItem
getJMenuItemEditFind() {
1104 if (jMenuItemEditFind
== null) {
1105 jMenuItemEditFind
= new JMenuItem();
1106 jMenuItemEditFind
.setText("Find");
1107 jMenuItemEditFind
.setMnemonic('F');
1108 jMenuItemEditFind
.setEnabled(false);
1109 jMenuItemEditFind
.addActionListener(this);
1111 return jMenuItemEditFind
;
1115 This method initializes jMenuItemEditFindNext
1117 @return javax.swing.JMenuItem
1120 private JMenuItem
getJMenuItemEditFindNext() {
1121 if (jMenuItemEditFindNext
== null) {
1122 jMenuItemEditFindNext
= new JMenuItem();
1123 jMenuItemEditFindNext
.setText("Find Next");
1124 jMenuItemEditFindNext
.setMnemonic('n');
1125 jMenuItemEditFindNext
.setEnabled(false);
1126 jMenuItemEditFindNext
.addActionListener(this);
1128 return jMenuItemEditFindNext
;
1132 This method initializes jMenuView
1134 @return javax.swing.JMenu
1137 private JMenu
getJMenuView() {
1138 if (jMenuView
== null) {
1140 // Set jMenuView's attributes
1142 jMenuView
= new JMenu();
1143 jMenuView
.setText("View");
1144 jMenuView
.setMnemonic('V');
1145 jMenuView
.setVisible(false);
1148 // Add sub menu items
1150 jMenuView
.add(getJMenuViewToolbars());
1151 jMenuView
.add(getJMenuItemViewAdvanced());
1152 jMenuView
.add(getJMenuItemViewStandard());
1153 jMenuView
.add(getJMenuItemViewXML());
1159 This method initializes jMenuViewToolbars
1161 @return javax.swing.JMenu
1164 private JMenu
getJMenuViewToolbars() {
1165 if (jMenuViewToolbars
== null) {
1166 jMenuViewToolbars
= new JMenu();
1167 jMenuViewToolbars
.setText("Toolbars");
1168 jMenuViewToolbars
.setMnemonic('T');
1170 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1171 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1172 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1174 return jMenuViewToolbars
;
1178 This method initializes jCheckBoxMenuItemViewToolbarsFile
1180 @return javax.swing.JCheckBoxMenuItem
1183 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1184 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1185 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1186 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1187 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1188 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1190 return jCheckBoxMenuItemViewToolbarsFile
;
1194 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1196 @return javax.swing.JCheckBoxMenuItem
1199 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1200 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1201 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1202 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1203 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1204 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1206 return jCheckBoxMenuItemViewToolbarsEdit
;
1210 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1212 @return javax.swing.JCheckBoxMenuItem
1215 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1216 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1217 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1218 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1219 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1220 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1222 return jCheckBoxMenuItemViewToolbarsWindow
;
1226 This method initializes jMenuItemStandard
1228 @return javax.swing.JMenuItem
1231 private JMenuItem
getJMenuItemViewStandard() {
1232 if (jMenuItemViewStandard
== null) {
1233 jMenuItemViewStandard
= new JMenuItem();
1234 jMenuItemViewStandard
.setText("Standard");
1235 jMenuItemViewStandard
.setMnemonic('S');
1236 jMenuItemViewStandard
.setEnabled(false);
1237 jMenuItemViewStandard
.addActionListener(this);
1239 return jMenuItemViewStandard
;
1243 This method initializes jMenuItemAdvanced
1245 @return javax.swing.JMenuItem
1248 private JMenuItem
getJMenuItemViewAdvanced() {
1249 if (jMenuItemViewAdvanced
== null) {
1250 jMenuItemViewAdvanced
= new JMenuItem();
1251 jMenuItemViewAdvanced
.setText("Advanced");
1252 jMenuItemViewAdvanced
.setMnemonic('A');
1253 jMenuItemViewAdvanced
.setEnabled(false);
1254 jMenuItemViewAdvanced
.addActionListener(this);
1256 return jMenuItemViewAdvanced
;
1260 This method initializes jMenuProject
1262 @return javax.swing.JMenu
1265 private JMenu
getJMenuProject() {
1266 if (jMenuProject
== null) {
1268 // Set jMenuProject's attributes
1270 jMenuProject
= new JMenu();
1271 jMenuProject
.setText("Project");
1272 jMenuProject
.setMnemonic('P');
1275 // Add sub menu items
1277 jMenuProject
.add(getJMenuItemProjectAdmin());
1279 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1280 jMenuProject
.addSeparator();
1282 jMenuProject
.add(getJMenuItemProjectCreateFar());
1283 jMenuProject
.add(getJMenuItemProjectInstallFar());
1284 jMenuProject
.add(getJMenuItemProjectUpdateFar());
1285 jMenuProject
.add(getJMenuItemProjectRemoveFar());
1287 jMenuProject
.add(getJMenuProjectBuildTargets());
1289 return jMenuProject
;
1293 This method initializes jMenuItemProjectAdmin
1295 @return javax.swing.JMenuItem
1298 private JMenuItem
getJMenuItemProjectAdmin() {
1299 if (jMenuItemProjectAdmin
== null) {
1300 jMenuItemProjectAdmin
= new JMenuItem();
1301 jMenuItemProjectAdmin
.setText("Admin...");
1302 jMenuItemProjectAdmin
.setMnemonic('A');
1303 jMenuItemProjectAdmin
.setEnabled(false);
1304 jMenuItemProjectAdmin
.addActionListener(this);
1305 jMenuItemProjectAdmin
.setVisible(false);
1307 return jMenuItemProjectAdmin
;
1311 This method initializes jMenuItemProjectChangeWorkspace
1313 @return javax.swing.JMenuItem
1316 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1317 if (jMenuItemProjectChangeWorkspace
== null) {
1318 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1319 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1320 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1321 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1322 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1324 return jMenuItemProjectChangeWorkspace
;
1328 This method initializes jMenuProjectBuildTargets
1330 @return javax.swing.JMenu
1333 private JMenu
getJMenuProjectBuildTargets() {
1334 if (jMenuProjectBuildTargets
== null) {
1335 jMenuProjectBuildTargets
= new JMenu();
1336 jMenuProjectBuildTargets
.setText("Build Targets");
1337 jMenuProjectBuildTargets
.setMnemonic('T');
1338 jMenuProjectBuildTargets
.setVisible(false);
1340 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());
1341 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());
1343 return jMenuProjectBuildTargets
;
1347 This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug
1349 @return javax.swing.JCheckBoxMenuItem
1352 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsDebug() {
1353 if (jCheckBoxMenuItemProjectBuildTargetsDebug
== null) {
1354 jCheckBoxMenuItemProjectBuildTargetsDebug
= new JCheckBoxMenuItem();
1355 jCheckBoxMenuItemProjectBuildTargetsDebug
.setText("Debug");
1356 jCheckBoxMenuItemProjectBuildTargetsDebug
.setEnabled(false);
1358 return jCheckBoxMenuItemProjectBuildTargetsDebug
;
1362 This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease
1364 @return javax.swing.JCheckBoxMenuItem
1367 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsRelease() {
1368 if (jCheckBoxMenuItemProjectBuildTargetsRelease
== null) {
1369 jCheckBoxMenuItemProjectBuildTargetsRelease
= new JCheckBoxMenuItem();
1370 jCheckBoxMenuItemProjectBuildTargetsRelease
.setText("Release");
1371 jCheckBoxMenuItemProjectBuildTargetsRelease
.setEnabled(false);
1373 return jCheckBoxMenuItemProjectBuildTargetsRelease
;
1377 This method initializes jMenuItemToolsToolChainConfiguration
1379 @return javax.swing.JMenuItem
1382 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1383 if (jMenuItemToolsToolChainConfiguration
== null) {
1384 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1385 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1386 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1387 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1389 return jMenuItemToolsToolChainConfiguration
;
1393 This method initializes jMenuItemToolsClone
1395 @return javax.swing.JMenuItem
1398 private JMenuItem
getJMenuItemToolsClone() {
1399 if (jMenuItemToolsClone
== null) {
1400 jMenuItemToolsClone
= new JMenuItem();
1401 jMenuItemToolsClone
.setText("Clone...");
1402 jMenuItemToolsClone
.setMnemonic('l');
1403 jMenuItemToolsClone
.setEnabled(true);
1404 jMenuItemToolsClone
.addActionListener(this);
1406 return jMenuItemToolsClone
;
1410 This method initializes jMenuItemToolsCodeScan
1412 @return javax.swing.JMenuItem
1415 private JMenuItem
getJMenuItemToolsCodeScan() {
1416 if (jMenuItemToolsCodeScan
== null) {
1417 jMenuItemToolsCodeScan
= new JMenuItem();
1418 jMenuItemToolsCodeScan
.setText("Code Scan...");
1419 jMenuItemToolsCodeScan
.setMnemonic('S');
1420 jMenuItemToolsCodeScan
.setEnabled(false);
1421 jMenuItemToolsCodeScan
.addActionListener(this);
1422 jMenuItemToolsCodeScan
.setVisible(false);
1424 return jMenuItemToolsCodeScan
;
1428 This method initializes jMenuItemWindowSplitVertical
1430 @return javax.swing.JMenuItem
1433 private JMenuItem
getJMenuItemWindowDisplaySide() {
1434 if (jMenuItemWindowDisplaySide
== null) {
1435 jMenuItemWindowDisplaySide
= new JMenuItem();
1436 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1437 jMenuItemWindowDisplaySide
.setMnemonic('S');
1438 jMenuItemWindowDisplaySide
.setEnabled(false);
1439 jMenuItemWindowDisplaySide
.addActionListener(this);
1441 return jMenuItemWindowDisplaySide
;
1445 This method initializes jMenuItemWindowSplitHorizontal
1447 @return javax.swing.JMenuItem
1450 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1451 if (jMenuItemWindowDisplayTopBottom
== null) {
1452 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1453 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1454 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1455 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1456 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1458 return jMenuItemWindowDisplayTopBottom
;
1462 This method initializes jMenuItemViewXML
1464 @return javax.swing.JMenuItem
1467 private JMenuItem
getJMenuItemViewXML() {
1468 if (jMenuItemViewXML
== null) {
1469 jMenuItemViewXML
= new JMenuItem();
1470 jMenuItemViewXML
.setText("XML");
1471 jMenuItemViewXML
.setMnemonic('X');
1472 jMenuItemViewXML
.setEnabled(false);
1473 jMenuItemViewXML
.addActionListener(this);
1475 return jMenuItemViewXML
;
1479 This method initializes jMenuItemWindowTabView
1481 @return javax.swing.JMenuItem
1484 private JMenuItem
getJMenuItemWindowTabView() {
1485 if (jMenuItemWindowTabView
== null) {
1486 jMenuItemWindowTabView
= new JMenuItem();
1487 jMenuItemWindowTabView
.setText("Tab View");
1488 jMenuItemWindowTabView
.setMnemonic('T');
1489 jMenuItemWindowTabView
.setEnabled(false);
1490 jMenuItemWindowTabView
.addActionListener(this);
1492 return jMenuItemWindowTabView
;
1496 This method initializes jMenuItemWindowSource
1498 @return javax.swing.JMenuItem
1501 private JMenuItem
getJMenuItemWindowSource() {
1502 if (jMenuItemWindowSource
== null) {
1503 jMenuItemWindowSource
= new JMenuItem();
1504 jMenuItemWindowSource
.setText("Source");
1505 jMenuItemWindowSource
.setMnemonic('S');
1506 jMenuItemWindowSource
.setEnabled(false);
1507 jMenuItemWindowSource
.addActionListener(this);
1509 return jMenuItemWindowSource
;
1513 This method initializes jMenuItemWindowXML
1515 @return javax.swing.JMenuItem
1518 private JMenuItem
getJMenuItemWindowXML() {
1519 if (jMenuItemWindowXML
== null) {
1520 jMenuItemWindowXML
= new JMenuItem();
1521 jMenuItemWindowXML
.setText("XML");
1522 jMenuItemWindowXML
.setMnemonic('X');
1523 jMenuItemWindowXML
.setEnabled(false);
1524 jMenuItemWindowXML
.addActionListener(this);
1526 return jMenuItemWindowXML
;
1530 This method initializes jMenuItemWindowPreferences
1532 @return javax.swing.JMenuItem
1535 private JMenuItem
getJMenuItemWindowPreferences() {
1536 if (jMenuItemWindowPreferences
== null) {
1537 jMenuItemWindowPreferences
= new JMenuItem();
1538 jMenuItemWindowPreferences
.setText("Preferences");
1539 jMenuItemWindowPreferences
.setMnemonic('P');
1540 jMenuItemWindowPreferences
.setEnabled(false);
1541 jMenuItemWindowPreferences
.addActionListener(this);
1543 return jMenuItemWindowPreferences
;
1547 This method initializes jMenuItemHelpContents
1549 @return javax.swing.JMenuItem
1552 private JMenuItem
getJMenuItemHelpContents() {
1553 if (jMenuItemHelpContents
== null) {
1554 jMenuItemHelpContents
= new JMenuItem();
1555 jMenuItemHelpContents
.setText("Contents");
1556 jMenuItemHelpContents
.setMnemonic('C');
1557 jMenuItemHelpContents
.setEnabled(false);
1558 jMenuItemHelpContents
.addActionListener(this);
1559 jMenuItemHelpContents
.setVisible(false);
1561 return jMenuItemHelpContents
;
1565 This method initializes jMenuItemHelpIndex
1567 @return javax.swing.JMenuItem
1570 private JMenuItem
getJMenuItemHelpIndex() {
1571 if (jMenuItemHelpIndex
== null) {
1572 jMenuItemHelpIndex
= new JMenuItem();
1573 jMenuItemHelpIndex
.setText("Index");
1574 jMenuItemHelpIndex
.setMnemonic('I');
1575 jMenuItemHelpIndex
.setEnabled(false);
1576 jMenuItemHelpIndex
.addActionListener(this);
1577 jMenuItemHelpIndex
.setVisible(false);
1579 return jMenuItemHelpIndex
;
1583 This method initializes jMenuItemHelpSearch
1585 @return javax.swing.JMenuItem
1588 private JMenuItem
getJMenuItemHelpSearch() {
1589 if (jMenuItemHelpSearch
== null) {
1590 jMenuItemHelpSearch
= new JMenuItem();
1591 jMenuItemHelpSearch
.setText("Search");
1592 jMenuItemHelpSearch
.setMnemonic('S');
1593 jMenuItemHelpSearch
.setEnabled(false);
1594 jMenuItemHelpSearch
.addActionListener(this);
1595 jMenuItemHelpSearch
.setVisible(false);
1597 return jMenuItemHelpSearch
;
1601 * This method initializes jMenuItemToolsInstallPackage
1603 * @return javax.swing.JMenuItem
1605 private JMenuItem
getJMenuItemProjectInstallFar() {
1606 if (jMenuItemProjectInstallFar
== null) {
1607 jMenuItemProjectInstallFar
= new JMenuItem();
1608 jMenuItemProjectInstallFar
.setText("Install FAR");
1609 jMenuItemProjectInstallFar
.setMnemonic('I');
1610 jMenuItemProjectInstallFar
.setEnabled(true);
1611 jMenuItemProjectInstallFar
.addActionListener(this);
1613 return jMenuItemProjectInstallFar
;
1617 * This method initializes jMenuItemToolsUpdatePackage
1619 * @return javax.swing.JMenuItem
1621 private JMenuItem
getJMenuItemProjectUpdateFar() {
1622 if (jMenuItemProjectUpdateFar
== null) {
1623 jMenuItemProjectUpdateFar
= new JMenuItem();
1624 jMenuItemProjectUpdateFar
.setText("Update FAR");
1625 jMenuItemProjectUpdateFar
.setMnemonic('U');
1626 jMenuItemProjectUpdateFar
.setEnabled(true);
1627 jMenuItemProjectUpdateFar
.addActionListener(this);
1628 jMenuItemProjectUpdateFar
.setVisible(true);
1630 return jMenuItemProjectUpdateFar
;
1634 * This method initializes jMenuItemRemovePackage
1636 * @return javax.swing.JMenuItem
1638 private JMenuItem
getJMenuItemProjectRemoveFar() {
1639 if (jMenuItemProjectRemoveFar
== null) {
1640 jMenuItemProjectRemoveFar
= new JMenuItem();
1641 jMenuItemProjectRemoveFar
.setText("Remove FAR");
1642 jMenuItemProjectRemoveFar
.setMnemonic('R');
1643 jMenuItemProjectRemoveFar
.setEnabled(true);
1644 jMenuItemProjectRemoveFar
.addActionListener(this);
1646 return jMenuItemProjectRemoveFar
;
1650 * This method initializes jMenuItemProjectCreateFar
1652 * @return javax.swing.JMenuItem
1654 private JMenuItem
getJMenuItemProjectCreateFar() {
1655 if (jMenuItemProjectCreateFar
== null) {
1656 jMenuItemProjectCreateFar
= new JMenuItem();
1657 jMenuItemProjectCreateFar
.setText("Create FAR");
1658 jMenuItemProjectCreateFar
.setMnemonic('C');
1659 jMenuItemProjectCreateFar
.addActionListener(this);
1661 return jMenuItemProjectCreateFar
;
1665 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1667 * Main class, start the GUI
1670 public static void main(String
[] args
) {
1671 FrameworkWizardUI module
= FrameworkWizardUI
.getInstance();
1672 module
.setVisible(true);
1676 This is the default constructor
1679 public FrameworkWizardUI() {
1685 This method initializes this
1689 private void init() {
1691 // Set current workspace and check
1692 // Check if exists WORKSPACE
1695 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1696 if (!Workspace
.checkCurrentWorkspace()) {
1697 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1698 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1703 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1704 this.setResizable(true);
1705 this.setJMenuBar(getjJMenuBar());
1706 this.addComponentListener(this);
1707 this.getCompontentsFromFrameworkDatabase();
1708 this.setContentPane(getJContentPane());
1709 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
1710 + Workspace
.getCurrentWorkspace() + "]");
1711 this.setExitType(1);
1716 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1720 This method initializes jContentPane
1722 @return javax.swing.JPanel jContentPane
1725 private JPanel
getJContentPane() {
1726 if (jContentPane
== null) {
1727 jContentPane
= new JPanel();
1728 jContentPane
.setLayout(null);
1729 jContentPane
.add(getJPanelOperation(), null);
1730 jContentPane
.add(getJSplitPane(), null);
1732 return jContentPane
;
1736 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1738 * Override actionPerformed to listen all actions
1741 public void actionPerformed(ActionEvent arg0
) {
1743 // Operations of Menu
1745 if (arg0
.getSource() == jMenuItemFileNew
) {
1749 if (arg0
.getSource() == jMenuItemFileOpen
) {
1753 if (arg0
.getSource() == jMenuItemFileClose
) {
1757 if (arg0
.getSource() == jMenuItemFileCloseAll
) {
1761 if (arg0
.getSource() == jMenuItemFileSave
) {
1765 if (arg0
.getSource() == jMenuItemFileSaveAs
) {
1769 if (arg0
.getSource() == jMenuItemFileSaveAll
) {
1773 if (arg0
.getSource() == jMenuItemFileExit
) {
1777 if (arg0
.getSource() == jMenuItemProjectChangeWorkspace
) {
1781 if (arg0
.getSource() == jMenuItemProjectCreateFar
) {
1785 if (arg0
.getSource() == jMenuItemProjectInstallFar
) {
1789 if (arg0
.getSource() == jMenuItemProjectRemoveFar
) {
1793 if (arg0
.getSource() == jMenuItemProjectUpdateFar
) {
1797 if (arg0
.getSource() == jMenuItemToolsClone
) {
1801 if (arg0
.getSource() == jMenuItemToolsToolChainConfiguration
) {
1802 setupToolChainConfiguration();
1805 if (arg0
.getSource() == jMenuItemHelpAbout
) {
1806 About a
= new About(this, true);
1807 int result
= a
.showDialog();
1808 if (result
== DataType
.RETURN_TYPE_OK
) {
1815 Create an empty tree if no file is open
1818 private void makeEmptyTree() {
1822 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1825 // Make Module Description
1827 dmtnModuleDescription
= new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode
.MODULE
, -1);
1830 // First add package
1832 if (this.vPackageList
.size() > 0) {
1833 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1834 IDefaultMutableTreeNode dmtnModulePackage
= null;
1835 IDefaultMutableTreeNode dmtnModulePackageLibrary
= null;
1836 IDefaultMutableTreeNode dmtnModulePackageModule
= null;
1838 dmtnModulePackage
= new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1839 IDefaultMutableTreeNode
.MODULE_PACKAGE
, false,
1840 this.vPackageList
.elementAt(index
));
1841 dmtnModulePackageLibrary
= new IDefaultMutableTreeNode("Library",
1842 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
,
1843 false, this.vPackageList
.elementAt(index
));
1844 dmtnModulePackageModule
= new IDefaultMutableTreeNode("Module",
1845 IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
1846 false, this.vPackageList
.elementAt(index
));
1848 // And then add each module in its package
1850 Vector
<ModuleIdentification
> vModule
= wt
.getAllModules(this.vPackageList
.elementAt(index
));
1851 for (int indexJ
= 0; indexJ
< vModule
.size(); indexJ
++) {
1852 if (vModule
.get(indexJ
).isLibrary()) {
1853 dmtnModulePackageLibrary
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1854 IDefaultMutableTreeNode
.MODULE
,
1855 false, vModule
.get(indexJ
)));
1857 dmtnModulePackageModule
.add(new IDefaultMutableTreeNode(vModule
.get(indexJ
).getName(),
1858 IDefaultMutableTreeNode
.MODULE
,
1859 false, vModule
.get(indexJ
)));
1862 if (dmtnModulePackageModule
.getChildCount() > 0) {
1863 dmtnModulePackage
.add(dmtnModulePackageModule
);
1865 if (dmtnModulePackageLibrary
.getChildCount() > 0) {
1866 dmtnModulePackage
.add(dmtnModulePackageLibrary
);
1869 dmtnModuleDescription
.add(dmtnModulePackage
);
1874 // Make Package Description
1876 dmtnPackageDescription
= new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode
.PACKAGE
, -1);
1877 if (this.vPackageList
.size() > 0) {
1878 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1879 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1880 IDefaultMutableTreeNode
.PACKAGE
, false,
1881 this.vPackageList
.elementAt(index
)));
1886 // Make Platform Description
1888 dmtnPlatformDescription
= new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode
.PLATFORM
,
1890 if (this.vPlatformList
.size() > 0) {
1891 for (int index
= 0; index
< this.vPlatformList
.size(); index
++) {
1892 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(this.vPlatformList
.elementAt(index
).getName(),
1893 IDefaultMutableTreeNode
.PLATFORM
,
1894 false, this.vPlatformList
.elementAt(index
)));
1899 // Add sub nodes to root node
1901 dmtnRoot
.add(dmtnModuleDescription
);
1902 dmtnRoot
.add(dmtnPackageDescription
);
1903 dmtnRoot
.add(dmtnPlatformDescription
);
1904 iTree
= new ITree(dmtnRoot
);
1905 iTree
.addMouseListener(this);
1906 jScrollPaneTree
.setViewportView(iTree
);
1910 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
1912 * Override windowClosing to popup warning message to confirm quit
1915 public void windowClosing(WindowEvent arg0
) {
1920 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
1922 * Override mouseClicked to check if need display popup menu
1925 public void mouseClicked(MouseEvent arg0
) {
1926 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
1928 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
1931 // When double click
1933 if (arg0
.getClickCount() == 2) {
1934 doubleClickModuleTreeNode();
1938 public void mouseEntered(MouseEvent arg0
) {
1939 // TODO Auto-generated method stub
1942 public void mouseExited(MouseEvent arg0
) {
1943 // TODO Auto-generated method stub
1946 public void mousePressed(MouseEvent arg0
) {
1947 // TODO Auto-generated method stub
1950 public void mouseReleased(MouseEvent arg0
) {
1951 // TODO Auto-generated method stub
1955 Remove all Internal Frame of Module Desktop Pane
1958 private void cleanDesktopPaneModule() {
1959 if (jDesktopPaneModule
!= null) {
1960 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
1961 for (int index
= 0; index
< iif
.length
; index
++) {
1962 iif
[index
].dispose();
1968 Remove all Internal Frame of package Desktop Pane
1971 private void cleanDesktopPanePackage() {
1972 if (jDesktopPanePlatform
!= null) {
1973 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
1974 for (int index
= 0; index
< iif
.length
; index
++) {
1975 iif
[index
].dispose();
1981 Remove all Internal Frame of platform Desktop Pane
1984 private void cleanDesktopPanePlatform() {
1985 if (jDesktopPanePlatform
!= null) {
1986 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
1987 for (int index
= 0; index
< iif
.length
; index
++) {
1988 iif
[index
].dispose();
1994 Remove all Internal Frame of all Desktop Panes
1997 private void cleanDesktopPane() {
1998 cleanDesktopPaneModule();
1999 cleanDesktopPanePackage();
2000 cleanDesktopPanePlatform();
2004 Set file filter as input ext
2010 private int getNewFilePath(String ext
) {
2011 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2012 fc
.setAcceptAllFileFilterUsed(false);
2013 fc
.addChoosableFileFilter(new IFileFilter(ext
));
2014 return fc
.showSaveDialog(new JPanel());
2018 Add a module to tree
2020 @param mid The module node to be added
2023 private void addModuleToTree(ModuleIdentification mid
) {
2025 // Add new MsaHeader node to the tree
2027 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(mid
.getName(), IDefaultMutableTreeNode
.MSA_HEADER
,
2030 // First find the module belongs to which package
2032 IDefaultMutableTreeNode packageNode
= iTree
.getNodeById(dmtnModuleDescription
, mid
.getPackageId(),
2033 IDefaultMutableTreeNode
.MODULE_PACKAGE
);
2035 // To check if has module node or library node
2037 IDefaultMutableTreeNode parentModuleNode
= null;
2038 IDefaultMutableTreeNode parentLibraryNode
= null;
2039 boolean hasModule
= false;
2040 boolean hasLibrary
= false;
2041 for (int index
= 0; index
< packageNode
.getChildCount(); index
++) {
2042 IDefaultMutableTreeNode iNode
= (IDefaultMutableTreeNode
) packageNode
.getChildAt(index
);
2043 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
) {
2045 parentLibraryNode
= iNode
;
2047 if (iNode
.getCategory() == IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
2049 parentModuleNode
= iNode
;
2056 if (!mid
.isLibrary()) {
2058 // Create parent node first if has no parent node
2061 parentModuleNode
= new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
,
2062 false, mid
.getPackageId());
2063 iTree
.addNode(packageNode
, parentModuleNode
);
2066 iTree
.addNode(parentModuleNode
, node
);
2072 if (mid
.isLibrary()) {
2074 // Create parent node first if has no parent node
2077 parentLibraryNode
= new IDefaultMutableTreeNode("Library",
2078 IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
, false,
2079 mid
.getPackageId());
2080 iTree
.addNode(packageNode
, parentLibraryNode
);
2083 iTree
.addNode(parentLibraryNode
, node
);
2090 @param path input file path
2093 private void openModule(String path
, ModuleIdentification moduleId
) {
2094 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
2096 msa
= OpenFile
.openMsaFile(path
);
2097 } catch (IOException e
) {
2098 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2099 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2101 } catch (XmlException e
) {
2102 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2103 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2105 } catch (Exception e
) {
2106 Log
.wrn("Open Module Surface Area " + path
, "Invalid file type");
2107 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
2110 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
2111 msa
.getMsaHeader().getVersion(), path
);
2113 // Generate module id
2115 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
2118 // To judge if the module existed in vModuleList
2119 // If not, add it to vModuleList
2121 boolean isFind
= false;
2122 for (int index
= 0; index
< vModuleList
.size(); index
++) {
2123 if (vModuleList
.elementAt(index
).equals(id
)) {
2129 ModuleIdentification mid
= new ModuleIdentification(id
, pid
, moduleId
.isLibrary());
2130 vModuleList
.addElement(mid
);
2131 addModuleToTree(mid
);
2135 // The module is not in existing packages
2137 Log
.err("The module hasn't been added to any package of current workspace!");
2142 // Make the node selected
2144 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2145 IDefaultMutableTreeNode
.MODULE
)));
2147 // Update opening Module list information
2149 if (!openingModuleList
.existsModule(id
)) {
2151 // Insert sub node of module
2153 insertModuleTreeNode(id
);
2154 iTree
.getSelectNode().setOpening(true);
2157 // Update opening module list
2159 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2160 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2163 // Select msa header node and show it in editor panel
2165 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2166 IDefaultMutableTreeNode
.MSA_HEADER
)));
2167 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2168 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2174 @param path input file path
2177 private void openModule(String path
) {
2178 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
2180 msa
= OpenFile
.openMsaFile(path
);
2181 } catch (IOException e
) {
2182 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2183 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2185 } catch (XmlException e
) {
2186 Log
.wrn("Open Module Surface Area " + path
, e
.getMessage());
2187 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
2189 } catch (Exception e
) {
2190 Log
.wrn("Open Module Surface Area " + path
, "Invalid file type");
2191 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
2194 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
2195 msa
.getMsaHeader().getVersion(), path
);
2197 // Generate module id
2199 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
2202 // To judge if the module existed in vModuleList
2203 // If not, add it to vModuleList
2205 boolean isFind
= false;
2206 for (int index
= 0; index
< vModuleList
.size(); index
++) {
2207 if (vModuleList
.elementAt(index
).equals(id
)) {
2213 ModuleIdentification mid
= new ModuleIdentification(id
, pid
);
2214 vModuleList
.addElement(mid
);
2215 addModuleToTree(mid
);
2219 // The module is not in existing packages
2221 Log
.wrn("Open Module", "The module hasn't been added to any package of current workspace!");
2226 // Make the node selected
2228 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2229 IDefaultMutableTreeNode
.MODULE
)));
2231 // Update opening Module list information
2233 if (!openingModuleList
.existsModule(id
)) {
2235 // Insert sub node of module
2237 insertModuleTreeNode(id
);
2238 iTree
.getSelectNode().setOpening(true);
2241 // Update opening module list
2243 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2244 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2247 // Select msa header node and show it in editor panel
2249 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
2250 IDefaultMutableTreeNode
.MSA_HEADER
)));
2251 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2252 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2258 @param path input file path
2261 private void openPackage(String path
) {
2262 PackageSurfaceAreaDocument
.PackageSurfaceArea spd
= null;
2264 spd
= OpenFile
.openSpdFile(path
);
2265 } catch (IOException e
) {
2266 Log
.wrn("Open Package Surface Area " + path
, e
.getMessage());
2267 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2269 } catch (XmlException e
) {
2270 Log
.wrn("Open Package Surface Area " + path
, e
.getMessage());
2271 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2273 } catch (Exception e
) {
2274 Log
.wrn("Open Package Surface Area " + path
, "Invalid file type");
2275 Log
.err("Open Package Surface Area " + path
, "Invalid file type");
2278 Identification id
= new Identification(spd
.getSpdHeader().getPackageName(), spd
.getSpdHeader().getGuidValue(),
2279 spd
.getSpdHeader().getVersion(), path
);
2281 // To judge if the package existed in vPackageList
2282 // If not, add it to vPackageList
2284 boolean isFind
= false;
2285 for (int index
= 0; index
< vPackageList
.size(); index
++) {
2286 if (vPackageList
.elementAt(index
).equals(id
)) {
2293 // The module is not in existing packages
2295 Log
.wrn("Open Package", "The package hasn't been added to current workspace!");
2300 // Make the node selected
2302 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2303 IDefaultMutableTreeNode
.PACKAGE
)));
2305 // Update opening package list information
2307 if (!openingPackageList
.existsPackage(id
)) {
2309 // Insert sub node of module
2311 insertPackageTreeNode(id
);
2312 iTree
.getSelectNode().setOpening(true);
2315 // Update opening module list
2317 openingPackageList
.insertToOpeningPackageList(id
, spd
);
2318 openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2321 // Show spd header in editor panel
2323 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2324 IDefaultMutableTreeNode
.SPD_HEADER
)));
2325 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, openingPackageList
.getOpeningPackageById(id
));
2326 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2332 @param path input file path
2335 private void openPlatform(String path
) {
2336 PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
= null;
2338 fpd
= OpenFile
.openFpdFile(path
);
2339 } catch (IOException e
) {
2340 Log
.wrn("Open Platform Surface Area " + path
, e
.getMessage());
2341 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2343 } catch (XmlException e
) {
2344 Log
.wrn("Open Platform Surface Area " + path
, e
.getMessage());
2345 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2347 } catch (Exception e
) {
2348 Log
.wrn("Open Platform Surface Area " + path
, "Invalid file type");
2349 Log
.err("Open Platform Surface Area " + path
, "Invalid file type");
2352 Identification id
= new Identification(fpd
.getPlatformHeader().getPlatformName(), fpd
.getPlatformHeader()
2354 fpd
.getPlatformHeader().getVersion(), path
);
2356 // To judge if the platform existed in vPlatformList
2357 // If not, add it to vPlatformList
2359 boolean isFind
= false;
2360 for (int index
= 0; index
< vPlatformList
.size(); index
++) {
2361 if (vPlatformList
.elementAt(index
).equals(id
)) {
2368 // The module is not in existing packages
2370 Log
.wrn("Open Platform", "The platform hasn't been added to current workspace!");
2375 // Make the node selected
2377 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2378 IDefaultMutableTreeNode
.PLATFORM
)));
2380 // Update opening package list information
2382 if (!openingPlatformList
.existsPlatform(id
)) {
2384 // Insert sub node of module
2386 insertPlatformTreeNode(id
);
2387 iTree
.getSelectNode().setOpening(true);
2390 // Update opening module list
2392 openingPlatformList
.insertToOpeningPlatformList(id
, fpd
);
2393 openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2396 // Show fpd header in editor panel
2398 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2399 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2400 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, openingPlatformList
.getOpeningPlatformById(id
));
2401 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2408 private void saveModule(int index
) {
2409 OpeningModuleType omt
= openingModuleList
.getOpeningModuleByIndex(index
);
2411 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2416 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2417 openingModuleList
.setNew(omt
.getId(), false);
2418 openingModuleList
.setModuleSaved(omt
.getId(), true);
2419 } catch (Exception e
) {
2420 Log
.wrn("Save Module", e
.getMessage());
2421 Log
.err("Save Module", e
.getMessage());
2429 private void savePackage(int index
) {
2430 OpeningPackageType opt
= openingPackageList
.getOpeningPackageByIndex(index
);
2432 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2437 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2438 openingPackageList
.setNew(opt
.getId(), false);
2439 openingPackageList
.setPackageSaved(opt
.getId(), true);
2440 } catch (Exception e
) {
2441 Log
.wrn("Save Package", e
.getMessage());
2442 Log
.err("Save Package", e
.getMessage());
2450 private void savePlatform(int index
) {
2451 OpeningPlatformType opt
= openingPlatformList
.getOpeningPlatformByIndex(index
);
2453 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2458 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2459 openingPlatformList
.setNew(opt
.getId(), false);
2460 openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2461 } catch (Exception e
) {
2462 Log
.wrn("Save Package", e
.getMessage());
2463 Log
.err("Save Package", e
.getMessage());
2467 public void componentHidden(ComponentEvent arg0
) {
2468 // TODO Auto-generated method stub
2472 public void componentMoved(ComponentEvent arg0
) {
2473 // TODO Auto-generated method stub
2477 public void componentResized(ComponentEvent arg0
) {
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();
2484 public void componentShown(ComponentEvent arg0
) {
2485 // TODO Auto-generated method stub
2490 Resize JDesktopPanel
2493 private void resizeDesktopPanel() {
2494 resizeDesktopPanel(this.jDesktopPaneModule
);
2495 resizeDesktopPanel(this.jDesktopPanePackage
);
2496 resizeDesktopPanel(this.jDesktopPanePlatform
);
2500 Resize JDesktopPanel
2503 private void resizeDesktopPanel(JDesktopPane jdk
) {
2504 JInternalFrame
[] iif
= jdk
.getAllFrames();
2505 for (int index
= 0; index
< iif
.length
; index
++) {
2506 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2510 private void getCompontentsFromFrameworkDatabase() {
2511 this.vModuleList
= wt
.getAllModules();
2512 this.vPackageList
= wt
.getAllPackages();
2513 this.vPlatformList
= wt
.getAllPlatforms();
2516 private void insertModuleTreeNode(Identification id
) {
2517 iTree
.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode
.MSA_HEADER
, true, id
));
2518 iTree
.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
,
2520 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2521 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2522 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2523 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2524 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2525 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2526 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2527 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2528 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2529 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2530 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2531 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2532 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2533 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2534 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2535 iTree
.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2536 iTree
.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2539 private void insertPackageTreeNode(Identification id
) {
2540 iTree
.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode
.SPD_HEADER
, true, id
));
2541 iTree
.addNode(new IDefaultMutableTreeNode("Package Definitions",
2542 IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
, true, id
));
2543 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2544 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2545 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2546 iTree
.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2548 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2550 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2551 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2552 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2554 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2558 private void insertPlatformTreeNode(Identification id
) {
2559 iTree
.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, true,
2561 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2562 IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2563 iTree
.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2564 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2566 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",
2567 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2568 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2572 Operate when double click a tree node
2575 private void doubleClickModuleTreeNode() {
2576 Identification id
= null;
2577 int intCategory
= -1;
2579 boolean isOpen
= false;
2581 id
= iTree
.getSelectNode().getId();
2582 intCategory
= iTree
.getSelectCategory();
2583 isOpen
= iTree
.getSelectNode().isOpening();
2587 // If the node is not opened yet
2588 // Insert top level elements first
2590 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2592 if (intCategory
== IDefaultMutableTreeNode
.MODULE
) {
2593 path
= iTree
.getSelectNode().getId().getPath();
2595 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2596 path
= iTree
.getSelectNode().getId().getPath();
2601 if (intCategory
== IDefaultMutableTreeNode
.PACKAGE
) {
2602 path
= iTree
.getSelectNode().getId().getPath();
2606 if (intCategory
== IDefaultMutableTreeNode
.PLATFORM
) {
2607 path
= iTree
.getSelectNode().getId().getPath();
2614 // Show editor panel
2616 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2617 showModuleElement(intCategory
, openingModuleList
.getOpeningModuleById(id
));
2618 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2620 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2621 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2622 showPackageElement(intCategory
, openingPackageList
.getOpeningPackageById(id
));
2623 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2625 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2626 showPlatformElement(intCategory
, openingPlatformList
.getOpeningPlatformById(id
));
2627 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2629 } catch (RuntimeException e
) {
2630 Log
.log("double click category: " + intCategory
);
2631 Log
.log("double click id path: " + id
);
2632 Log
.log("double click exception: " + e
.getMessage());
2637 Show content of editor panel via selected element
2643 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2644 this.cleanDesktopPanePlatform();
2646 switch (elementType
) {
2647 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2648 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2649 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2651 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2652 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2653 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2655 case IDefaultMutableTreeNode
.FPD_FLASH
:
2656 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2657 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2659 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2660 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2661 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2663 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2664 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2665 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2667 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2668 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2669 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2672 this.jTabbedPaneEditor
.setSelectedIndex(2);
2673 resizeDesktopPanel();
2677 Show content of editor panel via selected element
2683 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2684 this.cleanDesktopPanePackage();
2685 Tools
.dirForNewSpd
= spd
.getId().getPath();
2686 switch (elementType
) {
2687 case IDefaultMutableTreeNode
.SPD_HEADER
:
2688 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2689 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2691 case IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
:
2692 SpdPackageDefinitions frmSpdPackageDefinitions
= new SpdPackageDefinitions(spd
);
2693 getJDesktopPanePackage().add(frmSpdPackageDefinitions
, 1);
2695 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2696 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2697 getJDesktopPanePackage().add(frmSlcd
, 1);
2699 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2700 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2701 getJDesktopPanePackage().add(frmSmf
, 1);
2703 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2704 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2705 getJDesktopPanePackage().add(frmSph
, 1);
2707 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2708 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2709 getJDesktopPanePackage().add(frmSgd
, 1);
2711 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2712 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2713 getJDesktopPanePackage().add(frmSprod
, 1);
2715 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2716 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2717 getJDesktopPanePackage().add(frmSppid
, 1);
2719 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2720 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2721 getJDesktopPanePackage().add(frmSpcdd
, 1);
2724 this.jTabbedPaneEditor
.setSelectedIndex(1);
2725 resizeDesktopPanel();
2729 Show content of editor panel via selected element
2735 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2736 this.cleanDesktopPaneModule();
2737 switch (elementType
) {
2738 case IDefaultMutableTreeNode
.MSA_HEADER
:
2739 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2740 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2742 case IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
:
2743 ModuleDefinitions frmMd
= new ModuleDefinitions(msa
);
2744 getJDesktopPaneModule().add(frmMd
, 1);
2746 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2747 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2748 getJDesktopPaneModule().add(frmMlcd
, 1);
2750 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2751 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2752 getJDesktopPaneModule().add(frmMpd
, 1);
2754 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2755 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2756 getJDesktopPaneModule().add(frmMsf
, 1);
2758 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2759 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2760 getJDesktopPaneModule().add(frmMp
, 1);
2762 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2763 ModuleEvents frmMe
= new ModuleEvents(msa
);
2764 getJDesktopPaneModule().add(frmMe
, 1);
2766 case IDefaultMutableTreeNode
.MSA_HOBS
:
2767 ModuleHobs frmMh
= new ModuleHobs(msa
);
2768 getJDesktopPaneModule().add(frmMh
, 1);
2770 case IDefaultMutableTreeNode
.MSA_PPIS
:
2771 ModulePpis frmMpp
= new ModulePpis(msa
);
2772 getJDesktopPaneModule().add(frmMpp
, 1);
2774 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2775 ModuleVariables frmMv
= new ModuleVariables(msa
);
2776 getJDesktopPaneModule().add(frmMv
, 1);
2778 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2779 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2780 getJDesktopPaneModule().add(frmMbm
, 1);
2782 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2783 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2784 getJDesktopPaneModule().add(frmMst
, 1);
2786 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2787 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2788 getJDesktopPaneModule().add(frmMdh
, 1);
2790 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2791 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2792 getJDesktopPaneModule().add(frmMf
, 1);
2794 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2795 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2796 getJDesktopPaneModule().add(frmGuid
, 1);
2798 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2799 ModuleExterns frmMex
= new ModuleExterns(msa
);
2800 getJDesktopPaneModule().add(frmMex
, 1);
2802 case IDefaultMutableTreeNode
.MSA_PCDS
:
2803 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2804 getJDesktopPaneModule().add(frmPcd
, 1);
2807 this.jTabbedPaneEditor
.setSelectedIndex(0);
2808 resizeDesktopPanel();
2812 // Define operations of menu
2818 private void fileNew() {
2821 // Selece new file type
2823 NewFileChooser nfc
= new NewFileChooser(this, true);
2824 result
= nfc
.showDialog();
2826 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2829 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2833 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2834 result
= smb
.showDialog();
2836 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2840 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2841 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2842 if (this.openingPackageList
.existsPackage(smb
.getMid().getPackageId())) {
2843 psa
= openingPackageList
.getPackageSurfaceAreaFromId(smb
.getMid().getPackageId());
2846 wt
.addModuleToPackage(smb
.getMid(), psa
);
2847 } catch (IOException e
) {
2848 Log
.wrn("Upddate MsaFiles of Package", e
.getMessage());
2849 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2851 } catch (XmlException e
) {
2852 Log
.wrn("Upddate MsaFiles of Package", e
.getMessage());
2853 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2855 } catch (Exception e
) {
2856 Log
.wrn("Upddate MsaFiles of Package", e
.getMessage());
2857 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2860 this.openModule(smb
.getMid().getPath(), smb
.getMid());
2862 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2866 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2867 result
= smb
.showDialog();
2869 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2873 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2875 wt
.addPackageToDatabase(smb
.getPid());
2876 } catch (Exception e
) {
2877 Log
.err("addPackageToDatabase", e
.getMessage());
2879 vPackageList
.addElement(smb
.getPid());
2882 // Add to Module Description node
2884 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2885 IDefaultMutableTreeNode
.MODULE_PACKAGE
,
2886 false, vPackageList
.lastElement());
2888 iTree
.addNode(dmtnModuleDescription
, node
);
2891 // Add new SpdHeader node to the tree
2893 node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2894 IDefaultMutableTreeNode
.SPD_HEADER
, true, vPackageList
.lastElement());
2895 iTree
.addNode(dmtnPackageDescription
, node
);
2897 this.openPackage(smb
.getPid().getPath());
2899 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2901 // To new a platform
2903 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2904 result
= smb
.showDialog();
2906 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2910 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2912 wt
.addPlatformToDatabase(smb
.getFid());
2913 } catch (Exception e
) {
2914 Log
.err("addPlatformToDatabase", e
.getMessage());
2916 vPlatformList
.addElement(smb
.getFid());
2918 // Add new SpdHeader node to the tree
2920 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
2921 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2922 true, vPlatformList
.lastElement());
2923 iTree
.addNode(dmtnPlatformDescription
, node
);
2924 this.openPlatform(smb
.getFid().getPath());
2933 private void open() {
2934 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2935 fc
.setAcceptAllFileFilterUsed(false);
2936 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2937 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2938 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2939 fc
.addChoosableFileFilter(iffM
);
2940 fc
.addChoosableFileFilter(iffP
);
2941 fc
.addChoosableFileFilter(iffF
);
2942 fc
.setFileFilter(iffM
);
2944 int result
= fc
.showOpenDialog(new JPanel());
2946 if (result
== JFileChooser
.APPROVE_OPTION
) {
2947 String path
= fc
.getSelectedFile().getPath();
2948 String match
= path
.substring(path
.length() - 4);
2949 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2951 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2953 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2963 private void close() {
2964 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2966 // Current is module
2969 if (this.currentOpeningModuleIndex
> -1) {
2970 if (!openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2971 int result
= showSaveDialog();
2972 if (result
== JOptionPane
.YES_OPTION
) {
2975 if (result
== JOptionPane
.NO_OPTION
) {
2978 if (result
== JOptionPane
.CANCEL_OPTION
) {
2982 iTree
.removeNodeChildrenByPath(openingModuleList
.getTreePathByIndex(currentOpeningModuleIndex
));
2983 this.openingModuleList
.removeFromOpeningModuleListByIndex(this.currentOpeningModuleIndex
);
2984 this.cleanDesktopPaneModule();
2985 this.currentOpeningModuleIndex
= -1;
2989 // Current is package
2992 if (this.currentOpeningPackageIndex
> -1) {
2993 if (!openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2994 int result
= showSaveDialog();
2995 if (result
== JOptionPane
.YES_OPTION
) {
2998 if (result
== JOptionPane
.NO_OPTION
) {
3001 if (result
== JOptionPane
.CANCEL_OPTION
) {
3005 iTree
.removeNodeChildrenByPath(openingPackageList
.getTreePathByIndex(currentOpeningPackageIndex
));
3006 this.openingPackageList
.removeFromOpeningPackageListByIndex(this.currentOpeningPackageIndex
);
3007 this.cleanDesktopPanePackage();
3008 this.currentOpeningPackageIndex
= -1;
3012 // Current is platform
3015 if (this.currentOpeningPlatformIndex
> -1) {
3016 if (!openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
3017 int result
= showSaveDialog();
3018 if (result
== JOptionPane
.YES_OPTION
) {
3021 if (result
== JOptionPane
.NO_OPTION
) {
3024 if (result
== JOptionPane
.CANCEL_OPTION
) {
3028 iTree
.removeNodeChildrenByPath(openingPlatformList
.getTreePathByIndex(currentOpeningPlatformIndex
));
3029 this.openingPlatformList
.removeFromOpeningPlatformListByIndex(this.currentOpeningPlatformIndex
);
3030 this.cleanDesktopPanePlatform();
3031 this.currentOpeningPlatformIndex
= -1;
3038 Close all opening files and clean all showing internal frame
3041 private void closeAll() {
3043 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
3044 result
= showSaveDialog();
3046 if (result
== JOptionPane
.YES_OPTION
) {
3049 if (result
== JOptionPane
.NO_OPTION
) {
3054 if (result
== JOptionPane
.CANCEL_OPTION
) {
3057 this.cleanDesktopPane();
3058 this.getCompontentsFromFrameworkDatabase();
3059 openingModuleList
.removeAllFromOpeningModuleList();
3060 openingPackageList
.removeAllFromOpeningPackageList();
3061 openingPlatformList
.removeAllFromOpeningPlatformList();
3062 this.makeEmptyTree();
3066 Save currentModule when press button OK
3069 private void save() {
3070 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
3072 if (this.currentOpeningModuleIndex
> -1) {
3073 saveModule(this.currentOpeningModuleIndex
);
3077 if (this.currentOpeningPackageIndex
> -1) {
3078 savePackage(this.currentOpeningPackageIndex
);
3082 if (this.currentOpeningPlatformIndex
> -1) {
3083 savePlatform(this.currentOpeningPlatformIndex
);
3089 private void saveAs() {
3093 private void saveAll() {
3097 for (int index
= 0; index
< openingModuleList
.size(); index
++) {
3098 if (!openingModuleList
.getModuleSaved(index
)) {
3104 // Save all packages
3106 for (int index
= 0; index
< openingPackageList
.size(); index
++) {
3107 if (!openingPackageList
.getPackageSaved(index
)) {
3113 // Save all platforms
3115 for (int index
= 0; index
< openingPlatformList
.size(); index
++) {
3116 if (!openingPlatformList
.getPlatformSaved(index
)) {
3117 savePlatform(index
);
3123 To save changed items before exit.
3126 private void exit() {
3128 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
3129 result
= showSaveDialog();
3131 if (result
== JOptionPane
.YES_OPTION
) {
3134 if (result
== JOptionPane
.NO_OPTION
) {
3137 if (result
== JOptionPane
.CANCEL_OPTION
) {
3145 Switch current workspace to others
3148 private void changeWorkspace() {
3149 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
3150 int result
= sw
.showDialog();
3151 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3153 } else if (result
== DataType
.RETURN_TYPE_OK
) {
3155 // Reinit whole window
3158 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- ["
3159 + Workspace
.getCurrentWorkspace() + "]");
3165 To create a Far file from current workspace
3168 private void createFar() {
3169 CreateStepOne cso
= new CreateStepOne(this, true);
3170 int result
= cso
.showDialog();
3171 if (result
== DataType
.RETURN_TYPE_OK
) {
3172 String strReturn
= "Create Far Done!";
3173 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3174 JOptionPane
.INFORMATION_MESSAGE
);
3180 To install a Far file to current workspace
3183 private void installFar() {
3184 InstallStepOne iso
= new InstallStepOne(this, true);
3185 int result
= iso
.showDialog();
3186 if (result
== DataType
.RETURN_TYPE_OK
) {
3187 String strReturn
= "<html>Install Far Done! <br>The WORKSPACE will be refreshed!</html>";
3188 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3189 JOptionPane
.INFORMATION_MESSAGE
);
3196 To remove a Far's items from current workspace
3199 private void removeFar() {
3200 DeleteStepOne dso
= new DeleteStepOne(this, true);
3201 int result
= dso
.showDialog();
3202 if (result
== DataType
.RETURN_TYPE_OK
) {
3203 String strReturn
= "<html>Delete Far Done! <br>The WORKSPACE will be refreshed!</html>";
3204 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3205 JOptionPane
.INFORMATION_MESSAGE
);
3212 To update an existing Far file
3215 private void updateFar() {
3216 UpdateStepOne uso
= new UpdateStepOne(this, true);
3217 int result
= uso
.showDialog();
3218 if (result
== DataType
.RETURN_TYPE_OK
) {
3219 String strReturn
= "<html>Update Far Done! <br>The WORKSPACE will be refreshed!</html>";
3220 JOptionPane
.showConfirmDialog(null, strReturn
, "Done", JOptionPane
.DEFAULT_OPTION
,
3221 JOptionPane
.INFORMATION_MESSAGE
);
3228 Show Tool Chain Configuration Dialog to setup Tool Chain
3231 private void setupToolChainConfiguration() {
3232 ToolChainConfig tcc
= ToolChainConfig
.getInstance();
3240 private void cloneItem() {
3244 // Check if there is any item can be cloned
3246 if (iTree
.getSelectionPath() == null) {
3247 Log
.wrn("Clone", "Please select a target to clone!");
3250 int category
= iTree
.getSelectCategory();
3251 Identification id
= iTree
.getSelectNode().getId();
3252 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3253 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3254 Log
.wrn("Clone", "Please select a target to clone!");
3258 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
3259 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
3262 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
3263 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
3265 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3266 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
3268 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
3269 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
3272 Clone c
= new Clone(this, true, mode
, id
);
3273 int result
= c
.showDialog();
3275 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
3278 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
3279 Tools
.showInformationMessage("Workspace Clone Finished");
3281 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
3282 Tools
.showInformationMessage("Module Surface Area Clone Finished");
3283 vModuleList
.addElement(c
.getMid());
3284 addModuleToTree(c
.getMid());
3286 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
3287 Tools
.showInformationMessage("Package Surface Area Clone Finished");
3288 vPackageList
.addElement(c
.getPid());
3290 // Add new SpdHeader node to the tree
3292 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
3293 IDefaultMutableTreeNode
.SPD_HEADER
, true,
3294 vPackageList
.lastElement());
3295 iTree
.addNode(dmtnPackageDescription
, node
);
3297 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
3298 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
3299 vPlatformList
.addElement(c
.getFid());
3301 // Add new SpdHeader node to the tree
3303 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
3304 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
3305 true, vPlatformList
.lastElement());
3306 iTree
.addNode(dmtnPlatformDescription
, node
);
3307 //this.openPlatform(c.getFid().getPath());
3309 if (result
== DataType
.RETURN_TYPE_OK
) {
3314 public void valueChanged(TreeSelectionEvent arg0
) {
3315 // TODO Auto-generated method stub
3319 public void menuCanceled(MenuEvent arg0
) {
3320 // TODO Auto-generated method stub
3324 public void menuDeselected(MenuEvent arg0
) {
3325 // TODO Auto-generated method stub
3329 public void menuSelected(MenuEvent arg0
) {
3330 if (arg0
.getSource() == jMenuFile
) {
3332 // Enable close/close all if some files are opened
3334 jMenuItemFileClose
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3335 || openingPlatformList
.isOpend());
3336 jMenuItemFileCloseAll
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3337 || openingPlatformList
.isOpend());
3340 // Enable save/save all if some files are changed
3342 jMenuItemFileSave
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3343 || !openingPlatformList
.isSaved());
3344 jMenuItemFileSaveAll
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3345 || !openingPlatformList
.isSaved());
3348 if (arg0
.getSource() == jMenuTools
) {
3350 // Enable clone when select some items
3352 if (iTree
.getSelectionPath() == null) {
3353 jMenuItemToolsClone
.setEnabled(false);
3355 int category
= iTree
.getSelectCategory();
3356 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3357 || category
== IDefaultMutableTreeNode
.PLATFORM
3358 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE
3359 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_LIBRARY
3360 || category
== IDefaultMutableTreeNode
.MODULE_PACKAGE_MODULE
) {
3361 jMenuItemToolsClone
.setEnabled(false);
3363 jMenuItemToolsClone
.setEnabled(true);