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
.SaveFile
;
54 import org
.tianocore
.frameworkwizard
.common
.Tools
;
55 import org
.tianocore
.frameworkwizard
.common
.Identifications
.Identification
;
56 import org
.tianocore
.frameworkwizard
.common
.Identifications
.OpenFile
;
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
.module
.Identifications
.ModuleIdentification
;
68 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleBootModes
;
69 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDataHubs
;
70 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleDefinitions
;
71 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleEvents
;
72 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleExterns
;
73 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleGuids
;
74 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHiiPackages
;
75 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleHobs
;
76 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleLibraryClassDefinitions
;
77 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePCDs
;
78 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePackageDependencies
;
79 import org
.tianocore
.frameworkwizard
.module
.ui
.ModulePpis
;
80 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleProtocols
;
81 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSourceFiles
;
82 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleSystemTables
;
83 import org
.tianocore
.frameworkwizard
.module
.ui
.ModuleVariables
;
84 import org
.tianocore
.frameworkwizard
.module
.ui
.MsaHeader
;
85 import org
.tianocore
.frameworkwizard
.packaging
.PackageIdentification
;
86 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdGuidDecls
;
87 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdHeader
;
88 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdLibClassDecls
;
89 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdMsaFiles
;
90 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageDefinitions
;
91 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPackageHeaders
;
92 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPcdDefs
;
93 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdPpiDecls
;
94 import org
.tianocore
.frameworkwizard
.packaging
.ui
.SpdProtocolDecls
;
95 import org
.tianocore
.frameworkwizard
.platform
.PlatformIdentification
;
96 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdBuildOptions
;
97 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdDynamicPcdBuildDefinitions
;
98 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFlash
;
99 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdFrameworkModules
;
100 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdHeader
;
101 import org
.tianocore
.frameworkwizard
.platform
.ui
.FpdPlatformDefs
;
102 import org
.tianocore
.frameworkwizard
.workspace
.Workspace
;
103 import org
.tianocore
.frameworkwizard
.workspace
.WorkspaceTools
;
104 import org
.tianocore
.frameworkwizard
.workspace
.ui
.SwitchWorkspace
;
107 The class is used to show main GUI of ModuleEditor
108 It extends IFrame implements MouseListener, TreeSelectionListener
111 public class FrameworkWizardUI
extends IFrame
implements MouseListener
, TreeSelectionListener
, ComponentListener
,
114 /// Define class Serial Version UID
116 private static final long serialVersionUID
= -7103240960573031772L;
119 // To save information of all files
121 private Vector
<ModuleIdentification
> vModuleList
= new Vector
<ModuleIdentification
>();
123 private Vector
<PackageIdentification
> vPackageList
= new Vector
<PackageIdentification
>();
125 private Vector
<PlatformIdentification
> vPlatformList
= new Vector
<PlatformIdentification
>();
127 private OpeningModuleList openingModuleList
= new OpeningModuleList();
129 private OpeningPackageList openingPackageList
= new OpeningPackageList();
131 private OpeningPlatformList openingPlatformList
= new OpeningPlatformList();
133 private int currentOpeningModuleIndex
= -1;
135 private int currentOpeningPackageIndex
= -1;
137 private int currentOpeningPlatformIndex
= -1;
139 private IDefaultMutableTreeNode dmtnRoot
= null;
141 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
143 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
145 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
147 private JPanel jContentPane
= null;
149 private JMenuBar jMenuBar
= null;
151 private JMenu jMenuFile
= null;
153 private JMenuItem jMenuItemFileNew
= null;
155 private JMenuItem jMenuItemFileSaveAs
= null;
157 private JMenuItem jMenuItemFileExit
= null;
159 private JMenu jMenuEdit
= null;
161 private JDesktopPane jDesktopPaneModule
= null;
163 private JDesktopPane jDesktopPanePackage
= null;
165 private JDesktopPane jDesktopPanePlatform
= null;
167 private JTabbedPane jTabbedPaneTree
= null;
169 private JTabbedPane jTabbedPaneEditor
= null;
171 private IDesktopManager iDesktopManager
= new IDesktopManager();
173 private JScrollPane jScrollPaneTree
= null;
175 private ITree iTree
= null;
177 private JMenu jMenuHelp
= null;
179 private JMenuItem jMenuItemHelpAbout
= null;
181 private JMenuItem jMenuItemEditDelete
= null;
183 private WorkspaceTools wt
= new WorkspaceTools();
185 private JMenuItem jMenuItemFileSave
= null;
187 private JMenuItem jMenuItemFileClose
= null;
189 private JMenu jMenuTools
= null;
191 private JMenu jMenuWindow
= null;
193 private JPanel jPanelOperation
= null;
195 private JButton jButtonOk
= null;
197 private JButton jButtonCancel
= null;
199 private JMenuItem jMenuItemFileOpen
= null;
201 private JMenuItem jMenuItemFileCloseAll
= null;
203 private JMenuItem jMenuItemFileSaveAll
= null;
205 private JMenuItem jMenuItemFilePageSetup
= null;
207 private JMenuItem jMenuItemFilePrint
= null;
209 private JMenuItem jMenuItemFileImport
= null;
211 private JMenuItem jMenuItemFileProperties
= null;
213 private JMenu jMenuFileRecentFiles
= null;
215 private JSplitPane jSplitPane
= null;
217 private JMenuItem jMenuItemEditUndo
= null;
219 private JMenuItem jMenuItemEditRedo
= null;
221 private JMenuItem jMenuItemEditCut
= null;
223 private JMenuItem jMenuItemEditCopy
= null;
225 private JMenuItem jMenuItemEditPaste
= null;
227 private JMenuItem jMenuItemEditSelectAll
= null;
229 private JMenuItem jMenuItemEditFind
= null;
231 private JMenuItem jMenuItemEditFindNext
= null;
233 private JMenu jMenuView
= null;
235 private JMenu jMenuViewToolbars
= null;
237 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
239 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
241 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
243 private JMenuItem jMenuItemViewStandard
= null;
245 private JMenuItem jMenuItemViewAdvanced
= null;
247 private JMenu jMenuProject
= null;
249 private JMenuItem jMenuItemProjectAdmin
= null;
251 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
253 private JMenu jMenuProjectBuildTargets
= null;
255 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug
= null;
257 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease
= null;
259 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
261 private JMenuItem jMenuItemToolsClone
= null;
263 private JMenuItem jMenuItemToolsCodeScan
= null;
265 private JMenuItem jMenuItemWindowDisplaySide
= null;
267 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
269 private JMenuItem jMenuItemViewXML
= null;
271 private JMenuItem jMenuItemWindowTabView
= null;
273 private JMenuItem jMenuItemWindowSource
= null;
275 private JMenuItem jMenuItemWindowXML
= null;
277 private JMenuItem jMenuItemWindowPreferences
= null;
279 private JMenuItem jMenuItemHelpContents
= null;
281 private JMenuItem jMenuItemHelpIndex
= null;
283 private JMenuItem jMenuItemHelpSearch
= null;
285 private JMenuItem jMenuItemProjectInstallPackage
= null;
287 private JMenuItem jMenuItemProjectUpdatePackage
= null;
289 private JMenuItem jMenuItemProjectRemovePackage
= null;
291 //private JToolBar jToolBarFile = null;
293 //private JToolBar jToolBarEdit = null;
295 //private JToolBar jToolBarWindow = null;
298 This method initializes jMenuBar
300 @return javax.swing.JMenuBar Main menu bar for the entire GUI
303 private JMenuBar
getjJMenuBar() {
304 if (jMenuBar
== null) {
305 jMenuBar
= new JMenuBar();
306 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
307 jMenuBar
.add(getJMenuFile());
308 jMenuBar
.add(getJMenuEdit());
309 jMenuBar
.add(getJMenuView());
310 jMenuBar
.add(getJMenuProject());
311 jMenuBar
.add(getJMenuTools());
312 jMenuBar
.add(getJMenuWindow());
313 jMenuBar
.add(getJMenuHelp());
319 This method initializes jSplitPane
321 @return javax.swing.JSplitPane
324 private JSplitPane
getJSplitPane() {
325 if (jSplitPane
== null) {
326 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
327 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
328 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
329 jSplitPane
.addComponentListener(this);
335 This method initializes jTabbedPaneEditor
337 @return javax.swing.JTabbedPane
340 private JTabbedPane
getJTabbedPaneEditor() {
341 if (jTabbedPaneEditor
== null) {
342 jTabbedPaneEditor
= new JTabbedPane();
343 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
344 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
345 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
346 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
348 .setMinimumSize(new java
.awt
.Dimension(
349 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
350 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
351 //jTabbedPaneEditor.addChangeListener(this);
352 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
353 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
354 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
356 return jTabbedPaneEditor
;
360 This method initializes jTabbedPaneTree
362 @return javax.swing.JTabbedPane
365 private JTabbedPane
getJTabbedPaneTree() {
366 if (jTabbedPaneTree
== null) {
367 jTabbedPaneTree
= new JTabbedPane();
369 .setPreferredSize(new java
.awt
.Dimension(
370 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
371 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
373 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
374 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
375 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
377 return jTabbedPaneTree
;
381 This method initializes jMenuFile
383 @return javax.swing.JMenu jMenuModule
386 private JMenu
getJMenuFile() {
387 if (jMenuFile
== null) {
388 jMenuFile
= new JMenu();
389 jMenuFile
.setText("File");
390 jMenuFile
.setMnemonic('F');
391 jMenuFile
.add(getJMenuItemFileNew());
392 jMenuFile
.add(getJMenuItemFileOpen());
393 jMenuFile
.add(getJMenuItemFileClose());
394 jMenuFile
.add(getJMenuItemFileCloseAll());
395 jMenuFile
.addSeparator();
396 jMenuFile
.add(getJMenuFileRecentFiles());
397 //jMenuFile.addSeparator();
398 jMenuFile
.add(getJMenuItemFileSave());
399 jMenuFile
.add(getJMenuItemFileSaveAs());
400 jMenuFile
.add(getJMenuItemFileSaveAll());
401 jMenuFile
.addSeparator();
402 jMenuFile
.add(getJMenuItemFilePageSetup());
403 jMenuFile
.add(getJMenuItemFilePrint());
404 //jMenuFile.addSeparator();
405 jMenuFile
.add(getJMenuItemFileImport());
406 //jMenuFile.addSeparator();
407 jMenuFile
.add(getJMenuItemFileProperties());
408 //jMenuFile.addSeparator();
409 jMenuFile
.add(getJMenuItemFileExit());
410 jMenuFile
.addMenuListener(this);
416 This method initializes jMenuItemFileSaveAs
418 @return javax.swing.JMenuItem jMenuItemFileSaveAs
421 private JMenuItem
getJMenuItemFileSaveAs() {
422 if (jMenuItemFileSaveAs
== null) {
423 jMenuItemFileSaveAs
= new JMenuItem();
424 jMenuItemFileSaveAs
.setText("Save As...");
425 jMenuItemFileSaveAs
.setMnemonic('a');
426 jMenuItemFileSaveAs
.addActionListener(this);
427 jMenuItemFileSaveAs
.setEnabled(false);
428 jMenuItemFileSaveAs
.setVisible(false);
430 return jMenuItemFileSaveAs
;
434 This method initializes jMenuItemModuleExit
436 @return javax.swing.JMenuItem jMenuItemModuleExit
439 private JMenuItem
getJMenuItemFileExit() {
440 if (jMenuItemFileExit
== null) {
441 jMenuItemFileExit
= new JMenuItem();
442 jMenuItemFileExit
.setText("Exit");
443 jMenuItemFileExit
.setMnemonic('x');
444 jMenuItemFileExit
.addActionListener(this);
446 return jMenuItemFileExit
;
450 This method initializes jMenuEdit
452 @return javax.swing.JMenu jMenuEdit
455 private JMenu
getJMenuEdit() {
456 if (jMenuEdit
== null) {
457 jMenuEdit
= new JMenu();
458 jMenuEdit
.setText("Edit");
459 jMenuEdit
.setMnemonic('E');
460 jMenuEdit
.add(getJMenuItemEditUndo());
461 jMenuEdit
.add(getJMenuItemEditRedo());
462 jMenuEdit
.addSeparator();
463 jMenuEdit
.add(getJMenuItemEditCut());
464 jMenuEdit
.add(getJMenuItemEditCopy());
465 jMenuEdit
.add(getJMenuItemEditPaste());
466 jMenuEdit
.add(getJMenuItemEditDelete());
467 jMenuEdit
.addSeparator();
468 jMenuEdit
.add(getJMenuItemEditSelectAll());
469 jMenuEdit
.add(getJMenuItemEditFind());
470 jMenuEdit
.add(getJMenuItemEditFindNext());
471 jMenuEdit
.addSeparator();
472 jMenuEdit
.setVisible(false);
478 This method initializes jDesktopPane
480 @return javax.swing.JDesktopPane jDesktopPane
483 private JDesktopPane
getJDesktopPaneModule() {
484 if (jDesktopPaneModule
== null) {
485 jDesktopPaneModule
= new JDesktopPane();
487 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
488 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
489 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
490 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
492 .setMinimumSize(new java
.awt
.Dimension(
493 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
494 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
495 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
496 jDesktopPaneModule
.addComponentListener(this);
498 return jDesktopPaneModule
;
502 This method initializes jDesktopPane
504 @return javax.swing.JDesktopPane jDesktopPane
507 private JDesktopPane
getJDesktopPanePackage() {
508 if (jDesktopPanePackage
== null) {
509 jDesktopPanePackage
= new JDesktopPane();
511 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
512 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
513 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
514 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
516 .setMinimumSize(new java
.awt
.Dimension(
517 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
518 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
519 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
520 jDesktopPanePackage
.addComponentListener(this);
522 return jDesktopPanePackage
;
526 This method initializes jDesktopPane
528 @return javax.swing.JDesktopPane jDesktopPane
531 private JDesktopPane
getJDesktopPanePlatform() {
532 if (jDesktopPanePlatform
== null) {
533 jDesktopPanePlatform
= new JDesktopPane();
535 .setBounds(new java
.awt
.Rectangle(
536 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
537 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
538 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
539 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
541 .setMinimumSize(new java
.awt
.Dimension(
542 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
543 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
544 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
545 jDesktopPanePlatform
.addComponentListener(this);
547 return jDesktopPanePlatform
;
551 This method initializes jScrollPaneTree
553 @return javax.swing.JScrollPane jScrollPaneTree
556 private JScrollPane
getJScrollPaneTree() {
557 if (jScrollPaneTree
== null) {
558 jScrollPaneTree
= new JScrollPane();
559 //jScrollPaneTree.setBounds(new java.awt.Rectangle(0, 1, 290, 545));
561 .setPreferredSize(new java
.awt
.Dimension(
562 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
563 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
565 .setMinimumSize(new java
.awt
.Dimension(
566 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
567 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
568 jScrollPaneTree
.setViewportView(getITree());
570 return jScrollPaneTree
;
574 This method initializes iTree
576 @return org.tianocore.packaging.common.ui.ITree iTree
579 private ITree
getITree() {
581 //Before open a real module, use an empty root node for the tree
588 This method initializes jMenuHelp
590 @return javax.swing.JMenu jMenuHelp
593 private JMenu
getJMenuHelp() {
594 if (jMenuHelp
== null) {
595 jMenuHelp
= new JMenu();
596 jMenuHelp
.setText("Help");
597 jMenuHelp
.add(getJMenuItemHelpContents());
598 jMenuHelp
.add(getJMenuItemHelpIndex());
599 jMenuHelp
.add(getJMenuItemHelpSearch());
600 //jMenuHelp.addSeparator();
601 jMenuHelp
.add(getJMenuItemHelpAbout());
607 This method initializes jMenuItemHelpAbout
609 @return javax.swing.JMenuItem jMenuItemHelpAbout
612 private JMenuItem
getJMenuItemHelpAbout() {
613 if (jMenuItemHelpAbout
== null) {
614 jMenuItemHelpAbout
= new JMenuItem();
615 jMenuItemHelpAbout
.setText("About...");
616 jMenuItemHelpAbout
.addActionListener(this);
618 return jMenuItemHelpAbout
;
622 This method initializes jMenuItemEditDelete
624 @return javax.swing.JMenuItem jMenuItemEditDelete
627 private JMenuItem
getJMenuItemEditDelete() {
628 if (jMenuItemEditDelete
== null) {
629 jMenuItemEditDelete
= new JMenuItem();
630 jMenuItemEditDelete
.setText("Delete");
631 jMenuItemEditDelete
.setMnemonic('D');
632 jMenuItemEditDelete
.addActionListener(this);
634 //Disabled when no module is open
636 jMenuItemEditDelete
.setEnabled(false);
638 return jMenuItemEditDelete
;
642 // This method initializes jPopupMenu
644 // @return javax.swing.JPopupMenu jPopupMenu
647 // private JPopupMenu getJPopupMenu() {
648 // if (jPopupMenu == null) {
649 // jPopupMenu = new JPopupMenu();
651 // //Add menu items of popup menu
653 // jPopupMenu.add(getJMenuItemPopupAdd());
654 // jPopupMenu.add(getJMenuItemPopupUpdate());
655 // jPopupMenu.add(getJMenuItemPopupDelete());
656 // jPopupMenu.setBorder(new BevelBorder(BevelBorder.RAISED));
657 // jPopupMenu.addMouseListener(this);
659 // return jPopupMenu;
663 // This method initializes jMenuItemPopupAdd
665 // @return javax.swing.JMenuItem jMenuItemPopupAdd
668 // private JMenuItem getJMenuItemPopupAdd() {
669 // if (jMenuItemPopupAdd == null) {
670 // jMenuItemPopupAdd = new JMenuItem();
671 // jMenuItemPopupAdd.setText("Add");
672 // jMenuItemPopupAdd.addActionListener(this);
673 // jMenuItemPopupAdd.setEnabled(false);
675 // return jMenuItemPopupAdd;
679 // This method initializes jMenuItemPopupUpdate
681 // @return javax.swing.JMenuItem jMenuItemPopupUpdate
684 // private JMenuItem getJMenuItemPopupUpdate() {
685 // if (jMenuItemPopupUpdate == null) {
686 // jMenuItemPopupUpdate = new JMenuItem();
687 // jMenuItemPopupUpdate.setText("Update");
688 // jMenuItemPopupUpdate.addActionListener(this);
689 // jMenuItemPopupUpdate.setEnabled(false);
691 // return jMenuItemPopupUpdate;
695 // This method initializes jMenuItemPopupDelete
697 // @return javax.swing.JMenuItem jMenuItemPopupDelete
700 // private JMenuItem getJMenuItemPopupDelete() {
701 // if (jMenuItemPopupDelete == null) {
702 // jMenuItemPopupDelete = new JMenuItem();
703 // jMenuItemPopupDelete.setText("Delete");
704 // jMenuItemPopupDelete.addActionListener(this);
705 // jMenuItemPopupDelete.setEnabled(false);
707 // return jMenuItemPopupDelete;
711 This method initializes jMenuFileNew
713 @return javax.swing.JMenuItem jMenuFileNew
716 private JMenuItem
getJMenuItemFileNew() {
717 if (jMenuItemFileNew
== null) {
718 jMenuItemFileNew
= new JMenuItem();
719 jMenuItemFileNew
.setText("New...");
720 jMenuItemFileNew
.setMnemonic('N');
721 jMenuItemFileNew
.addActionListener(this);
723 return jMenuItemFileNew
;
727 This method initializes jMenuItemFileSave
729 @return javax.swing.JMenuItem jMenuItemModuleSave
732 private JMenuItem
getJMenuItemFileSave() {
733 if (jMenuItemFileSave
== null) {
734 jMenuItemFileSave
= new JMenuItem();
735 jMenuItemFileSave
.setText("Save");
736 jMenuItemFileSave
.setMnemonic('S');
737 jMenuItemFileSave
.addActionListener(this);
738 jMenuItemFileSave
.setEnabled(true);
740 return jMenuItemFileSave
;
744 This method initializes jMenuItemModuleClose
746 @return javax.swing.JMenuItem jMenuItemModuleClose
749 private JMenuItem
getJMenuItemFileClose() {
750 if (jMenuItemFileClose
== null) {
751 jMenuItemFileClose
= new JMenuItem();
752 jMenuItemFileClose
.setText("Close");
753 jMenuItemFileClose
.setMnemonic('C');
754 jMenuItemFileClose
.setEnabled(true);
755 jMenuItemFileClose
.addActionListener(this);
757 return jMenuItemFileClose
;
761 This method initializes jMenuTools
764 @return javax.swing.JMenu jMenuTools
767 private JMenu
getJMenuTools() {
768 if (jMenuTools
== null) {
769 jMenuTools
= new JMenu();
770 jMenuTools
.setText("Tools");
771 jMenuTools
.setMnemonic('T');
772 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
773 jMenuTools
.addSeparator();
774 jMenuTools
.add(getJMenuItemToolsClone());
775 //jMenuTools.addSeparator();
776 jMenuTools
.add(getJMenuItemToolsCodeScan());
777 jMenuTools
.addMenuListener(this);
783 This method initializes jMenuWindow
786 @return javax.swing.JMenu jMenuWindow
789 private JMenu
getJMenuWindow() {
790 if (jMenuWindow
== null) {
791 jMenuWindow
= new JMenu();
792 jMenuWindow
.setText("Window");
793 jMenuWindow
.setMnemonic('W');
794 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
795 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
796 jMenuWindow
.addSeparator();
797 jMenuWindow
.add(getJMenuItemWindowTabView());
798 jMenuWindow
.addSeparator();
799 jMenuWindow
.add(getJMenuItemWindowSource());
800 jMenuWindow
.add(getJMenuItemWindowXML());
801 jMenuWindow
.addSeparator();
802 jMenuWindow
.add(getJMenuItemWindowPreferences());
803 jMenuWindow
.setVisible(false);
809 This method initializes jPanelOperation
811 @return javax.swing.JPanel jPanelOperation
814 private JPanel
getJPanelOperation() {
815 if (jPanelOperation
== null) {
816 jPanelOperation
= new JPanel();
817 jPanelOperation
.setLayout(null);
818 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
819 jPanelOperation
.add(getJButtonOk(), null);
820 jPanelOperation
.add(getJButtonCancel(), null);
821 jPanelOperation
.setVisible(false);
823 return jPanelOperation
;
827 This method initializes jButtonOk
829 @return javax.swing.JButton jButtonOk
832 private JButton
getJButtonOk() {
833 if (jButtonOk
== null) {
834 jButtonOk
= new JButton();
835 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
836 jButtonOk
.setText("Ok");
837 jButtonOk
.setEnabled(false);
838 jButtonOk
.addActionListener(this);
844 This method initializes jButtonCancel
846 @return javax.swing.JButton jButtonCancel
849 private JButton
getJButtonCancel() {
850 if (jButtonCancel
== null) {
851 jButtonCancel
= new JButton();
852 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
853 jButtonCancel
.setText("Cancel");
854 jButtonCancel
.setEnabled(false);
855 jButtonCancel
.addActionListener(this);
856 jButtonCancel
.setVisible(false);
858 return jButtonCancel
;
862 This method initializes jMenuItemFileOpen
864 @return javax.swing.JMenuItem jMenuItemFileOpen
866 private JMenuItem
getJMenuItemFileOpen() {
867 if (jMenuItemFileOpen
== null) {
868 jMenuItemFileOpen
= new JMenuItem();
869 jMenuItemFileOpen
.setText("Open...");
870 jMenuItemFileOpen
.setMnemonic('O');
871 jMenuItemFileOpen
.addActionListener(this);
873 return jMenuItemFileOpen
;
877 This method initializes jMenuItemFileCloseAll
879 @return javax.swing.JMenuItem jMenuItemFileOpen
881 private JMenuItem
getJMenuItemFileCloseAll() {
882 if (jMenuItemFileCloseAll
== null) {
883 jMenuItemFileCloseAll
= new JMenuItem();
884 jMenuItemFileCloseAll
.setText("Close All");
885 jMenuItemFileCloseAll
.setEnabled(true);
886 jMenuItemFileCloseAll
.addActionListener(this);
888 return jMenuItemFileCloseAll
;
892 This method initializes jMenuItemFileSaveAll
894 @return javax.swing.JMenuItem jMenuItemFileSaveAll
896 private JMenuItem
getJMenuItemFileSaveAll() {
897 if (jMenuItemFileSaveAll
== null) {
898 jMenuItemFileSaveAll
= new JMenuItem();
899 jMenuItemFileSaveAll
.setText("Save All");
900 jMenuItemFileSaveAll
.setMnemonic('v');
901 jMenuItemFileSaveAll
.setEnabled(true);
902 jMenuItemFileSaveAll
.addActionListener(this);
904 return jMenuItemFileSaveAll
;
908 This method initializes jMenuItemFilePageSetup
910 @return javax.swing.JMenuItem
912 private JMenuItem
getJMenuItemFilePageSetup() {
913 if (jMenuItemFilePageSetup
== null) {
914 jMenuItemFilePageSetup
= new JMenuItem();
915 jMenuItemFilePageSetup
.setText("Page Setup");
916 jMenuItemFilePageSetup
.setMnemonic('u');
917 jMenuItemFilePageSetup
.setEnabled(false);
918 jMenuItemFilePageSetup
.addActionListener(this);
919 jMenuItemFilePageSetup
.setVisible(false);
921 return jMenuItemFilePageSetup
;
925 This method initializes jMenuItemFilePrint
927 @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
946 private JMenuItem
getJMenuItemFileImport() {
947 if (jMenuItemFileImport
== null) {
948 jMenuItemFileImport
= new JMenuItem();
949 jMenuItemFileImport
.setText("Import");
950 jMenuItemFileImport
.setMnemonic('I');
951 jMenuItemFileImport
.setEnabled(false);
952 jMenuItemFileImport
.addActionListener(this);
953 jMenuItemFileImport
.setVisible(false);
955 return jMenuItemFileImport
;
959 * This method initializes jMenuItemFileProperties
961 * @return javax.swing.JMenuItem
963 private JMenuItem
getJMenuItemFileProperties() {
964 if (jMenuItemFileProperties
== null) {
965 jMenuItemFileProperties
= new JMenuItem();
966 jMenuItemFileProperties
.setText("Properties");
967 jMenuItemFileProperties
.setMnemonic('t');
968 jMenuItemFileProperties
.setEnabled(false);
969 jMenuItemFileProperties
.addActionListener(this);
970 jMenuItemFileProperties
.setVisible(false);
972 return jMenuItemFileProperties
;
976 * This method initializes jMenuFileRecentFiles
978 * @return javax.swing.JMenu
980 private JMenu
getJMenuFileRecentFiles() {
981 if (jMenuFileRecentFiles
== null) {
982 jMenuFileRecentFiles
= new JMenu();
983 jMenuFileRecentFiles
.setText("Recent Files");
984 jMenuFileRecentFiles
.setMnemonic('F');
985 jMenuFileRecentFiles
.setEnabled(false);
986 jMenuFileRecentFiles
.addActionListener(this);
987 jMenuFileRecentFiles
.setVisible(false);
989 return jMenuFileRecentFiles
;
993 This method initializes jMenuItemEditUndo
995 @return javax.swing.JMenuItem
997 private JMenuItem
getJMenuItemEditUndo() {
998 if (jMenuItemEditUndo
== null) {
999 jMenuItemEditUndo
= new JMenuItem();
1000 jMenuItemEditUndo
.setText("Undo");
1001 jMenuItemEditUndo
.setMnemonic('U');
1002 jMenuItemEditUndo
.setEnabled(false);
1003 jMenuItemEditUndo
.addActionListener(this);
1005 return jMenuItemEditUndo
;
1009 This method initializes jMenuItemEditRedo
1011 @return javax.swing.JMenuItem
1013 private JMenuItem
getJMenuItemEditRedo() {
1014 if (jMenuItemEditRedo
== null) {
1015 jMenuItemEditRedo
= new JMenuItem();
1016 jMenuItemEditRedo
.setText("Redo");
1017 jMenuItemEditRedo
.setMnemonic('R');
1018 jMenuItemEditRedo
.setEnabled(false);
1019 jMenuItemEditRedo
.addActionListener(this);
1021 return jMenuItemEditRedo
;
1025 This method initializes jMenuItemEditCut
1027 @return javax.swing.JMenuItem
1029 private JMenuItem
getJMenuItemEditCut() {
1030 if (jMenuItemEditCut
== null) {
1031 jMenuItemEditCut
= new JMenuItem();
1032 jMenuItemEditCut
.setText("Cut");
1033 jMenuItemEditCut
.setMnemonic('t');
1034 jMenuItemEditCut
.setEnabled(false);
1035 jMenuItemEditCut
.addActionListener(this);
1037 return jMenuItemEditCut
;
1041 This method initializes jMenuItemEditCopy
1043 @return javax.swing.JMenuItem
1045 private JMenuItem
getJMenuItemEditCopy() {
1046 if (jMenuItemEditCopy
== null) {
1047 jMenuItemEditCopy
= new JMenuItem();
1048 jMenuItemEditCopy
.setText("Copy");
1049 jMenuItemEditCopy
.setMnemonic('C');
1050 jMenuItemEditCopy
.setEnabled(false);
1051 jMenuItemEditCopy
.addActionListener(this);
1053 return jMenuItemEditCopy
;
1057 This method initializes jMenuItemEditPaste
1059 return javax.swing.JMenuItem
1061 private JMenuItem
getJMenuItemEditPaste() {
1062 if (jMenuItemEditPaste
== null) {
1063 jMenuItemEditPaste
= new JMenuItem();
1064 jMenuItemEditPaste
.setText("Paste");
1065 jMenuItemEditPaste
.setMnemonic('P');
1066 jMenuItemEditPaste
.setEnabled(false);
1067 jMenuItemEditPaste
.addActionListener(this);
1069 return jMenuItemEditPaste
;
1073 This method initializes jMenuItem
1075 @return javax.swing.JMenuItem
1077 private JMenuItem
getJMenuItemEditSelectAll() {
1078 if (jMenuItemEditSelectAll
== null) {
1079 jMenuItemEditSelectAll
= new JMenuItem();
1080 jMenuItemEditSelectAll
.setText("Select All");
1081 jMenuItemEditSelectAll
.setMnemonic('A');
1082 jMenuItemEditSelectAll
.setEnabled(false);
1083 jMenuItemEditSelectAll
.addActionListener(this);
1085 return jMenuItemEditSelectAll
;
1089 This method initializes jMenuItemEditFind
1091 @return javax.swing.JMenuItem
1093 private JMenuItem
getJMenuItemEditFind() {
1094 if (jMenuItemEditFind
== null) {
1095 jMenuItemEditFind
= new JMenuItem();
1096 jMenuItemEditFind
.setText("Find");
1097 jMenuItemEditFind
.setMnemonic('F');
1098 jMenuItemEditFind
.setEnabled(false);
1099 jMenuItemEditFind
.addActionListener(this);
1101 return jMenuItemEditFind
;
1105 This method initializes jMenuItemEditFindNext
1107 @return javax.swing.JMenuItem
1110 private JMenuItem
getJMenuItemEditFindNext() {
1111 if (jMenuItemEditFindNext
== null) {
1112 jMenuItemEditFindNext
= new JMenuItem();
1113 jMenuItemEditFindNext
.setText("Find Next");
1114 jMenuItemEditFindNext
.setMnemonic('n');
1115 jMenuItemEditFindNext
.setEnabled(false);
1116 jMenuItemEditFindNext
.addActionListener(this);
1118 return jMenuItemEditFindNext
;
1122 This method initializes jMenuView
1124 @return javax.swing.JMenu
1127 private JMenu
getJMenuView() {
1128 if (jMenuView
== null) {
1129 jMenuView
= new JMenu();
1130 jMenuView
.setText("View");
1131 jMenuView
.setMnemonic('V');
1132 jMenuView
.add(getJMenuViewToolbars());
1133 jMenuView
.add(getJMenuItemViewAdvanced());
1134 jMenuView
.add(getJMenuItemViewStandard());
1135 jMenuView
.add(getJMenuItemViewXML());
1136 jMenuView
.setVisible(false);
1142 This method initializes jMenuViewToolbars
1144 @return javax.swing.JMenu
1147 private JMenu
getJMenuViewToolbars() {
1148 if (jMenuViewToolbars
== null) {
1149 jMenuViewToolbars
= new JMenu();
1150 jMenuViewToolbars
.setText("Toolbars");
1151 jMenuViewToolbars
.setMnemonic('T');
1152 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1153 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1154 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1156 return jMenuViewToolbars
;
1160 This method initializes jCheckBoxMenuItemViewToolbarsFile
1162 @return javax.swing.JCheckBoxMenuItem
1165 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1166 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1167 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1168 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1169 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1170 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1172 return jCheckBoxMenuItemViewToolbarsFile
;
1176 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1178 @return javax.swing.JCheckBoxMenuItem
1181 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1182 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1183 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1184 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1185 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1186 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1188 return jCheckBoxMenuItemViewToolbarsEdit
;
1192 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1194 @return javax.swing.JCheckBoxMenuItem
1197 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1198 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1199 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1200 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1201 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1202 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1204 return jCheckBoxMenuItemViewToolbarsWindow
;
1208 This method initializes jMenuItemStandard
1210 @return javax.swing.JMenuItem
1213 private JMenuItem
getJMenuItemViewStandard() {
1214 if (jMenuItemViewStandard
== null) {
1215 jMenuItemViewStandard
= new JMenuItem();
1216 jMenuItemViewStandard
.setText("Standard");
1217 jMenuItemViewStandard
.setMnemonic('S');
1218 jMenuItemViewStandard
.setEnabled(false);
1219 jMenuItemViewStandard
.addActionListener(this);
1221 return jMenuItemViewStandard
;
1225 This method initializes jMenuItemAdvanced
1227 @return javax.swing.JMenuItem
1230 private JMenuItem
getJMenuItemViewAdvanced() {
1231 if (jMenuItemViewAdvanced
== null) {
1232 jMenuItemViewAdvanced
= new JMenuItem();
1233 jMenuItemViewAdvanced
.setText("Advanced");
1234 jMenuItemViewAdvanced
.setMnemonic('A');
1235 jMenuItemViewAdvanced
.setEnabled(false);
1236 jMenuItemViewAdvanced
.addActionListener(this);
1238 return jMenuItemViewAdvanced
;
1242 This method initializes jMenuProject
1244 @return javax.swing.JMenu
1247 private JMenu
getJMenuProject() {
1248 if (jMenuProject
== null) {
1249 jMenuProject
= new JMenu();
1250 jMenuProject
.setText("Project");
1251 jMenuProject
.setMnemonic('P');
1252 jMenuProject
.add(getJMenuItemProjectAdmin());
1253 //jMenuProject.addSeparator();
1254 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1255 jMenuProject
.addSeparator();
1256 jMenuProject
.add(getJMenuItemProjectInstallPackage());
1257 jMenuProject
.add(getJMenuItemProjectUpdatePackage());
1258 jMenuProject
.add(getJMenuItemProjectRemovePackage());
1259 //jMenuProject.addSeparator();
1260 jMenuProject
.add(getJMenuProjectBuildTargets());
1262 return jMenuProject
;
1266 This method initializes jMenuItemProjectAdmin
1268 @return javax.swing.JMenuItem
1271 private JMenuItem
getJMenuItemProjectAdmin() {
1272 if (jMenuItemProjectAdmin
== null) {
1273 jMenuItemProjectAdmin
= new JMenuItem();
1274 jMenuItemProjectAdmin
.setText("Admin...");
1275 jMenuItemProjectAdmin
.setMnemonic('A');
1276 jMenuItemProjectAdmin
.setEnabled(false);
1277 jMenuItemProjectAdmin
.addActionListener(this);
1278 jMenuItemProjectAdmin
.setVisible(false);
1280 return jMenuItemProjectAdmin
;
1284 This method initializes jMenuItemProjectChangeWorkspace
1286 @return javax.swing.JMenuItem
1289 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1290 if (jMenuItemProjectChangeWorkspace
== null) {
1291 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1292 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1293 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1294 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1295 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1297 return jMenuItemProjectChangeWorkspace
;
1301 This method initializes jMenuProjectBuildTargets
1303 @return javax.swing.JMenu
1306 private JMenu
getJMenuProjectBuildTargets() {
1307 if (jMenuProjectBuildTargets
== null) {
1308 jMenuProjectBuildTargets
= new JMenu();
1309 jMenuProjectBuildTargets
.setText("Build Targets");
1310 jMenuProjectBuildTargets
.setMnemonic('T');
1311 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());
1312 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());
1313 jMenuProjectBuildTargets
.setVisible(false);
1315 return jMenuProjectBuildTargets
;
1319 This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug
1321 @return javax.swing.JCheckBoxMenuItem
1324 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsDebug() {
1325 if (jCheckBoxMenuItemProjectBuildTargetsDebug
== null) {
1326 jCheckBoxMenuItemProjectBuildTargetsDebug
= new JCheckBoxMenuItem();
1327 jCheckBoxMenuItemProjectBuildTargetsDebug
.setText("Debug");
1328 jCheckBoxMenuItemProjectBuildTargetsDebug
.setEnabled(false);
1330 return jCheckBoxMenuItemProjectBuildTargetsDebug
;
1334 This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease
1336 @return javax.swing.JCheckBoxMenuItem
1339 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsRelease() {
1340 if (jCheckBoxMenuItemProjectBuildTargetsRelease
== null) {
1341 jCheckBoxMenuItemProjectBuildTargetsRelease
= new JCheckBoxMenuItem();
1342 jCheckBoxMenuItemProjectBuildTargetsRelease
.setText("Release");
1343 jCheckBoxMenuItemProjectBuildTargetsRelease
.setEnabled(false);
1345 return jCheckBoxMenuItemProjectBuildTargetsRelease
;
1349 This method initializes jMenuItemToolsToolChainConfiguration
1351 @return javax.swing.JMenuItem
1354 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1355 if (jMenuItemToolsToolChainConfiguration
== null) {
1356 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1357 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1358 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1359 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1361 return jMenuItemToolsToolChainConfiguration
;
1365 This method initializes jMenuItemToolsClone
1367 @return javax.swing.JMenuItem
1370 private JMenuItem
getJMenuItemToolsClone() {
1371 if (jMenuItemToolsClone
== null) {
1372 jMenuItemToolsClone
= new JMenuItem();
1373 jMenuItemToolsClone
.setText("Clone...");
1374 jMenuItemToolsClone
.setMnemonic('l');
1375 jMenuItemToolsClone
.setEnabled(true);
1376 jMenuItemToolsClone
.addActionListener(this);
1378 return jMenuItemToolsClone
;
1382 This method initializes jMenuItemToolsCodeScan
1384 @return javax.swing.JMenuItem
1387 private JMenuItem
getJMenuItemToolsCodeScan() {
1388 if (jMenuItemToolsCodeScan
== null) {
1389 jMenuItemToolsCodeScan
= new JMenuItem();
1390 jMenuItemToolsCodeScan
.setText("Code Scan...");
1391 jMenuItemToolsCodeScan
.setMnemonic('S');
1392 jMenuItemToolsCodeScan
.setEnabled(false);
1393 jMenuItemToolsCodeScan
.addActionListener(this);
1394 jMenuItemToolsCodeScan
.setVisible(false);
1396 return jMenuItemToolsCodeScan
;
1400 This method initializes jMenuItemWindowSplitVertical
1402 @return javax.swing.JMenuItem
1405 private JMenuItem
getJMenuItemWindowDisplaySide() {
1406 if (jMenuItemWindowDisplaySide
== null) {
1407 jMenuItemWindowDisplaySide
= new JMenuItem();
1408 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1409 jMenuItemWindowDisplaySide
.setMnemonic('S');
1410 jMenuItemWindowDisplaySide
.setEnabled(false);
1411 jMenuItemWindowDisplaySide
.addActionListener(this);
1413 return jMenuItemWindowDisplaySide
;
1417 This method initializes jMenuItemWindowSplitHorizontal
1419 @return javax.swing.JMenuItem
1422 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1423 if (jMenuItemWindowDisplayTopBottom
== null) {
1424 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1425 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1426 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1427 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1428 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1430 return jMenuItemWindowDisplayTopBottom
;
1434 This method initializes jMenuItemViewXML
1436 @return javax.swing.JMenuItem
1439 private JMenuItem
getJMenuItemViewXML() {
1440 if (jMenuItemViewXML
== null) {
1441 jMenuItemViewXML
= new JMenuItem();
1442 jMenuItemViewXML
.setText("XML");
1443 jMenuItemViewXML
.setMnemonic('X');
1444 jMenuItemViewXML
.setEnabled(false);
1445 jMenuItemViewXML
.addActionListener(this);
1447 return jMenuItemViewXML
;
1451 This method initializes jMenuItemWindowTabView
1453 @return javax.swing.JMenuItem
1456 private JMenuItem
getJMenuItemWindowTabView() {
1457 if (jMenuItemWindowTabView
== null) {
1458 jMenuItemWindowTabView
= new JMenuItem();
1459 jMenuItemWindowTabView
.setText("Tab View");
1460 jMenuItemWindowTabView
.setMnemonic('T');
1461 jMenuItemWindowTabView
.setEnabled(false);
1462 jMenuItemWindowTabView
.addActionListener(this);
1464 return jMenuItemWindowTabView
;
1468 This method initializes jMenuItemWindowSource
1470 @return javax.swing.JMenuItem
1473 private JMenuItem
getJMenuItemWindowSource() {
1474 if (jMenuItemWindowSource
== null) {
1475 jMenuItemWindowSource
= new JMenuItem();
1476 jMenuItemWindowSource
.setText("Source");
1477 jMenuItemWindowSource
.setMnemonic('S');
1478 jMenuItemWindowSource
.setEnabled(false);
1479 jMenuItemWindowSource
.addActionListener(this);
1481 return jMenuItemWindowSource
;
1485 This method initializes jMenuItemWindowXML
1487 @return javax.swing.JMenuItem
1490 private JMenuItem
getJMenuItemWindowXML() {
1491 if (jMenuItemWindowXML
== null) {
1492 jMenuItemWindowXML
= new JMenuItem();
1493 jMenuItemWindowXML
.setText("XML");
1494 jMenuItemWindowXML
.setMnemonic('X');
1495 jMenuItemWindowXML
.setEnabled(false);
1496 jMenuItemWindowXML
.addActionListener(this);
1498 return jMenuItemWindowXML
;
1502 This method initializes jMenuItemWindowPreferences
1504 @return javax.swing.JMenuItem
1507 private JMenuItem
getJMenuItemWindowPreferences() {
1508 if (jMenuItemWindowPreferences
== null) {
1509 jMenuItemWindowPreferences
= new JMenuItem();
1510 jMenuItemWindowPreferences
.setText("Preferences");
1511 jMenuItemWindowPreferences
.setMnemonic('P');
1512 jMenuItemWindowPreferences
.setEnabled(false);
1513 jMenuItemWindowPreferences
.addActionListener(this);
1515 return jMenuItemWindowPreferences
;
1519 This method initializes jMenuItemHelpContents
1521 @return javax.swing.JMenuItem
1524 private JMenuItem
getJMenuItemHelpContents() {
1525 if (jMenuItemHelpContents
== null) {
1526 jMenuItemHelpContents
= new JMenuItem();
1527 jMenuItemHelpContents
.setText("Contents");
1528 jMenuItemHelpContents
.setMnemonic('C');
1529 jMenuItemHelpContents
.setEnabled(false);
1530 jMenuItemHelpContents
.addActionListener(this);
1531 jMenuItemHelpContents
.setVisible(false);
1533 return jMenuItemHelpContents
;
1537 This method initializes jMenuItemHelpIndex
1539 @return javax.swing.JMenuItem
1542 private JMenuItem
getJMenuItemHelpIndex() {
1543 if (jMenuItemHelpIndex
== null) {
1544 jMenuItemHelpIndex
= new JMenuItem();
1545 jMenuItemHelpIndex
.setText("Index");
1546 jMenuItemHelpIndex
.setMnemonic('I');
1547 jMenuItemHelpIndex
.setEnabled(false);
1548 jMenuItemHelpIndex
.addActionListener(this);
1549 jMenuItemHelpIndex
.setVisible(false);
1551 return jMenuItemHelpIndex
;
1555 This method initializes jMenuItemHelpSearch
1557 @return javax.swing.JMenuItem
1560 private JMenuItem
getJMenuItemHelpSearch() {
1561 if (jMenuItemHelpSearch
== null) {
1562 jMenuItemHelpSearch
= new JMenuItem();
1563 jMenuItemHelpSearch
.setText("Search");
1564 jMenuItemHelpSearch
.setMnemonic('S');
1565 jMenuItemHelpSearch
.setEnabled(false);
1566 jMenuItemHelpSearch
.addActionListener(this);
1567 jMenuItemHelpSearch
.setVisible(false);
1569 return jMenuItemHelpSearch
;
1573 * This method initializes jToolBar
1575 * @return javax.swing.JToolBar
1577 // private JToolBar getJToolBarFile() {
1578 // if (jToolBarFile == null) {
1579 // jToolBarFile = new JToolBar();
1580 // jToolBarFile.setFloatable(false);
1582 // return jToolBarFile;
1585 * This method initializes jToolBarEdit
1587 * @return javax.swing.JToolBar
1589 // private JToolBar getJToolBarEdit() {
1590 // if (jToolBarEdit == null) {
1591 // jToolBarEdit = new JToolBar();
1592 // jToolBarEdit.setFloatable(false);
1594 // return jToolBarEdit;
1597 * This method initializes jMenuItemToolsInstallPackage
1599 * @return javax.swing.JMenuItem
1601 private JMenuItem
getJMenuItemProjectInstallPackage() {
1602 if (jMenuItemProjectInstallPackage
== null) {
1603 jMenuItemProjectInstallPackage
= new JMenuItem();
1604 jMenuItemProjectInstallPackage
.setText("Install Distribution Package");
1605 jMenuItemProjectInstallPackage
.setMnemonic('I');
1606 jMenuItemProjectInstallPackage
.setEnabled(false);
1607 jMenuItemProjectInstallPackage
.addActionListener(this);
1609 return jMenuItemProjectInstallPackage
;
1613 * This method initializes jMenuItemToolsUpdatePackage
1615 * @return javax.swing.JMenuItem
1617 private JMenuItem
getJMenuItemProjectUpdatePackage() {
1618 if (jMenuItemProjectUpdatePackage
== null) {
1619 jMenuItemProjectUpdatePackage
= new JMenuItem();
1620 jMenuItemProjectUpdatePackage
.setText("Update Disstribution Package");
1621 jMenuItemProjectUpdatePackage
.setMnemonic('U');
1622 jMenuItemProjectUpdatePackage
.setEnabled(false);
1623 jMenuItemProjectUpdatePackage
.addActionListener(this);
1625 return jMenuItemProjectUpdatePackage
;
1629 * This method initializes jMenuItemRemovePackage
1631 * @return javax.swing.JMenuItem
1633 private JMenuItem
getJMenuItemProjectRemovePackage() {
1634 if (jMenuItemProjectRemovePackage
== null) {
1635 jMenuItemProjectRemovePackage
= new JMenuItem();
1636 jMenuItemProjectRemovePackage
.setText("Remove Distribution Package");
1637 jMenuItemProjectRemovePackage
.setMnemonic('R');
1638 jMenuItemProjectRemovePackage
.setEnabled(false);
1639 jMenuItemProjectRemovePackage
.addActionListener(this);
1641 return jMenuItemProjectRemovePackage
;
1645 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1647 * Main class, start the GUI
1650 public static void main(String
[] args
) {
1651 FrameworkWizardUI module
= new FrameworkWizardUI();
1652 module
.setVisible(true);
1656 This is the default constructor
1659 public FrameworkWizardUI() {
1665 This method initializes this
1669 private void init() {
1671 // Set current workspace and check
1672 // Check if exists WORKSPACE
1675 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1676 if (!Workspace
.checkCurrentWorkspace()) {
1677 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1678 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1683 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1684 this.setResizable(true);
1685 this.setJMenuBar(getjJMenuBar());
1686 this.addComponentListener(this);
1687 this.getCompontentsFromFrameworkDatabase();
1688 this.setContentPane(getJContentPane());
1689 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- [" + Workspace
.getCurrentWorkspace() + "]");
1690 this.setExitType(1);
1695 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1699 This method initializes jContentPane
1701 @return javax.swing.JPanel jContentPane
1704 private JPanel
getJContentPane() {
1705 if (jContentPane
== null) {
1706 jContentPane
= new JPanel();
1707 jContentPane
.setLayout(null);
1708 jContentPane
.add(getJPanelOperation(), null);
1709 jContentPane
.add(getJSplitPane(), null);
1711 return jContentPane
;
1715 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1717 * Override actionPerformed to listen all actions
1720 public void actionPerformed(ActionEvent arg0
) {
1722 // Operations of Menu
1724 if (arg0
.getSource() == jMenuItemFileNew
) {
1728 if (arg0
.getSource() == jMenuItemFileOpen
) {
1732 if (arg0
.getSource() == jMenuItemFileClose
) {
1736 if (arg0
.getSource() == jMenuItemFileCloseAll
) {
1740 if (arg0
.getSource() == jMenuItemFileSave
) {
1744 if (arg0
.getSource() == jMenuItemFileSaveAs
) {
1748 if (arg0
.getSource() == jMenuItemFileSaveAll
) {
1752 if (arg0
.getSource() == jMenuItemFileExit
) {
1756 if (arg0
.getSource() == jMenuItemProjectChangeWorkspace
) {
1760 if (arg0
.getSource() == jMenuItemToolsClone
) {
1764 if (arg0
.getSource() == jMenuItemToolsToolChainConfiguration
) {
1765 setupToolChainConfiguration();
1768 if (arg0
.getSource() == jMenuItemHelpAbout
) {
1769 About a
= new About(this, true);
1770 int result
= a
.showDialog();
1771 if (result
== DataType
.RETURN_TYPE_OK
) {
1778 Create an empty tree if no file is open
1781 private void makeEmptyTree() {
1783 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1785 // Make Module Description
1786 dmtnModuleDescription
= new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode
.MODULE
, -1);
1788 if (this.vModuleList
.size() > 0) {
1789 for (int index
= 0; index
< this.vModuleList
.size(); index
++) {
1790 dmtnModuleDescription
.add(new IDefaultMutableTreeNode(this.vModuleList
.elementAt(index
).getName(),
1791 IDefaultMutableTreeNode
.MSA_HEADER
, false,
1792 this.vModuleList
.elementAt(index
)));
1796 // Make Package Description
1797 dmtnPackageDescription
= new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode
.PACKAGE
, -1);
1798 if (this.vPackageList
.size() > 0) {
1799 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1800 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1801 IDefaultMutableTreeNode
.SPD_HEADER
, false,
1802 this.vPackageList
.elementAt(index
)));
1806 // Make Platform Description
1807 dmtnPlatformDescription
= new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode
.PLATFORM
,
1809 if (this.vPlatformList
.size() > 0) {
1810 for (int index
= 0; index
< this.vPlatformList
.size(); index
++) {
1811 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(this.vPlatformList
.elementAt(index
).getName(),
1812 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
1813 false, this.vPlatformList
.elementAt(index
)));
1817 dmtnRoot
.add(dmtnModuleDescription
);
1818 dmtnRoot
.add(dmtnPackageDescription
);
1819 dmtnRoot
.add(dmtnPlatformDescription
);
1820 iTree
= new ITree(dmtnRoot
);
1821 iTree
.addMouseListener(this);
1822 jScrollPaneTree
.setViewportView(iTree
);
1826 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
1828 * Override windowClosing to popup warning message to confirm quit
1831 public void windowClosing(WindowEvent arg0
) {
1836 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
1838 * Override mouseClicked to check if need display popup menu
1841 public void mouseClicked(MouseEvent arg0
) {
1842 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
1844 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
1847 // When double click
1849 if (arg0
.getClickCount() == 2) {
1850 doubleClickModuleTreeNode();
1854 public void mouseEntered(MouseEvent arg0
) {
1855 // TODO Auto-generated method stub
1858 public void mouseExited(MouseEvent arg0
) {
1859 // TODO Auto-generated method stub
1862 public void mousePressed(MouseEvent arg0
) {
1863 // TODO Auto-generated method stub
1866 public void mouseReleased(MouseEvent arg0
) {
1867 // TODO Auto-generated method stub
1871 Remove all Internal Frame of Module Desktop Pane
1874 private void cleanDesktopPaneModule() {
1875 if (jDesktopPaneModule
!= null) {
1876 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
1877 for (int index
= 0; index
< iif
.length
; index
++) {
1878 iif
[index
].dispose();
1884 Remove all Internal Frame of package Desktop Pane
1887 private void cleanDesktopPanePackage() {
1888 if (jDesktopPanePlatform
!= null) {
1889 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
1890 for (int index
= 0; index
< iif
.length
; index
++) {
1891 iif
[index
].dispose();
1897 Remove all Internal Frame of platform Desktop Pane
1900 private void cleanDesktopPanePlatform() {
1901 if (jDesktopPanePlatform
!= null) {
1902 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
1903 for (int index
= 0; index
< iif
.length
; index
++) {
1904 iif
[index
].dispose();
1910 Remove all Internal Frame of all Desktop Panes
1913 private void cleanDesktopPane() {
1914 cleanDesktopPaneModule();
1915 cleanDesktopPanePackage();
1916 cleanDesktopPanePlatform();
1920 Set file filter as input ext
1926 private int getNewFilePath(String ext
) {
1927 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
1928 fc
.setAcceptAllFileFilterUsed(false);
1929 fc
.addChoosableFileFilter(new IFileFilter(ext
));
1930 return fc
.showSaveDialog(new JPanel());
1936 @param path input file path
1939 private void openModule(String path
) {
1940 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
1942 msa
= OpenFile
.openMsaFile(path
);
1943 } catch (IOException e
) {
1944 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
1946 } catch (XmlException e
) {
1947 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
1949 } catch (Exception e
) {
1950 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
1953 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
1954 msa
.getMsaHeader().getVersion(), path
);
1956 // Generate module id
1958 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
1961 // To judge if the module existed in vModuleList
1962 // If not, add it to vModuleList
1964 boolean isFind
= false;
1965 for (int index
= 0; index
< vModuleList
.size(); index
++) {
1966 if (vModuleList
.elementAt(index
).equals(id
)) {
1972 vModuleList
.addElement(new ModuleIdentification(id
, pid
));
1974 // Add new MsaHeader node to the tree
1976 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vModuleList
.lastElement().getName(),
1977 IDefaultMutableTreeNode
.MSA_HEADER
, true,
1978 vModuleList
.lastElement());
1979 iTree
.addNode(dmtnModuleDescription
, node
);
1983 // The module is not in existing packages
1985 Log
.err("The module hasn't been added to any package of current workspace!");
1989 // Make the node selected
1991 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
1992 IDefaultMutableTreeNode
.MSA_HEADER
)));
1994 // Update opening Module list information
1996 if (!openingModuleList
.existsModule(id
)) {
1998 // Insert sub node of module
2000 insertModuleTreeNode(id
);
2001 iTree
.getSelectNode().setOpening(true);
2004 // Update opening module list
2006 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2007 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2010 // Show msa header in editor panel
2012 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2013 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2019 @param path input file path
2022 private void openPackage(String path
) {
2023 PackageSurfaceAreaDocument
.PackageSurfaceArea spd
= null;
2025 spd
= OpenFile
.openSpdFile(path
);
2026 } catch (IOException e
) {
2027 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2029 } catch (XmlException e
) {
2030 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2032 } catch (Exception e
) {
2033 Log
.err("Open Package Surface Area " + path
, "Invalid file type");
2036 Identification id
= new Identification(spd
.getSpdHeader().getPackageName(), spd
.getSpdHeader().getGuidValue(),
2037 spd
.getSpdHeader().getVersion(), path
);
2039 // To judge if the package existed in vPackageList
2040 // If not, add it to vPackageList
2042 boolean isFind
= false;
2043 for (int index
= 0; index
< vPackageList
.size(); index
++) {
2044 if (vPackageList
.elementAt(index
).equals(id
)) {
2051 // The module is not in existing packages
2053 Log
.err("The package hasn't been added to current workspace!");
2058 // Make the node selected
2060 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2061 IDefaultMutableTreeNode
.SPD_HEADER
)));
2063 // Update opening package list information
2065 if (!openingPackageList
.existsPackage(id
)) {
2067 // Insert sub node of module
2069 insertPackageTreeNode(id
);
2070 iTree
.getSelectNode().setOpening(true);
2073 // Update opening module list
2075 openingPackageList
.insertToOpeningPackageList(id
, spd
);
2076 openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2079 // Show spd header in editor panel
2081 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, openingPackageList
.getOpeningPackageById(id
));
2082 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2088 @param path input file path
2091 private void openPlatform(String path
) {
2092 PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
= null;
2094 fpd
= OpenFile
.openFpdFile(path
);
2095 } catch (IOException e
) {
2096 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2098 } catch (XmlException e
) {
2099 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2101 } catch (Exception e
) {
2102 Log
.err("Open Platform Surface Area " + path
, "Invalid file type");
2105 Identification id
= new Identification(fpd
.getPlatformHeader().getPlatformName(), fpd
.getPlatformHeader()
2107 fpd
.getPlatformHeader().getVersion(), path
);
2109 // To judge if the platform existed in vPlatformList
2110 // If not, add it to vPlatformList
2112 boolean isFind
= false;
2113 for (int index
= 0; index
< vPlatformList
.size(); index
++) {
2114 if (vPlatformList
.elementAt(index
).equals(id
)) {
2121 // The module is not in existing packages
2123 Log
.err("The platform hasn't been added to current workspace!");
2128 // Make the node selected
2130 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2131 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2133 // Update opening package list information
2135 if (!openingPlatformList
.existsPlatform(id
)) {
2137 // Insert sub node of module
2139 insertPlatformTreeNode(id
);
2140 iTree
.getSelectNode().setOpening(true);
2143 // Update opening module list
2145 openingPlatformList
.insertToOpeningPlatformList(id
, fpd
);
2146 openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2149 // Show fpd header in editor panel
2151 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, openingPlatformList
.getOpeningPlatformById(id
));
2152 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2159 private void saveModule(int index
) {
2160 OpeningModuleType omt
= openingModuleList
.getOpeningModuleByIndex(index
);
2162 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2167 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2168 openingModuleList
.setNew(omt
.getId(), false);
2169 openingModuleList
.setModuleSaved(omt
.getId(), true);
2170 } catch (Exception e
) {
2171 Log
.err("Save Module", e
.getMessage());
2179 private void savePackage(int index
) {
2180 OpeningPackageType opt
= openingPackageList
.getOpeningPackageByIndex(index
);
2182 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2187 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2188 openingPackageList
.setNew(opt
.getId(), false);
2189 openingPackageList
.setPackageSaved(opt
.getId(), true);
2190 } catch (Exception e
) {
2191 Log
.err("Save Package", e
.getMessage());
2199 private void savePlatform(int index
) {
2200 OpeningPlatformType opt
= openingPlatformList
.getOpeningPlatformByIndex(index
);
2202 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2207 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2208 openingPlatformList
.setNew(opt
.getId(), false);
2209 openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2210 } catch (Exception e
) {
2211 Log
.err("Save Package", e
.getMessage());
2215 public void componentHidden(ComponentEvent arg0
) {
2216 // TODO Auto-generated method stub
2220 public void componentMoved(ComponentEvent arg0
) {
2221 // TODO Auto-generated method stub
2225 public void componentResized(ComponentEvent arg0
) {
2226 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2227 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2228 this.jSplitPane
.validate();
2229 resizeDesktopPanel();
2232 public void componentShown(ComponentEvent arg0
) {
2233 // TODO Auto-generated method stub
2238 Resize JDesktopPanel
2241 private void resizeDesktopPanel() {
2242 resizeDesktopPanel(this.jDesktopPaneModule
);
2243 resizeDesktopPanel(this.jDesktopPanePackage
);
2244 resizeDesktopPanel(this.jDesktopPanePlatform
);
2248 Resize JDesktopPanel
2251 private void resizeDesktopPanel(JDesktopPane jdk
) {
2252 JInternalFrame
[] iif
= jdk
.getAllFrames();
2253 for (int index
= 0; index
< iif
.length
; index
++) {
2254 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2258 private void getCompontentsFromFrameworkDatabase() {
2259 this.vModuleList
= wt
.getAllModules();
2260 this.vPackageList
= wt
.getAllPackages();
2261 this.vPlatformList
= wt
.getAllPlatforms();
2264 private void insertModuleTreeNode(Identification id
) {
2265 iTree
.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
,
2267 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2268 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2269 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2270 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2271 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2272 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2273 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2274 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2275 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2276 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2277 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2278 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2279 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2280 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2281 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2282 iTree
.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2283 iTree
.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2286 private void insertPackageTreeNode(Identification id
) {
2287 iTree
.addNode(new IDefaultMutableTreeNode("Package Definitions",
2288 IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
, true, id
));
2289 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2290 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2291 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2292 iTree
.addNode(new IDefaultMutableTreeNode("Package Headers", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2294 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2296 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2297 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2298 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2300 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2304 private void insertPlatformTreeNode(Identification id
) {
2305 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2306 iTree
.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2307 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2309 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",
2310 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2311 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2315 Operate when double click a tree node
2318 private void doubleClickModuleTreeNode() {
2319 Identification id
= iTree
.getSelectNode().getId();
2320 int intCategory
= iTree
.getSelectCategory();
2323 // If the node is not opened yet
2324 // Insert top level elements first
2326 //if (intCategory == IDefaultMutableTreeNode.MSA_HEADER || intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {
2327 if (intCategory
== IDefaultMutableTreeNode
.MSA_HEADER
) {
2329 if (intCategory
== IDefaultMutableTreeNode
.MSA_HEADER
) {
2330 path
= iTree
.getSelectNode().getId().getPath();
2332 if (intCategory
== IDefaultMutableTreeNode
.SPD_MSAFILES
) {
2333 path
= iTree
.getSelectNode().getId().getPath();
2338 if (intCategory
== IDefaultMutableTreeNode
.SPD_HEADER
) {
2339 path
= iTree
.getSelectNode().getId().getPath();
2343 if (intCategory
== IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2344 path
= iTree
.getSelectNode().getId().getPath();
2349 // Show editor panel
2351 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2352 showModuleElement(intCategory
, openingModuleList
.getOpeningModuleById(id
));
2353 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2355 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2356 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2357 showPackageElement(intCategory
, openingPackageList
.getOpeningPackageById(id
));
2358 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2360 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2361 showPlatformElement(intCategory
, openingPlatformList
.getOpeningPlatformById(id
));
2362 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2367 Show content of editor panel via selected element
2373 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2374 this.cleanDesktopPanePlatform();
2376 switch (elementType
) {
2377 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2378 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2379 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2381 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2382 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2383 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2385 case IDefaultMutableTreeNode
.FPD_FLASH
:
2386 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2387 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2389 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2390 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2391 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2393 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2394 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2395 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2397 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2398 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2399 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2402 this.jTabbedPaneEditor
.setSelectedIndex(2);
2403 resizeDesktopPanel();
2407 Show content of editor panel via selected element
2413 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2414 this.cleanDesktopPanePackage();
2415 Tools
.dirForNewSpd
= spd
.getId().getPath();
2416 switch (elementType
) {
2417 case IDefaultMutableTreeNode
.SPD_HEADER
:
2418 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2419 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2421 case IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
:
2422 SpdPackageDefinitions frmSpdPackageDefinitions
= new SpdPackageDefinitions(spd
);
2423 getJDesktopPanePackage().add(frmSpdPackageDefinitions
, 1);
2425 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2426 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2427 getJDesktopPanePackage().add(frmSlcd
, 1);
2429 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2430 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2431 getJDesktopPanePackage().add(frmSmf
, 1);
2433 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2434 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2435 getJDesktopPanePackage().add(frmSph
, 1);
2437 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2438 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2439 getJDesktopPanePackage().add(frmSgd
, 1);
2441 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2442 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2443 getJDesktopPanePackage().add(frmSprod
, 1);
2445 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2446 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2447 getJDesktopPanePackage().add(frmSppid
, 1);
2449 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2450 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2451 getJDesktopPanePackage().add(frmSpcdd
, 1);
2454 this.jTabbedPaneEditor
.setSelectedIndex(1);
2455 resizeDesktopPanel();
2459 Show content of editor panel via selected element
2465 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2466 this.cleanDesktopPaneModule();
2467 switch (elementType
) {
2468 case IDefaultMutableTreeNode
.MSA_HEADER
:
2469 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2470 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2472 case IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
:
2473 ModuleDefinitions frmMd
= new ModuleDefinitions(msa
);
2474 getJDesktopPaneModule().add(frmMd
, 1);
2476 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2477 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2478 getJDesktopPaneModule().add(frmMlcd
, 1);
2480 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2481 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2482 getJDesktopPaneModule().add(frmMpd
, 1);
2484 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2485 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2486 getJDesktopPaneModule().add(frmMsf
, 1);
2488 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2489 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2490 getJDesktopPaneModule().add(frmMp
, 1);
2492 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2493 ModuleEvents frmMe
= new ModuleEvents(msa
);
2494 getJDesktopPaneModule().add(frmMe
, 1);
2496 case IDefaultMutableTreeNode
.MSA_HOBS
:
2497 ModuleHobs frmMh
= new ModuleHobs(msa
);
2498 getJDesktopPaneModule().add(frmMh
, 1);
2500 case IDefaultMutableTreeNode
.MSA_PPIS
:
2501 ModulePpis frmMpp
= new ModulePpis(msa
);
2502 getJDesktopPaneModule().add(frmMpp
, 1);
2504 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2505 ModuleVariables frmMv
= new ModuleVariables(msa
);
2506 getJDesktopPaneModule().add(frmMv
, 1);
2508 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2509 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2510 getJDesktopPaneModule().add(frmMbm
, 1);
2512 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2513 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2514 getJDesktopPaneModule().add(frmMst
, 1);
2516 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2517 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2518 getJDesktopPaneModule().add(frmMdh
, 1);
2520 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2521 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2522 getJDesktopPaneModule().add(frmMf
, 1);
2524 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2525 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2526 getJDesktopPaneModule().add(frmGuid
, 1);
2528 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2529 ModuleExterns frmMex
= new ModuleExterns(msa
);
2530 getJDesktopPaneModule().add(frmMex
, 1);
2532 case IDefaultMutableTreeNode
.MSA_PCDS
:
2533 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2534 getJDesktopPaneModule().add(frmPcd
, 1);
2537 this.jTabbedPaneEditor
.setSelectedIndex(0);
2538 resizeDesktopPanel();
2542 // Define operations of menu
2548 private void fileNew() {
2551 // Selece new file type
2553 NewFileChooser nfc
= new NewFileChooser(this, true);
2554 result
= nfc
.showDialog();
2556 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2559 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2563 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2564 result
= smb
.showDialog();
2566 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2570 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2571 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2572 if (this.openingPackageList
.existsPackage(smb
.getMid().getPackageId())) {
2573 psa
= openingPackageList
.getPackageSurfaceAreaFromId(smb
.getMid().getPackageId());
2576 wt
.addModuleToPackage(smb
.getMid(), psa
);
2577 } catch (IOException e
) {
2578 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2579 e
.printStackTrace();
2581 } catch (XmlException e
) {
2582 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2583 e
.printStackTrace();
2585 } catch (Exception e
) {
2586 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2587 e
.printStackTrace();
2590 this.openModule(smb
.getMid().getPath());
2592 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2596 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2597 result
= smb
.showDialog();
2599 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2603 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2605 wt
.addPackageToDatabase(smb
.getPid());
2606 } catch (Exception e
) {
2607 // TODO Auto-generated catch block
2608 e
.printStackTrace();
2610 vPackageList
.addElement(smb
.getPid());
2612 // Add new SpdHeader node to the tree
2614 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2615 IDefaultMutableTreeNode
.SPD_HEADER
, true,
2616 vPackageList
.lastElement());
2617 iTree
.addNode(dmtnPackageDescription
, node
);
2618 this.openPackage(smb
.getPid().getPath());
2620 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2622 // To new a platform
2624 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2625 result
= smb
.showDialog();
2627 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2631 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2633 wt
.addPlatformToDatabase(smb
.getFid());
2634 } catch (Exception e
) {
2635 // TODO Auto-generated catch block
2636 e
.printStackTrace();
2638 vPlatformList
.addElement(smb
.getFid());
2640 // Add new SpdHeader node to the tree
2642 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
2643 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2644 true, vPlatformList
.lastElement());
2645 iTree
.addNode(dmtnPlatformDescription
, node
);
2646 this.openPlatform(smb
.getFid().getPath());
2655 private void open() {
2656 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2657 fc
.setAcceptAllFileFilterUsed(false);
2658 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2659 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2660 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2661 fc
.addChoosableFileFilter(iffM
);
2662 fc
.addChoosableFileFilter(iffP
);
2663 fc
.addChoosableFileFilter(iffF
);
2664 fc
.setFileFilter(iffM
);
2666 int result
= fc
.showOpenDialog(new JPanel());
2668 if (result
== JFileChooser
.APPROVE_OPTION
) {
2669 String path
= fc
.getSelectedFile().getPath();
2670 String match
= path
.substring(path
.length() - 4);
2671 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2673 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2675 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2685 private void close() {
2686 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2688 // Current is module
2691 if (this.currentOpeningModuleIndex
> -1) {
2692 if (!openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2693 int result
= showSaveDialog();
2694 if (result
== JOptionPane
.YES_OPTION
) {
2697 if (result
== JOptionPane
.NO_OPTION
) {
2700 if (result
== JOptionPane
.CANCEL_OPTION
) {
2704 iTree
.removeNodeChildrenByPath(openingModuleList
.getTreePathByIndex(currentOpeningModuleIndex
));
2705 this.openingModuleList
.removeFromOpeningModuleListByIndex(this.currentOpeningModuleIndex
);
2706 this.cleanDesktopPaneModule();
2707 this.currentOpeningModuleIndex
= -1;
2711 // Current is package
2714 if (this.currentOpeningPackageIndex
> -1) {
2715 if (!openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2716 int result
= showSaveDialog();
2717 if (result
== JOptionPane
.YES_OPTION
) {
2720 if (result
== JOptionPane
.NO_OPTION
) {
2723 if (result
== JOptionPane
.CANCEL_OPTION
) {
2727 iTree
.removeNodeChildrenByPath(openingPackageList
.getTreePathByIndex(currentOpeningPackageIndex
));
2728 this.openingPackageList
.removeFromOpeningPackageListByIndex(this.currentOpeningPackageIndex
);
2729 this.cleanDesktopPanePackage();
2730 this.currentOpeningPackageIndex
= -1;
2734 // Current is platform
2737 if (this.currentOpeningPlatformIndex
> -1) {
2738 if (!openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
2739 int result
= showSaveDialog();
2740 if (result
== JOptionPane
.YES_OPTION
) {
2743 if (result
== JOptionPane
.NO_OPTION
) {
2746 if (result
== JOptionPane
.CANCEL_OPTION
) {
2750 iTree
.removeNodeChildrenByPath(openingPlatformList
.getTreePathByIndex(currentOpeningPlatformIndex
));
2751 this.openingPlatformList
.removeFromOpeningPlatformListByIndex(this.currentOpeningPlatformIndex
);
2752 this.cleanDesktopPanePlatform();
2753 this.currentOpeningPlatformIndex
= -1;
2760 Close all opening files and clean all showing internal frame
2763 private void closeAll() {
2765 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
2766 result
= showSaveDialog();
2768 if (result
== JOptionPane
.YES_OPTION
) {
2771 if (result
== JOptionPane
.NO_OPTION
) {
2774 if (result
== JOptionPane
.CANCEL_OPTION
) {
2777 this.cleanDesktopPane();
2778 this.getCompontentsFromFrameworkDatabase();
2779 openingModuleList
.removeAllFromOpeningModuleList();
2780 openingPackageList
.removeAllFromOpeningPackageList();
2781 openingPlatformList
.removeAllFromOpeningPlatformList();
2782 this.makeEmptyTree();
2786 Save currentModule when press button OK
2789 private void save() {
2790 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2792 if (this.currentOpeningModuleIndex
> -1) {
2793 saveModule(this.currentOpeningModuleIndex
);
2797 if (this.currentOpeningPackageIndex
> -1) {
2798 savePackage(this.currentOpeningPackageIndex
);
2802 if (this.currentOpeningPlatformIndex
> -1) {
2803 savePlatform(this.currentOpeningPlatformIndex
);
2809 private void saveAs() {
2813 private void saveAll() {
2817 for (int index
= 0; index
< openingModuleList
.size(); index
++) {
2818 if (!openingModuleList
.getModuleSaved(index
)) {
2824 // Save all packages
2826 for (int index
= 0; index
< openingPackageList
.size(); index
++) {
2827 if (!openingPackageList
.getPackageSaved(index
)) {
2833 // Save all platforms
2835 for (int index
= 0; index
< openingPlatformList
.size(); index
++) {
2836 if (!openingPlatformList
.getPlatformSaved(index
)) {
2837 savePlatform(index
);
2843 To save changed items before exit.
2846 private void exit() {
2848 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
2849 result
= showSaveDialog();
2851 if (result
== JOptionPane
.YES_OPTION
) {
2854 if (result
== JOptionPane
.NO_OPTION
) {
2857 if (result
== JOptionPane
.CANCEL_OPTION
) {
2865 Switch current workspace to others
2868 private void changeWorkspace() {
2869 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
2870 int result
= sw
.showDialog();
2871 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2873 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2875 // Reinit whole window
2878 this.setTitle(DataType
.PROJECT_NAME
+ " " + DataType
.PROJECT_VERSION
+ " " + "- [" + Workspace
.getCurrentWorkspace() + "]");
2884 Show Tool Chain Configuration Dialog to setup Tool Chain
2887 private void setupToolChainConfiguration() {
2888 ToolChainConfig tcc
= new ToolChainConfig(this, true);
2889 int result
= tcc
.showDialog();
2891 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2900 private void cloneItem() {
2904 // Check if there is any item can be cloned
2906 if (iTree
.getSelectionPath() == null) {
2907 Log
.err("Please select a target to clone!");
2910 int category
= iTree
.getSelectCategory();
2911 Identification id
= iTree
.getSelectNode().getId();
2912 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
2913 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
2914 Log
.err("Please select a target to clone!");
2918 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
2919 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
2922 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2923 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
2925 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2926 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
2928 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2929 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
2932 Clone c
= new Clone(this, true, mode
, id
);
2933 int result
= c
.showDialog();
2935 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2938 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
2939 Tools
.showInformationMessage("Workspace Clone Finished");
2941 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2942 Tools
.showInformationMessage("Module Surface Area Clone Finished");
2943 vModuleList
.addElement(c
.getMid());
2945 // Add new MsaHeader node to the tree
2947 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vModuleList
.lastElement().getName(),
2948 IDefaultMutableTreeNode
.MSA_HEADER
, true,
2949 vModuleList
.lastElement());
2950 iTree
.addNode(dmtnModuleDescription
, node
);
2952 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2953 Tools
.showInformationMessage("Package Surface Area Clone Finished");
2954 vPackageList
.addElement(c
.getPid());
2956 // Add new SpdHeader node to the tree
2958 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2959 IDefaultMutableTreeNode
.SPD_HEADER
, true,
2960 vPackageList
.lastElement());
2961 iTree
.addNode(dmtnPackageDescription
, node
);
2963 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2964 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
2965 vPlatformList
.addElement(c
.getFid());
2967 // Add new SpdHeader node to the tree
2969 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
2970 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2971 true, vPlatformList
.lastElement());
2972 iTree
.addNode(dmtnPlatformDescription
, node
);
2973 //this.openPlatform(c.getFid().getPath());
2975 if (result
== DataType
.RETURN_TYPE_OK
) {
2980 public void valueChanged(TreeSelectionEvent arg0
) {
2981 // TODO Auto-generated method stub
2985 public void menuCanceled(MenuEvent arg0
) {
2986 // TODO Auto-generated method stub
2990 public void menuDeselected(MenuEvent arg0
) {
2991 // TODO Auto-generated method stub
2995 public void menuSelected(MenuEvent arg0
) {
2996 if (arg0
.getSource() == jMenuFile
) {
2998 // Enable close/close all if some files are opened
3000 jMenuItemFileClose
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3001 || openingPlatformList
.isOpend());
3002 jMenuItemFileCloseAll
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3003 || openingPlatformList
.isOpend());
3006 // Enable save/save all if some files are changed
3008 jMenuItemFileSave
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3009 || !openingPlatformList
.isSaved());
3010 jMenuItemFileSaveAll
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3011 || !openingPlatformList
.isSaved());
3014 if (arg0
.getSource() == jMenuTools
) {
3016 // Enable clone when select some items
3018 if (iTree
.getSelectionPath() == null) {
3019 jMenuItemToolsClone
.setEnabled(false);
3021 int category
= iTree
.getSelectCategory();
3022 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3023 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3024 jMenuItemToolsClone
.setEnabled(false);
3026 jMenuItemToolsClone
.setEnabled(true);