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 String projectName
= "FrameworkWizard";
141 private String projectVersion
= "0.5";
143 private IDefaultMutableTreeNode dmtnRoot
= null;
145 private IDefaultMutableTreeNode dmtnModuleDescription
= null;
147 private IDefaultMutableTreeNode dmtnPackageDescription
= null;
149 private IDefaultMutableTreeNode dmtnPlatformDescription
= null;
151 private JPanel jContentPane
= null;
153 private JMenuBar jMenuBar
= null;
155 private JMenu jMenuFile
= null;
157 private JMenuItem jMenuItemFileNew
= null;
159 private JMenuItem jMenuItemFileSaveAs
= null;
161 private JMenuItem jMenuItemFileExit
= null;
163 private JMenu jMenuEdit
= null;
165 private JDesktopPane jDesktopPaneModule
= null;
167 private JDesktopPane jDesktopPanePackage
= null;
169 private JDesktopPane jDesktopPanePlatform
= null;
171 private JTabbedPane jTabbedPaneTree
= null;
173 private JTabbedPane jTabbedPaneEditor
= null;
175 private IDesktopManager iDesktopManager
= new IDesktopManager();
177 private JScrollPane jScrollPaneTree
= null;
179 private ITree iTree
= null;
181 private JMenu jMenuHelp
= null;
183 private JMenuItem jMenuItemHelpAbout
= null;
185 private JMenuItem jMenuItemEditDelete
= null;
187 private WorkspaceTools wt
= new WorkspaceTools();
189 private JMenuItem jMenuItemFileSave
= null;
191 private JMenuItem jMenuItemFileClose
= null;
193 private JMenu jMenuTools
= null;
195 private JMenu jMenuWindow
= null;
197 private JPanel jPanelOperation
= null;
199 private JButton jButtonOk
= null;
201 private JButton jButtonCancel
= null;
203 private JMenuItem jMenuItemFileOpen
= null;
205 private JMenuItem jMenuItemFileCloseAll
= null;
207 private JMenuItem jMenuItemFileSaveAll
= null;
209 private JMenuItem jMenuItemFilePageSetup
= null;
211 private JMenuItem jMenuItemFilePrint
= null;
213 private JMenuItem jMenuItemFileImport
= null;
215 private JMenuItem jMenuItemFileProperties
= null;
217 private JMenu jMenuFileRecentFiles
= null;
219 private JSplitPane jSplitPane
= null;
221 private JMenuItem jMenuItemEditUndo
= null;
223 private JMenuItem jMenuItemEditRedo
= null;
225 private JMenuItem jMenuItemEditCut
= null;
227 private JMenuItem jMenuItemEditCopy
= null;
229 private JMenuItem jMenuItemEditPaste
= null;
231 private JMenuItem jMenuItemEditSelectAll
= null;
233 private JMenuItem jMenuItemEditFind
= null;
235 private JMenuItem jMenuItemEditFindNext
= null;
237 private JMenu jMenuView
= null;
239 private JMenu jMenuViewToolbars
= null;
241 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile
= null;
243 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit
= null;
245 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow
= null;
247 private JMenuItem jMenuItemViewStandard
= null;
249 private JMenuItem jMenuItemViewAdvanced
= null;
251 private JMenu jMenuProject
= null;
253 private JMenuItem jMenuItemProjectAdmin
= null;
255 private JMenuItem jMenuItemProjectChangeWorkspace
= null;
257 private JMenu jMenuProjectBuildTargets
= null;
259 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug
= null;
261 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease
= null;
263 private JMenuItem jMenuItemToolsToolChainConfiguration
= null;
265 private JMenuItem jMenuItemToolsClone
= null;
267 private JMenuItem jMenuItemToolsCodeScan
= null;
269 private JMenuItem jMenuItemWindowDisplaySide
= null;
271 private JMenuItem jMenuItemWindowDisplayTopBottom
= null;
273 private JMenuItem jMenuItemViewXML
= null;
275 private JMenuItem jMenuItemWindowTabView
= null;
277 private JMenuItem jMenuItemWindowSource
= null;
279 private JMenuItem jMenuItemWindowXML
= null;
281 private JMenuItem jMenuItemWindowPreferences
= null;
283 private JMenuItem jMenuItemHelpContents
= null;
285 private JMenuItem jMenuItemHelpIndex
= null;
287 private JMenuItem jMenuItemHelpSearch
= null;
289 private JMenuItem jMenuItemProjectInstallPackage
= null;
291 private JMenuItem jMenuItemProjectUpdatePackage
= null;
293 private JMenuItem jMenuItemProjectRemovePackage
= null;
295 //private JToolBar jToolBarFile = null;
297 //private JToolBar jToolBarEdit = null;
299 //private JToolBar jToolBarWindow = null;
302 This method initializes jMenuBar
304 @return javax.swing.JMenuBar Main menu bar for the entire GUI
307 private JMenuBar
getjJMenuBar() {
308 if (jMenuBar
== null) {
309 jMenuBar
= new JMenuBar();
310 jMenuBar
.setPreferredSize(new java
.awt
.Dimension(0, 18));
311 jMenuBar
.add(getJMenuFile());
312 jMenuBar
.add(getJMenuEdit());
313 jMenuBar
.add(getJMenuView());
314 jMenuBar
.add(getJMenuProject());
315 jMenuBar
.add(getJMenuTools());
316 jMenuBar
.add(getJMenuWindow());
317 jMenuBar
.add(getJMenuHelp());
323 This method initializes jSplitPane
325 @return javax.swing.JSplitPane
328 private JSplitPane
getJSplitPane() {
329 if (jSplitPane
== null) {
330 jSplitPane
= new JSplitPane(JSplitPane
.HORIZONTAL_SPLIT
, getJTabbedPaneTree(), getJTabbedPaneEditor());
331 jSplitPane
.setBounds(new java
.awt
.Rectangle(0, 1, DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH
,
332 DataType
.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT
));
333 jSplitPane
.addComponentListener(this);
339 This method initializes jTabbedPaneEditor
341 @return javax.swing.JTabbedPane
344 private JTabbedPane
getJTabbedPaneEditor() {
345 if (jTabbedPaneEditor
== null) {
346 jTabbedPaneEditor
= new JTabbedPane();
347 jTabbedPaneEditor
.setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
348 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
349 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
350 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
352 .setMinimumSize(new java
.awt
.Dimension(
353 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
354 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
355 //jTabbedPaneEditor.addChangeListener(this);
356 jTabbedPaneEditor
.addTab("Module", null, getJDesktopPaneModule(), null);
357 jTabbedPaneEditor
.addTab("Package", null, getJDesktopPanePackage(), null);
358 jTabbedPaneEditor
.addTab("Platform", null, getJDesktopPanePlatform(), null);
360 return jTabbedPaneEditor
;
364 This method initializes jTabbedPaneTree
366 @return javax.swing.JTabbedPane
369 private JTabbedPane
getJTabbedPaneTree() {
370 if (jTabbedPaneTree
== null) {
371 jTabbedPaneTree
= new JTabbedPane();
373 .setPreferredSize(new java
.awt
.Dimension(
374 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
375 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
377 .setMinimumSize(new java
.awt
.Dimension(DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
378 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
379 jTabbedPaneTree
.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
381 return jTabbedPaneTree
;
385 This method initializes jMenuFile
387 @return javax.swing.JMenu jMenuModule
390 private JMenu
getJMenuFile() {
391 if (jMenuFile
== null) {
392 jMenuFile
= new JMenu();
393 jMenuFile
.setText("File");
394 jMenuFile
.setMnemonic('F');
395 jMenuFile
.add(getJMenuItemFileNew());
396 jMenuFile
.add(getJMenuItemFileOpen());
397 jMenuFile
.add(getJMenuItemFileClose());
398 jMenuFile
.add(getJMenuItemFileCloseAll());
399 jMenuFile
.addSeparator();
400 jMenuFile
.add(getJMenuFileRecentFiles());
401 //jMenuFile.addSeparator();
402 jMenuFile
.add(getJMenuItemFileSave());
403 jMenuFile
.add(getJMenuItemFileSaveAs());
404 jMenuFile
.add(getJMenuItemFileSaveAll());
405 jMenuFile
.addSeparator();
406 jMenuFile
.add(getJMenuItemFilePageSetup());
407 jMenuFile
.add(getJMenuItemFilePrint());
408 //jMenuFile.addSeparator();
409 jMenuFile
.add(getJMenuItemFileImport());
410 //jMenuFile.addSeparator();
411 jMenuFile
.add(getJMenuItemFileProperties());
412 //jMenuFile.addSeparator();
413 jMenuFile
.add(getJMenuItemFileExit());
414 jMenuFile
.addMenuListener(this);
420 This method initializes jMenuItemFileSaveAs
422 @return javax.swing.JMenuItem jMenuItemFileSaveAs
425 private JMenuItem
getJMenuItemFileSaveAs() {
426 if (jMenuItemFileSaveAs
== null) {
427 jMenuItemFileSaveAs
= new JMenuItem();
428 jMenuItemFileSaveAs
.setText("Save As...");
429 jMenuItemFileSaveAs
.setMnemonic('a');
430 jMenuItemFileSaveAs
.addActionListener(this);
431 jMenuItemFileSaveAs
.setEnabled(false);
432 jMenuItemFileSaveAs
.setVisible(false);
434 return jMenuItemFileSaveAs
;
438 This method initializes jMenuItemModuleExit
440 @return javax.swing.JMenuItem jMenuItemModuleExit
443 private JMenuItem
getJMenuItemFileExit() {
444 if (jMenuItemFileExit
== null) {
445 jMenuItemFileExit
= new JMenuItem();
446 jMenuItemFileExit
.setText("Exit");
447 jMenuItemFileExit
.setMnemonic('x');
448 jMenuItemFileExit
.addActionListener(this);
450 return jMenuItemFileExit
;
454 This method initializes jMenuEdit
456 @return javax.swing.JMenu jMenuEdit
459 private JMenu
getJMenuEdit() {
460 if (jMenuEdit
== null) {
461 jMenuEdit
= new JMenu();
462 jMenuEdit
.setText("Edit");
463 jMenuEdit
.setMnemonic('E');
464 jMenuEdit
.add(getJMenuItemEditUndo());
465 jMenuEdit
.add(getJMenuItemEditRedo());
466 jMenuEdit
.addSeparator();
467 jMenuEdit
.add(getJMenuItemEditCut());
468 jMenuEdit
.add(getJMenuItemEditCopy());
469 jMenuEdit
.add(getJMenuItemEditPaste());
470 jMenuEdit
.add(getJMenuItemEditDelete());
471 jMenuEdit
.addSeparator();
472 jMenuEdit
.add(getJMenuItemEditSelectAll());
473 jMenuEdit
.add(getJMenuItemEditFind());
474 jMenuEdit
.add(getJMenuItemEditFindNext());
475 jMenuEdit
.addSeparator();
476 jMenuEdit
.setVisible(false);
482 This method initializes jDesktopPane
484 @return javax.swing.JDesktopPane jDesktopPane
487 private JDesktopPane
getJDesktopPaneModule() {
488 if (jDesktopPaneModule
== null) {
489 jDesktopPaneModule
= new JDesktopPane();
491 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
492 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
493 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
494 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
496 .setMinimumSize(new java
.awt
.Dimension(
497 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
498 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
499 jDesktopPaneModule
.setDesktopManager(iDesktopManager
);
500 jDesktopPaneModule
.addComponentListener(this);
502 return jDesktopPaneModule
;
506 This method initializes jDesktopPane
508 @return javax.swing.JDesktopPane jDesktopPane
511 private JDesktopPane
getJDesktopPanePackage() {
512 if (jDesktopPanePackage
== null) {
513 jDesktopPanePackage
= new JDesktopPane();
515 .setBounds(new java
.awt
.Rectangle(DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
516 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
517 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
518 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
520 .setMinimumSize(new java
.awt
.Dimension(
521 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
522 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
523 jDesktopPanePackage
.setDesktopManager(iDesktopManager
);
524 jDesktopPanePackage
.addComponentListener(this);
526 return jDesktopPanePackage
;
530 This method initializes jDesktopPane
532 @return javax.swing.JDesktopPane jDesktopPane
535 private JDesktopPane
getJDesktopPanePlatform() {
536 if (jDesktopPanePlatform
== null) {
537 jDesktopPanePlatform
= new JDesktopPane();
539 .setBounds(new java
.awt
.Rectangle(
540 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_X
,
541 DataType
.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y
,
542 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
543 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
545 .setMinimumSize(new java
.awt
.Dimension(
546 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH
,
547 DataType
.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT
));
548 jDesktopPanePlatform
.setDesktopManager(iDesktopManager
);
549 jDesktopPanePlatform
.addComponentListener(this);
551 return jDesktopPanePlatform
;
555 This method initializes jScrollPaneTree
557 @return javax.swing.JScrollPane jScrollPaneTree
560 private JScrollPane
getJScrollPaneTree() {
561 if (jScrollPaneTree
== null) {
562 jScrollPaneTree
= new JScrollPane();
563 //jScrollPaneTree.setBounds(new java.awt.Rectangle(0, 1, 290, 545));
565 .setPreferredSize(new java
.awt
.Dimension(
566 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
,
567 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
569 .setMinimumSize(new java
.awt
.Dimension(
570 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH
/ 2,
571 DataType
.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT
));
572 jScrollPaneTree
.setViewportView(getITree());
574 return jScrollPaneTree
;
578 This method initializes iTree
580 @return org.tianocore.packaging.common.ui.ITree iTree
583 private ITree
getITree() {
585 //Before open a real module, use an empty root node for the tree
592 This method initializes jMenuHelp
594 @return javax.swing.JMenu jMenuHelp
597 private JMenu
getJMenuHelp() {
598 if (jMenuHelp
== null) {
599 jMenuHelp
= new JMenu();
600 jMenuHelp
.setText("Help");
601 jMenuHelp
.add(getJMenuItemHelpContents());
602 jMenuHelp
.add(getJMenuItemHelpIndex());
603 jMenuHelp
.add(getJMenuItemHelpSearch());
604 //jMenuHelp.addSeparator();
605 jMenuHelp
.add(getJMenuItemHelpAbout());
611 This method initializes jMenuItemHelpAbout
613 @return javax.swing.JMenuItem jMenuItemHelpAbout
616 private JMenuItem
getJMenuItemHelpAbout() {
617 if (jMenuItemHelpAbout
== null) {
618 jMenuItemHelpAbout
= new JMenuItem();
619 jMenuItemHelpAbout
.setText("About...");
620 jMenuItemHelpAbout
.addActionListener(this);
622 return jMenuItemHelpAbout
;
626 This method initializes jMenuItemEditDelete
628 @return javax.swing.JMenuItem jMenuItemEditDelete
631 private JMenuItem
getJMenuItemEditDelete() {
632 if (jMenuItemEditDelete
== null) {
633 jMenuItemEditDelete
= new JMenuItem();
634 jMenuItemEditDelete
.setText("Delete");
635 jMenuItemEditDelete
.setMnemonic('D');
636 jMenuItemEditDelete
.addActionListener(this);
638 //Disabled when no module is open
640 jMenuItemEditDelete
.setEnabled(false);
642 return jMenuItemEditDelete
;
646 // This method initializes jPopupMenu
648 // @return javax.swing.JPopupMenu jPopupMenu
651 // private JPopupMenu getJPopupMenu() {
652 // if (jPopupMenu == null) {
653 // jPopupMenu = new JPopupMenu();
655 // //Add menu items of popup menu
657 // jPopupMenu.add(getJMenuItemPopupAdd());
658 // jPopupMenu.add(getJMenuItemPopupUpdate());
659 // jPopupMenu.add(getJMenuItemPopupDelete());
660 // jPopupMenu.setBorder(new BevelBorder(BevelBorder.RAISED));
661 // jPopupMenu.addMouseListener(this);
663 // return jPopupMenu;
667 // This method initializes jMenuItemPopupAdd
669 // @return javax.swing.JMenuItem jMenuItemPopupAdd
672 // private JMenuItem getJMenuItemPopupAdd() {
673 // if (jMenuItemPopupAdd == null) {
674 // jMenuItemPopupAdd = new JMenuItem();
675 // jMenuItemPopupAdd.setText("Add");
676 // jMenuItemPopupAdd.addActionListener(this);
677 // jMenuItemPopupAdd.setEnabled(false);
679 // return jMenuItemPopupAdd;
683 // This method initializes jMenuItemPopupUpdate
685 // @return javax.swing.JMenuItem jMenuItemPopupUpdate
688 // private JMenuItem getJMenuItemPopupUpdate() {
689 // if (jMenuItemPopupUpdate == null) {
690 // jMenuItemPopupUpdate = new JMenuItem();
691 // jMenuItemPopupUpdate.setText("Update");
692 // jMenuItemPopupUpdate.addActionListener(this);
693 // jMenuItemPopupUpdate.setEnabled(false);
695 // return jMenuItemPopupUpdate;
699 // This method initializes jMenuItemPopupDelete
701 // @return javax.swing.JMenuItem jMenuItemPopupDelete
704 // private JMenuItem getJMenuItemPopupDelete() {
705 // if (jMenuItemPopupDelete == null) {
706 // jMenuItemPopupDelete = new JMenuItem();
707 // jMenuItemPopupDelete.setText("Delete");
708 // jMenuItemPopupDelete.addActionListener(this);
709 // jMenuItemPopupDelete.setEnabled(false);
711 // return jMenuItemPopupDelete;
715 This method initializes jMenuFileNew
717 @return javax.swing.JMenuItem jMenuFileNew
720 private JMenuItem
getJMenuItemFileNew() {
721 if (jMenuItemFileNew
== null) {
722 jMenuItemFileNew
= new JMenuItem();
723 jMenuItemFileNew
.setText("New...");
724 jMenuItemFileNew
.setMnemonic('N');
725 jMenuItemFileNew
.addActionListener(this);
727 return jMenuItemFileNew
;
731 This method initializes jMenuItemFileSave
733 @return javax.swing.JMenuItem jMenuItemModuleSave
736 private JMenuItem
getJMenuItemFileSave() {
737 if (jMenuItemFileSave
== null) {
738 jMenuItemFileSave
= new JMenuItem();
739 jMenuItemFileSave
.setText("Save");
740 jMenuItemFileSave
.setMnemonic('S');
741 jMenuItemFileSave
.addActionListener(this);
742 jMenuItemFileSave
.setEnabled(true);
744 return jMenuItemFileSave
;
748 This method initializes jMenuItemModuleClose
750 @return javax.swing.JMenuItem jMenuItemModuleClose
753 private JMenuItem
getJMenuItemFileClose() {
754 if (jMenuItemFileClose
== null) {
755 jMenuItemFileClose
= new JMenuItem();
756 jMenuItemFileClose
.setText("Close");
757 jMenuItemFileClose
.setMnemonic('C');
758 jMenuItemFileClose
.setEnabled(true);
759 jMenuItemFileClose
.addActionListener(this);
761 return jMenuItemFileClose
;
765 This method initializes jMenuTools
768 @return javax.swing.JMenu jMenuTools
771 private JMenu
getJMenuTools() {
772 if (jMenuTools
== null) {
773 jMenuTools
= new JMenu();
774 jMenuTools
.setText("Tools");
775 jMenuTools
.setMnemonic('T');
776 jMenuTools
.add(getJMenuItemToolsToolChainConfiguration());
777 jMenuTools
.addSeparator();
778 jMenuTools
.add(getJMenuItemToolsClone());
779 //jMenuTools.addSeparator();
780 jMenuTools
.add(getJMenuItemToolsCodeScan());
781 jMenuTools
.addMenuListener(this);
787 This method initializes jMenuWindow
790 @return javax.swing.JMenu jMenuWindow
793 private JMenu
getJMenuWindow() {
794 if (jMenuWindow
== null) {
795 jMenuWindow
= new JMenu();
796 jMenuWindow
.setText("Window");
797 jMenuWindow
.setMnemonic('W');
798 jMenuWindow
.add(getJMenuItemWindowDisplaySide());
799 jMenuWindow
.add(getJMenuItemWindowDisplayTopBottom());
800 jMenuWindow
.addSeparator();
801 jMenuWindow
.add(getJMenuItemWindowTabView());
802 jMenuWindow
.addSeparator();
803 jMenuWindow
.add(getJMenuItemWindowSource());
804 jMenuWindow
.add(getJMenuItemWindowXML());
805 jMenuWindow
.addSeparator();
806 jMenuWindow
.add(getJMenuItemWindowPreferences());
807 jMenuWindow
.setVisible(false);
813 This method initializes jPanelOperation
815 @return javax.swing.JPanel jPanelOperation
818 private JPanel
getJPanelOperation() {
819 if (jPanelOperation
== null) {
820 jPanelOperation
= new JPanel();
821 jPanelOperation
.setLayout(null);
822 jPanelOperation
.setBounds(new java
.awt
.Rectangle(295, 520, 500, 25));
823 jPanelOperation
.add(getJButtonOk(), null);
824 jPanelOperation
.add(getJButtonCancel(), null);
825 jPanelOperation
.setVisible(false);
827 return jPanelOperation
;
831 This method initializes jButtonOk
833 @return javax.swing.JButton jButtonOk
836 private JButton
getJButtonOk() {
837 if (jButtonOk
== null) {
838 jButtonOk
= new JButton();
839 jButtonOk
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
840 jButtonOk
.setText("Ok");
841 jButtonOk
.setEnabled(false);
842 jButtonOk
.addActionListener(this);
848 This method initializes jButtonCancel
850 @return javax.swing.JButton jButtonCancel
853 private JButton
getJButtonCancel() {
854 if (jButtonCancel
== null) {
855 jButtonCancel
= new JButton();
856 jButtonCancel
.setBounds(new java
.awt
.Rectangle(395, 2, 90, 20));
857 jButtonCancel
.setText("Cancel");
858 jButtonCancel
.setEnabled(false);
859 jButtonCancel
.addActionListener(this);
860 jButtonCancel
.setVisible(false);
862 return jButtonCancel
;
866 This method initializes jMenuItemFileOpen
868 @return javax.swing.JMenuItem jMenuItemFileOpen
870 private JMenuItem
getJMenuItemFileOpen() {
871 if (jMenuItemFileOpen
== null) {
872 jMenuItemFileOpen
= new JMenuItem();
873 jMenuItemFileOpen
.setText("Open...");
874 jMenuItemFileOpen
.setMnemonic('O');
875 jMenuItemFileOpen
.addActionListener(this);
877 return jMenuItemFileOpen
;
881 This method initializes jMenuItemFileCloseAll
883 @return javax.swing.JMenuItem jMenuItemFileOpen
885 private JMenuItem
getJMenuItemFileCloseAll() {
886 if (jMenuItemFileCloseAll
== null) {
887 jMenuItemFileCloseAll
= new JMenuItem();
888 jMenuItemFileCloseAll
.setText("Close All");
889 jMenuItemFileCloseAll
.setEnabled(true);
890 jMenuItemFileCloseAll
.addActionListener(this);
892 return jMenuItemFileCloseAll
;
896 This method initializes jMenuItemFileSaveAll
898 @return javax.swing.JMenuItem jMenuItemFileSaveAll
900 private JMenuItem
getJMenuItemFileSaveAll() {
901 if (jMenuItemFileSaveAll
== null) {
902 jMenuItemFileSaveAll
= new JMenuItem();
903 jMenuItemFileSaveAll
.setText("Save All");
904 jMenuItemFileSaveAll
.setMnemonic('v');
905 jMenuItemFileSaveAll
.setEnabled(true);
906 jMenuItemFileSaveAll
.addActionListener(this);
908 return jMenuItemFileSaveAll
;
912 This method initializes jMenuItemFilePageSetup
914 @return javax.swing.JMenuItem
916 private JMenuItem
getJMenuItemFilePageSetup() {
917 if (jMenuItemFilePageSetup
== null) {
918 jMenuItemFilePageSetup
= new JMenuItem();
919 jMenuItemFilePageSetup
.setText("Page Setup");
920 jMenuItemFilePageSetup
.setMnemonic('u');
921 jMenuItemFilePageSetup
.setEnabled(false);
922 jMenuItemFilePageSetup
.addActionListener(this);
923 jMenuItemFilePageSetup
.setVisible(false);
925 return jMenuItemFilePageSetup
;
929 This method initializes jMenuItemFilePrint
931 @return javax.swing.JMenuItem
933 private JMenuItem
getJMenuItemFilePrint() {
934 if (jMenuItemFilePrint
== null) {
935 jMenuItemFilePrint
= new JMenuItem();
936 jMenuItemFilePrint
.setText("Print");
937 jMenuItemFilePrint
.setMnemonic('P');
938 jMenuItemFilePrint
.setEnabled(false);
939 jMenuItemFilePrint
.addActionListener(this);
940 jMenuItemFilePrint
.setVisible(false);
942 return jMenuItemFilePrint
;
946 This method initializes jMenuItemFileImport
948 @return javax.swing.JMenuItem
950 private JMenuItem
getJMenuItemFileImport() {
951 if (jMenuItemFileImport
== null) {
952 jMenuItemFileImport
= new JMenuItem();
953 jMenuItemFileImport
.setText("Import");
954 jMenuItemFileImport
.setMnemonic('I');
955 jMenuItemFileImport
.setEnabled(false);
956 jMenuItemFileImport
.addActionListener(this);
957 jMenuItemFileImport
.setVisible(false);
959 return jMenuItemFileImport
;
963 * This method initializes jMenuItemFileProperties
965 * @return javax.swing.JMenuItem
967 private JMenuItem
getJMenuItemFileProperties() {
968 if (jMenuItemFileProperties
== null) {
969 jMenuItemFileProperties
= new JMenuItem();
970 jMenuItemFileProperties
.setText("Properties");
971 jMenuItemFileProperties
.setMnemonic('t');
972 jMenuItemFileProperties
.setEnabled(false);
973 jMenuItemFileProperties
.addActionListener(this);
974 jMenuItemFileProperties
.setVisible(false);
976 return jMenuItemFileProperties
;
980 * This method initializes jMenuFileRecentFiles
982 * @return javax.swing.JMenu
984 private JMenu
getJMenuFileRecentFiles() {
985 if (jMenuFileRecentFiles
== null) {
986 jMenuFileRecentFiles
= new JMenu();
987 jMenuFileRecentFiles
.setText("Recent Files");
988 jMenuFileRecentFiles
.setMnemonic('F');
989 jMenuFileRecentFiles
.setEnabled(false);
990 jMenuFileRecentFiles
.addActionListener(this);
991 jMenuFileRecentFiles
.setVisible(false);
993 return jMenuFileRecentFiles
;
997 This method initializes jMenuItemEditUndo
999 @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
1017 private JMenuItem
getJMenuItemEditRedo() {
1018 if (jMenuItemEditRedo
== null) {
1019 jMenuItemEditRedo
= new JMenuItem();
1020 jMenuItemEditRedo
.setText("Redo");
1021 jMenuItemEditRedo
.setMnemonic('R');
1022 jMenuItemEditRedo
.setEnabled(false);
1023 jMenuItemEditRedo
.addActionListener(this);
1025 return jMenuItemEditRedo
;
1029 This method initializes jMenuItemEditCut
1031 @return javax.swing.JMenuItem
1033 private JMenuItem
getJMenuItemEditCut() {
1034 if (jMenuItemEditCut
== null) {
1035 jMenuItemEditCut
= new JMenuItem();
1036 jMenuItemEditCut
.setText("Cut");
1037 jMenuItemEditCut
.setMnemonic('t');
1038 jMenuItemEditCut
.setEnabled(false);
1039 jMenuItemEditCut
.addActionListener(this);
1041 return jMenuItemEditCut
;
1045 This method initializes jMenuItemEditCopy
1047 @return javax.swing.JMenuItem
1049 private JMenuItem
getJMenuItemEditCopy() {
1050 if (jMenuItemEditCopy
== null) {
1051 jMenuItemEditCopy
= new JMenuItem();
1052 jMenuItemEditCopy
.setText("Copy");
1053 jMenuItemEditCopy
.setMnemonic('C');
1054 jMenuItemEditCopy
.setEnabled(false);
1055 jMenuItemEditCopy
.addActionListener(this);
1057 return jMenuItemEditCopy
;
1061 This method initializes jMenuItemEditPaste
1063 return javax.swing.JMenuItem
1065 private JMenuItem
getJMenuItemEditPaste() {
1066 if (jMenuItemEditPaste
== null) {
1067 jMenuItemEditPaste
= new JMenuItem();
1068 jMenuItemEditPaste
.setText("Paste");
1069 jMenuItemEditPaste
.setMnemonic('P');
1070 jMenuItemEditPaste
.setEnabled(false);
1071 jMenuItemEditPaste
.addActionListener(this);
1073 return jMenuItemEditPaste
;
1077 This method initializes jMenuItem
1079 @return javax.swing.JMenuItem
1081 private JMenuItem
getJMenuItemEditSelectAll() {
1082 if (jMenuItemEditSelectAll
== null) {
1083 jMenuItemEditSelectAll
= new JMenuItem();
1084 jMenuItemEditSelectAll
.setText("Select All");
1085 jMenuItemEditSelectAll
.setMnemonic('A');
1086 jMenuItemEditSelectAll
.setEnabled(false);
1087 jMenuItemEditSelectAll
.addActionListener(this);
1089 return jMenuItemEditSelectAll
;
1093 This method initializes jMenuItemEditFind
1095 @return javax.swing.JMenuItem
1097 private JMenuItem
getJMenuItemEditFind() {
1098 if (jMenuItemEditFind
== null) {
1099 jMenuItemEditFind
= new JMenuItem();
1100 jMenuItemEditFind
.setText("Find");
1101 jMenuItemEditFind
.setMnemonic('F');
1102 jMenuItemEditFind
.setEnabled(false);
1103 jMenuItemEditFind
.addActionListener(this);
1105 return jMenuItemEditFind
;
1109 This method initializes jMenuItemEditFindNext
1111 @return javax.swing.JMenuItem
1114 private JMenuItem
getJMenuItemEditFindNext() {
1115 if (jMenuItemEditFindNext
== null) {
1116 jMenuItemEditFindNext
= new JMenuItem();
1117 jMenuItemEditFindNext
.setText("Find Next");
1118 jMenuItemEditFindNext
.setMnemonic('n');
1119 jMenuItemEditFindNext
.setEnabled(false);
1120 jMenuItemEditFindNext
.addActionListener(this);
1122 return jMenuItemEditFindNext
;
1126 This method initializes jMenuView
1128 @return javax.swing.JMenu
1131 private JMenu
getJMenuView() {
1132 if (jMenuView
== null) {
1133 jMenuView
= new JMenu();
1134 jMenuView
.setText("View");
1135 jMenuView
.setMnemonic('V');
1136 jMenuView
.add(getJMenuViewToolbars());
1137 jMenuView
.add(getJMenuItemViewAdvanced());
1138 jMenuView
.add(getJMenuItemViewStandard());
1139 jMenuView
.add(getJMenuItemViewXML());
1140 jMenuView
.setVisible(false);
1146 This method initializes jMenuViewToolbars
1148 @return javax.swing.JMenu
1151 private JMenu
getJMenuViewToolbars() {
1152 if (jMenuViewToolbars
== null) {
1153 jMenuViewToolbars
= new JMenu();
1154 jMenuViewToolbars
.setText("Toolbars");
1155 jMenuViewToolbars
.setMnemonic('T');
1156 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsFile());
1157 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsEdit());
1158 jMenuViewToolbars
.add(getJCheckBoxMenuItemViewToolbarsWindow());
1160 return jMenuViewToolbars
;
1164 This method initializes jCheckBoxMenuItemViewToolbarsFile
1166 @return javax.swing.JCheckBoxMenuItem
1169 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsFile() {
1170 if (jCheckBoxMenuItemViewToolbarsFile
== null) {
1171 jCheckBoxMenuItemViewToolbarsFile
= new JCheckBoxMenuItem();
1172 jCheckBoxMenuItemViewToolbarsFile
.setText("File");
1173 jCheckBoxMenuItemViewToolbarsFile
.setEnabled(false);
1174 jCheckBoxMenuItemViewToolbarsFile
.addActionListener(this);
1176 return jCheckBoxMenuItemViewToolbarsFile
;
1180 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1182 @return javax.swing.JCheckBoxMenuItem
1185 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsEdit() {
1186 if (jCheckBoxMenuItemViewToolbarsEdit
== null) {
1187 jCheckBoxMenuItemViewToolbarsEdit
= new JCheckBoxMenuItem();
1188 jCheckBoxMenuItemViewToolbarsEdit
.setText("Edit");
1189 jCheckBoxMenuItemViewToolbarsEdit
.setEnabled(false);
1190 jCheckBoxMenuItemViewToolbarsEdit
.addActionListener(this);
1192 return jCheckBoxMenuItemViewToolbarsEdit
;
1196 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1198 @return javax.swing.JCheckBoxMenuItem
1201 private JCheckBoxMenuItem
getJCheckBoxMenuItemViewToolbarsWindow() {
1202 if (jCheckBoxMenuItemViewToolbarsWindow
== null) {
1203 jCheckBoxMenuItemViewToolbarsWindow
= new JCheckBoxMenuItem();
1204 jCheckBoxMenuItemViewToolbarsWindow
.setText("Window");
1205 jCheckBoxMenuItemViewToolbarsWindow
.setEnabled(false);
1206 jCheckBoxMenuItemViewToolbarsWindow
.addActionListener(this);
1208 return jCheckBoxMenuItemViewToolbarsWindow
;
1212 This method initializes jMenuItemStandard
1214 @return javax.swing.JMenuItem
1217 private JMenuItem
getJMenuItemViewStandard() {
1218 if (jMenuItemViewStandard
== null) {
1219 jMenuItemViewStandard
= new JMenuItem();
1220 jMenuItemViewStandard
.setText("Standard");
1221 jMenuItemViewStandard
.setMnemonic('S');
1222 jMenuItemViewStandard
.setEnabled(false);
1223 jMenuItemViewStandard
.addActionListener(this);
1225 return jMenuItemViewStandard
;
1229 This method initializes jMenuItemAdvanced
1231 @return javax.swing.JMenuItem
1234 private JMenuItem
getJMenuItemViewAdvanced() {
1235 if (jMenuItemViewAdvanced
== null) {
1236 jMenuItemViewAdvanced
= new JMenuItem();
1237 jMenuItemViewAdvanced
.setText("Advanced");
1238 jMenuItemViewAdvanced
.setMnemonic('A');
1239 jMenuItemViewAdvanced
.setEnabled(false);
1240 jMenuItemViewAdvanced
.addActionListener(this);
1242 return jMenuItemViewAdvanced
;
1246 This method initializes jMenuProject
1248 @return javax.swing.JMenu
1251 private JMenu
getJMenuProject() {
1252 if (jMenuProject
== null) {
1253 jMenuProject
= new JMenu();
1254 jMenuProject
.setText("Project");
1255 jMenuProject
.setMnemonic('P');
1256 jMenuProject
.add(getJMenuItemProjectAdmin());
1257 //jMenuProject.addSeparator();
1258 jMenuProject
.add(getJMenuItemProjectChangeWorkspace());
1259 jMenuProject
.addSeparator();
1260 jMenuProject
.add(getJMenuItemProjectInstallPackage());
1261 jMenuProject
.add(getJMenuItemProjectUpdatePackage());
1262 jMenuProject
.add(getJMenuItemProjectRemovePackage());
1263 //jMenuProject.addSeparator();
1264 jMenuProject
.add(getJMenuProjectBuildTargets());
1266 return jMenuProject
;
1270 This method initializes jMenuItemProjectAdmin
1272 @return javax.swing.JMenuItem
1275 private JMenuItem
getJMenuItemProjectAdmin() {
1276 if (jMenuItemProjectAdmin
== null) {
1277 jMenuItemProjectAdmin
= new JMenuItem();
1278 jMenuItemProjectAdmin
.setText("Admin...");
1279 jMenuItemProjectAdmin
.setMnemonic('A');
1280 jMenuItemProjectAdmin
.setEnabled(false);
1281 jMenuItemProjectAdmin
.addActionListener(this);
1282 jMenuItemProjectAdmin
.setVisible(false);
1284 return jMenuItemProjectAdmin
;
1288 This method initializes jMenuItemProjectChangeWorkspace
1290 @return javax.swing.JMenuItem
1293 private JMenuItem
getJMenuItemProjectChangeWorkspace() {
1294 if (jMenuItemProjectChangeWorkspace
== null) {
1295 jMenuItemProjectChangeWorkspace
= new JMenuItem();
1296 jMenuItemProjectChangeWorkspace
.setText("Change WORKSPACE...");
1297 jMenuItemProjectChangeWorkspace
.setMnemonic('W');
1298 jMenuItemProjectChangeWorkspace
.setEnabled(true);
1299 jMenuItemProjectChangeWorkspace
.addActionListener(this);
1301 return jMenuItemProjectChangeWorkspace
;
1305 This method initializes jMenuProjectBuildTargets
1307 @return javax.swing.JMenu
1310 private JMenu
getJMenuProjectBuildTargets() {
1311 if (jMenuProjectBuildTargets
== null) {
1312 jMenuProjectBuildTargets
= new JMenu();
1313 jMenuProjectBuildTargets
.setText("Build Targets");
1314 jMenuProjectBuildTargets
.setMnemonic('T');
1315 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());
1316 jMenuProjectBuildTargets
.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());
1317 jMenuProjectBuildTargets
.setVisible(false);
1319 return jMenuProjectBuildTargets
;
1323 This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug
1325 @return javax.swing.JCheckBoxMenuItem
1328 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsDebug() {
1329 if (jCheckBoxMenuItemProjectBuildTargetsDebug
== null) {
1330 jCheckBoxMenuItemProjectBuildTargetsDebug
= new JCheckBoxMenuItem();
1331 jCheckBoxMenuItemProjectBuildTargetsDebug
.setText("Debug");
1332 jCheckBoxMenuItemProjectBuildTargetsDebug
.setEnabled(false);
1334 return jCheckBoxMenuItemProjectBuildTargetsDebug
;
1338 This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease
1340 @return javax.swing.JCheckBoxMenuItem
1343 private JCheckBoxMenuItem
getJCheckBoxMenuItemProjectBuildTargetsRelease() {
1344 if (jCheckBoxMenuItemProjectBuildTargetsRelease
== null) {
1345 jCheckBoxMenuItemProjectBuildTargetsRelease
= new JCheckBoxMenuItem();
1346 jCheckBoxMenuItemProjectBuildTargetsRelease
.setText("Release");
1347 jCheckBoxMenuItemProjectBuildTargetsRelease
.setEnabled(false);
1349 return jCheckBoxMenuItemProjectBuildTargetsRelease
;
1353 This method initializes jMenuItemToolsToolChainConfiguration
1355 @return javax.swing.JMenuItem
1358 private JMenuItem
getJMenuItemToolsToolChainConfiguration() {
1359 if (jMenuItemToolsToolChainConfiguration
== null) {
1360 jMenuItemToolsToolChainConfiguration
= new JMenuItem();
1361 jMenuItemToolsToolChainConfiguration
.setText("Tool Chain Configuration...");
1362 jMenuItemToolsToolChainConfiguration
.setMnemonic('C');
1363 jMenuItemToolsToolChainConfiguration
.addActionListener(this);
1365 return jMenuItemToolsToolChainConfiguration
;
1369 This method initializes jMenuItemToolsClone
1371 @return javax.swing.JMenuItem
1374 private JMenuItem
getJMenuItemToolsClone() {
1375 if (jMenuItemToolsClone
== null) {
1376 jMenuItemToolsClone
= new JMenuItem();
1377 jMenuItemToolsClone
.setText("Clone...");
1378 jMenuItemToolsClone
.setMnemonic('l');
1379 jMenuItemToolsClone
.setEnabled(true);
1380 jMenuItemToolsClone
.addActionListener(this);
1382 return jMenuItemToolsClone
;
1386 This method initializes jMenuItemToolsCodeScan
1388 @return javax.swing.JMenuItem
1391 private JMenuItem
getJMenuItemToolsCodeScan() {
1392 if (jMenuItemToolsCodeScan
== null) {
1393 jMenuItemToolsCodeScan
= new JMenuItem();
1394 jMenuItemToolsCodeScan
.setText("Code Scan...");
1395 jMenuItemToolsCodeScan
.setMnemonic('S');
1396 jMenuItemToolsCodeScan
.setEnabled(false);
1397 jMenuItemToolsCodeScan
.addActionListener(this);
1398 jMenuItemToolsCodeScan
.setVisible(false);
1400 return jMenuItemToolsCodeScan
;
1404 This method initializes jMenuItemWindowSplitVertical
1406 @return javax.swing.JMenuItem
1409 private JMenuItem
getJMenuItemWindowDisplaySide() {
1410 if (jMenuItemWindowDisplaySide
== null) {
1411 jMenuItemWindowDisplaySide
= new JMenuItem();
1412 jMenuItemWindowDisplaySide
.setText("Display Side by Side");
1413 jMenuItemWindowDisplaySide
.setMnemonic('S');
1414 jMenuItemWindowDisplaySide
.setEnabled(false);
1415 jMenuItemWindowDisplaySide
.addActionListener(this);
1417 return jMenuItemWindowDisplaySide
;
1421 This method initializes jMenuItemWindowSplitHorizontal
1423 @return javax.swing.JMenuItem
1426 private JMenuItem
getJMenuItemWindowDisplayTopBottom() {
1427 if (jMenuItemWindowDisplayTopBottom
== null) {
1428 jMenuItemWindowDisplayTopBottom
= new JMenuItem();
1429 jMenuItemWindowDisplayTopBottom
.setText("Display Top and Bottom");
1430 jMenuItemWindowDisplayTopBottom
.setMnemonic('B');
1431 jMenuItemWindowDisplayTopBottom
.setEnabled(false);
1432 jMenuItemWindowDisplayTopBottom
.addActionListener(this);
1434 return jMenuItemWindowDisplayTopBottom
;
1438 This method initializes jMenuItemViewXML
1440 @return javax.swing.JMenuItem
1443 private JMenuItem
getJMenuItemViewXML() {
1444 if (jMenuItemViewXML
== null) {
1445 jMenuItemViewXML
= new JMenuItem();
1446 jMenuItemViewXML
.setText("XML");
1447 jMenuItemViewXML
.setMnemonic('X');
1448 jMenuItemViewXML
.setEnabled(false);
1449 jMenuItemViewXML
.addActionListener(this);
1451 return jMenuItemViewXML
;
1455 This method initializes jMenuItemWindowTabView
1457 @return javax.swing.JMenuItem
1460 private JMenuItem
getJMenuItemWindowTabView() {
1461 if (jMenuItemWindowTabView
== null) {
1462 jMenuItemWindowTabView
= new JMenuItem();
1463 jMenuItemWindowTabView
.setText("Tab View");
1464 jMenuItemWindowTabView
.setMnemonic('T');
1465 jMenuItemWindowTabView
.setEnabled(false);
1466 jMenuItemWindowTabView
.addActionListener(this);
1468 return jMenuItemWindowTabView
;
1472 This method initializes jMenuItemWindowSource
1474 @return javax.swing.JMenuItem
1477 private JMenuItem
getJMenuItemWindowSource() {
1478 if (jMenuItemWindowSource
== null) {
1479 jMenuItemWindowSource
= new JMenuItem();
1480 jMenuItemWindowSource
.setText("Source");
1481 jMenuItemWindowSource
.setMnemonic('S');
1482 jMenuItemWindowSource
.setEnabled(false);
1483 jMenuItemWindowSource
.addActionListener(this);
1485 return jMenuItemWindowSource
;
1489 This method initializes jMenuItemWindowXML
1491 @return javax.swing.JMenuItem
1494 private JMenuItem
getJMenuItemWindowXML() {
1495 if (jMenuItemWindowXML
== null) {
1496 jMenuItemWindowXML
= new JMenuItem();
1497 jMenuItemWindowXML
.setText("XML");
1498 jMenuItemWindowXML
.setMnemonic('X');
1499 jMenuItemWindowXML
.setEnabled(false);
1500 jMenuItemWindowXML
.addActionListener(this);
1502 return jMenuItemWindowXML
;
1506 This method initializes jMenuItemWindowPreferences
1508 @return javax.swing.JMenuItem
1511 private JMenuItem
getJMenuItemWindowPreferences() {
1512 if (jMenuItemWindowPreferences
== null) {
1513 jMenuItemWindowPreferences
= new JMenuItem();
1514 jMenuItemWindowPreferences
.setText("Preferences");
1515 jMenuItemWindowPreferences
.setMnemonic('P');
1516 jMenuItemWindowPreferences
.setEnabled(false);
1517 jMenuItemWindowPreferences
.addActionListener(this);
1519 return jMenuItemWindowPreferences
;
1523 This method initializes jMenuItemHelpContents
1525 @return javax.swing.JMenuItem
1528 private JMenuItem
getJMenuItemHelpContents() {
1529 if (jMenuItemHelpContents
== null) {
1530 jMenuItemHelpContents
= new JMenuItem();
1531 jMenuItemHelpContents
.setText("Contents");
1532 jMenuItemHelpContents
.setMnemonic('C');
1533 jMenuItemHelpContents
.setEnabled(false);
1534 jMenuItemHelpContents
.addActionListener(this);
1535 jMenuItemHelpContents
.setVisible(false);
1537 return jMenuItemHelpContents
;
1541 This method initializes jMenuItemHelpIndex
1543 @return javax.swing.JMenuItem
1546 private JMenuItem
getJMenuItemHelpIndex() {
1547 if (jMenuItemHelpIndex
== null) {
1548 jMenuItemHelpIndex
= new JMenuItem();
1549 jMenuItemHelpIndex
.setText("Index");
1550 jMenuItemHelpIndex
.setMnemonic('I');
1551 jMenuItemHelpIndex
.setEnabled(false);
1552 jMenuItemHelpIndex
.addActionListener(this);
1553 jMenuItemHelpIndex
.setVisible(false);
1555 return jMenuItemHelpIndex
;
1559 This method initializes jMenuItemHelpSearch
1561 @return javax.swing.JMenuItem
1564 private JMenuItem
getJMenuItemHelpSearch() {
1565 if (jMenuItemHelpSearch
== null) {
1566 jMenuItemHelpSearch
= new JMenuItem();
1567 jMenuItemHelpSearch
.setText("Search");
1568 jMenuItemHelpSearch
.setMnemonic('S');
1569 jMenuItemHelpSearch
.setEnabled(false);
1570 jMenuItemHelpSearch
.addActionListener(this);
1571 jMenuItemHelpSearch
.setVisible(false);
1573 return jMenuItemHelpSearch
;
1577 * This method initializes jToolBar
1579 * @return javax.swing.JToolBar
1581 // private JToolBar getJToolBarFile() {
1582 // if (jToolBarFile == null) {
1583 // jToolBarFile = new JToolBar();
1584 // jToolBarFile.setFloatable(false);
1586 // return jToolBarFile;
1589 * This method initializes jToolBarEdit
1591 * @return javax.swing.JToolBar
1593 // private JToolBar getJToolBarEdit() {
1594 // if (jToolBarEdit == null) {
1595 // jToolBarEdit = new JToolBar();
1596 // jToolBarEdit.setFloatable(false);
1598 // return jToolBarEdit;
1601 * This method initializes jMenuItemToolsInstallPackage
1603 * @return javax.swing.JMenuItem
1605 private JMenuItem
getJMenuItemProjectInstallPackage() {
1606 if (jMenuItemProjectInstallPackage
== null) {
1607 jMenuItemProjectInstallPackage
= new JMenuItem();
1608 jMenuItemProjectInstallPackage
.setText("Install Distribution Package");
1609 jMenuItemProjectInstallPackage
.setMnemonic('I');
1610 jMenuItemProjectInstallPackage
.setEnabled(false);
1611 jMenuItemProjectInstallPackage
.addActionListener(this);
1613 return jMenuItemProjectInstallPackage
;
1617 * This method initializes jMenuItemToolsUpdatePackage
1619 * @return javax.swing.JMenuItem
1621 private JMenuItem
getJMenuItemProjectUpdatePackage() {
1622 if (jMenuItemProjectUpdatePackage
== null) {
1623 jMenuItemProjectUpdatePackage
= new JMenuItem();
1624 jMenuItemProjectUpdatePackage
.setText("Update Disstribution Package");
1625 jMenuItemProjectUpdatePackage
.setMnemonic('U');
1626 jMenuItemProjectUpdatePackage
.setEnabled(false);
1627 jMenuItemProjectUpdatePackage
.addActionListener(this);
1629 return jMenuItemProjectUpdatePackage
;
1633 * This method initializes jMenuItemRemovePackage
1635 * @return javax.swing.JMenuItem
1637 private JMenuItem
getJMenuItemProjectRemovePackage() {
1638 if (jMenuItemProjectRemovePackage
== null) {
1639 jMenuItemProjectRemovePackage
= new JMenuItem();
1640 jMenuItemProjectRemovePackage
.setText("Remove Distribution Package");
1641 jMenuItemProjectRemovePackage
.setMnemonic('R');
1642 jMenuItemProjectRemovePackage
.setEnabled(false);
1643 jMenuItemProjectRemovePackage
.addActionListener(this);
1645 return jMenuItemProjectRemovePackage
;
1649 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1651 * Main class, start the GUI
1654 public static void main(String
[] args
) {
1655 FrameworkWizardUI module
= new FrameworkWizardUI();
1656 module
.setVisible(true);
1660 This is the default constructor
1663 public FrameworkWizardUI() {
1669 This method initializes this
1673 private void init() {
1675 // Set current workspace and check
1676 // Check if exists WORKSPACE
1679 Workspace
.setCurrentWorkspace(System
.getenv("WORKSPACE"));
1680 if (!Workspace
.checkCurrentWorkspace()) {
1681 JOptionPane
.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1682 JOptionPane
.DEFAULT_OPTION
, JOptionPane
.WARNING_MESSAGE
);
1687 this.setSize(DataType
.MAIN_FRAME_PREFERRED_SIZE_WIDTH
, DataType
.MAIN_FRAME_PREFERRED_SIZE_HEIGHT
);
1688 this.setResizable(true);
1689 this.setJMenuBar(getjJMenuBar());
1690 this.addComponentListener(this);
1691 this.getCompontentsFromFrameworkDatabase();
1692 this.setContentPane(getJContentPane());
1693 this.setTitle(projectName
+ " " + projectVersion
+ " " + "- [" + Workspace
.getCurrentWorkspace() + "]");
1694 this.setExitType(1);
1699 this.setExtendedState(JFrame
.MAXIMIZED_BOTH
);
1703 This method initializes jContentPane
1705 @return javax.swing.JPanel jContentPane
1708 private JPanel
getJContentPane() {
1709 if (jContentPane
== null) {
1710 jContentPane
= new JPanel();
1711 jContentPane
.setLayout(null);
1712 jContentPane
.add(getJPanelOperation(), null);
1713 jContentPane
.add(getJSplitPane(), null);
1715 return jContentPane
;
1719 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1721 * Override actionPerformed to listen all actions
1724 public void actionPerformed(ActionEvent arg0
) {
1726 // Operations of Menu
1728 if (arg0
.getSource() == jMenuItemFileNew
) {
1732 if (arg0
.getSource() == jMenuItemFileOpen
) {
1736 if (arg0
.getSource() == jMenuItemFileClose
) {
1740 if (arg0
.getSource() == jMenuItemFileCloseAll
) {
1744 if (arg0
.getSource() == jMenuItemFileSave
) {
1748 if (arg0
.getSource() == jMenuItemFileSaveAs
) {
1752 if (arg0
.getSource() == jMenuItemFileSaveAll
) {
1756 if (arg0
.getSource() == jMenuItemFileExit
) {
1760 if (arg0
.getSource() == jMenuItemProjectChangeWorkspace
) {
1764 if (arg0
.getSource() == jMenuItemToolsClone
) {
1768 if (arg0
.getSource() == jMenuItemToolsToolChainConfiguration
) {
1769 setupToolChainConfiguration();
1772 if (arg0
.getSource() == jMenuItemHelpAbout
) {
1773 About a
= new About(this, true);
1774 int result
= a
.showDialog();
1775 if (result
== DataType
.RETURN_TYPE_OK
) {
1782 Create an empty tree if no file is open
1785 private void makeEmptyTree() {
1787 dmtnRoot
= new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode
.WORKSPACE
, -1);
1789 // Make Module Description
1790 dmtnModuleDescription
= new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode
.MODULE
, -1);
1792 if (this.vModuleList
.size() > 0) {
1793 for (int index
= 0; index
< this.vModuleList
.size(); index
++) {
1794 dmtnModuleDescription
.add(new IDefaultMutableTreeNode(this.vModuleList
.elementAt(index
).getName(),
1795 IDefaultMutableTreeNode
.MSA_HEADER
, false,
1796 this.vModuleList
.elementAt(index
)));
1800 // Make Package Description
1801 dmtnPackageDescription
= new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode
.PACKAGE
, -1);
1802 if (this.vPackageList
.size() > 0) {
1803 for (int index
= 0; index
< this.vPackageList
.size(); index
++) {
1804 dmtnPackageDescription
.add(new IDefaultMutableTreeNode(this.vPackageList
.elementAt(index
).getName(),
1805 IDefaultMutableTreeNode
.SPD_HEADER
, false,
1806 this.vPackageList
.elementAt(index
)));
1810 // Make Platform Description
1811 dmtnPlatformDescription
= new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode
.PLATFORM
,
1813 if (this.vPlatformList
.size() > 0) {
1814 for (int index
= 0; index
< this.vPlatformList
.size(); index
++) {
1815 dmtnPlatformDescription
.add(new IDefaultMutableTreeNode(this.vPlatformList
.elementAt(index
).getName(),
1816 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
1817 false, this.vPlatformList
.elementAt(index
)));
1821 dmtnRoot
.add(dmtnModuleDescription
);
1822 dmtnRoot
.add(dmtnPackageDescription
);
1823 dmtnRoot
.add(dmtnPlatformDescription
);
1824 iTree
= new ITree(dmtnRoot
);
1825 iTree
.addMouseListener(this);
1826 jScrollPaneTree
.setViewportView(iTree
);
1830 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
1832 * Override windowClosing to popup warning message to confirm quit
1835 public void windowClosing(WindowEvent arg0
) {
1840 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
1842 * Override mouseClicked to check if need display popup menu
1845 public void mouseClicked(MouseEvent arg0
) {
1846 if (arg0
.getButton() == MouseEvent
.BUTTON1
) {
1848 if (arg0
.getButton() == MouseEvent
.BUTTON3
) {
1851 // When double click
1853 if (arg0
.getClickCount() == 2) {
1854 doubleClickModuleTreeNode();
1858 public void mouseEntered(MouseEvent arg0
) {
1859 // TODO Auto-generated method stub
1862 public void mouseExited(MouseEvent arg0
) {
1863 // TODO Auto-generated method stub
1866 public void mousePressed(MouseEvent arg0
) {
1867 // TODO Auto-generated method stub
1870 public void mouseReleased(MouseEvent arg0
) {
1871 // TODO Auto-generated method stub
1875 Remove all Internal Frame of Module Desktop Pane
1878 private void cleanDesktopPaneModule() {
1879 if (jDesktopPaneModule
!= null) {
1880 JInternalFrame
[] iif
= this.jDesktopPaneModule
.getAllFrames();
1881 for (int index
= 0; index
< iif
.length
; index
++) {
1882 iif
[index
].dispose();
1888 Remove all Internal Frame of package Desktop Pane
1891 private void cleanDesktopPanePackage() {
1892 if (jDesktopPanePlatform
!= null) {
1893 JInternalFrame
[] iif
= this.jDesktopPanePackage
.getAllFrames();
1894 for (int index
= 0; index
< iif
.length
; index
++) {
1895 iif
[index
].dispose();
1901 Remove all Internal Frame of platform Desktop Pane
1904 private void cleanDesktopPanePlatform() {
1905 if (jDesktopPanePlatform
!= null) {
1906 JInternalFrame
[] iif
= this.jDesktopPanePlatform
.getAllFrames();
1907 for (int index
= 0; index
< iif
.length
; index
++) {
1908 iif
[index
].dispose();
1914 Remove all Internal Frame of all Desktop Panes
1917 private void cleanDesktopPane() {
1918 cleanDesktopPaneModule();
1919 cleanDesktopPanePackage();
1920 cleanDesktopPanePlatform();
1924 Set file filter as input ext
1930 private int getNewFilePath(String ext
) {
1931 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
1932 fc
.setAcceptAllFileFilterUsed(false);
1933 fc
.addChoosableFileFilter(new IFileFilter(ext
));
1934 return fc
.showSaveDialog(new JPanel());
1940 @param path input file path
1943 private void openModule(String path
) {
1944 ModuleSurfaceAreaDocument
.ModuleSurfaceArea msa
= null;
1946 msa
= OpenFile
.openMsaFile(path
);
1947 } catch (IOException e
) {
1948 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
1950 } catch (XmlException e
) {
1951 Log
.err("Open Module Surface Area " + path
, e
.getMessage());
1953 } catch (Exception e
) {
1954 Log
.err("Open Module Surface Area " + path
, "Invalid file type");
1957 Identification id
= new Identification(msa
.getMsaHeader().getModuleName(), msa
.getMsaHeader().getGuidValue(),
1958 msa
.getMsaHeader().getVersion(), path
);
1960 // Generate module id
1962 PackageIdentification pid
= wt
.getPackageIdByModuleId(id
);
1965 // To judge if the module existed in vModuleList
1966 // If not, add it to vModuleList
1968 boolean isFind
= false;
1969 for (int index
= 0; index
< vModuleList
.size(); index
++) {
1970 if (vModuleList
.elementAt(index
).equals(id
)) {
1976 vModuleList
.addElement(new ModuleIdentification(id
, pid
));
1978 // Add new MsaHeader node to the tree
1980 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vModuleList
.lastElement().getName(),
1981 IDefaultMutableTreeNode
.MSA_HEADER
, true,
1982 vModuleList
.lastElement());
1983 iTree
.addNode(dmtnModuleDescription
, node
);
1987 // The module is not in existing packages
1989 Log
.err("The module hasn't been added to any package of current workspace!");
1993 // Make the node selected
1995 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnModuleDescription
, id
,
1996 IDefaultMutableTreeNode
.MSA_HEADER
)));
1998 // Update opening Module list information
2000 if (!openingModuleList
.existsModule(id
)) {
2002 // Insert sub node of module
2004 insertModuleTreeNode(id
);
2005 iTree
.getSelectNode().setOpening(true);
2008 // Update opening module list
2010 openingModuleList
.insertToOpeningModuleList(id
, msa
);
2011 openingModuleList
.setTreePathById(id
, iTree
.getSelectionPath());
2014 // Show msa header in editor panel
2016 showModuleElement(IDefaultMutableTreeNode
.MSA_HEADER
, openingModuleList
.getOpeningModuleById(id
));
2017 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2023 @param path input file path
2026 private void openPackage(String path
) {
2027 PackageSurfaceAreaDocument
.PackageSurfaceArea spd
= null;
2029 spd
= OpenFile
.openSpdFile(path
);
2030 } catch (IOException e
) {
2031 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2033 } catch (XmlException e
) {
2034 Log
.err("Open Package Surface Area " + path
, e
.getMessage());
2036 } catch (Exception e
) {
2037 Log
.err("Open Package Surface Area " + path
, "Invalid file type");
2040 Identification id
= new Identification(spd
.getSpdHeader().getPackageName(), spd
.getSpdHeader().getGuidValue(),
2041 spd
.getSpdHeader().getVersion(), path
);
2043 // To judge if the package existed in vPackageList
2044 // If not, add it to vPackageList
2046 boolean isFind
= false;
2047 for (int index
= 0; index
< vPackageList
.size(); index
++) {
2048 if (vPackageList
.elementAt(index
).equals(id
)) {
2055 // The module is not in existing packages
2057 Log
.err("The package hasn't been added to current workspace!");
2062 // Make the node selected
2064 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPackageDescription
, id
,
2065 IDefaultMutableTreeNode
.SPD_HEADER
)));
2067 // Update opening package list information
2069 if (!openingPackageList
.existsPackage(id
)) {
2071 // Insert sub node of module
2073 insertPackageTreeNode(id
);
2074 iTree
.getSelectNode().setOpening(true);
2077 // Update opening module list
2079 openingPackageList
.insertToOpeningPackageList(id
, spd
);
2080 openingPackageList
.setTreePathById(id
, iTree
.getSelectionPath());
2083 // Show spd header in editor panel
2085 showPackageElement(IDefaultMutableTreeNode
.SPD_HEADER
, openingPackageList
.getOpeningPackageById(id
));
2086 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2092 @param path input file path
2095 private void openPlatform(String path
) {
2096 PlatformSurfaceAreaDocument
.PlatformSurfaceArea fpd
= null;
2098 fpd
= OpenFile
.openFpdFile(path
);
2099 } catch (IOException e
) {
2100 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2102 } catch (XmlException e
) {
2103 Log
.err("Open Platform Surface Area " + path
, e
.getMessage());
2105 } catch (Exception e
) {
2106 Log
.err("Open Platform Surface Area " + path
, "Invalid file type");
2109 Identification id
= new Identification(fpd
.getPlatformHeader().getPlatformName(), fpd
.getPlatformHeader()
2111 fpd
.getPlatformHeader().getVersion(), path
);
2113 // To judge if the platform existed in vPlatformList
2114 // If not, add it to vPlatformList
2116 boolean isFind
= false;
2117 for (int index
= 0; index
< vPlatformList
.size(); index
++) {
2118 if (vPlatformList
.elementAt(index
).equals(id
)) {
2125 // The module is not in existing packages
2127 Log
.err("The platform hasn't been added to current workspace!");
2132 // Make the node selected
2134 iTree
.setSelectionPath(iTree
.getPathOfNode(iTree
.getNodeById(this.dmtnPlatformDescription
, id
,
2135 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
)));
2137 // Update opening package list information
2139 if (!openingPlatformList
.existsPlatform(id
)) {
2141 // Insert sub node of module
2143 insertPlatformTreeNode(id
);
2144 iTree
.getSelectNode().setOpening(true);
2147 // Update opening module list
2149 openingPlatformList
.insertToOpeningPlatformList(id
, fpd
);
2150 openingPlatformList
.setTreePathById(id
, iTree
.getSelectionPath());
2153 // Show fpd header in editor panel
2155 showPlatformElement(IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
, openingPlatformList
.getOpeningPlatformById(id
));
2156 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2163 private void saveModule(int index
) {
2164 OpeningModuleType omt
= openingModuleList
.getOpeningModuleByIndex(index
);
2166 if (getNewFilePath(DataType
.MODULE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2171 SaveFile
.saveMsaFile(omt
.getId().getPath(), omt
.getXmlMsa());
2172 openingModuleList
.setNew(omt
.getId(), false);
2173 openingModuleList
.setModuleSaved(omt
.getId(), true);
2174 } catch (Exception e
) {
2175 Log
.err("Save Module", e
.getMessage());
2183 private void savePackage(int index
) {
2184 OpeningPackageType opt
= openingPackageList
.getOpeningPackageByIndex(index
);
2186 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2191 SaveFile
.saveSpdFile(opt
.getId().getPath(), opt
.getXmlSpd());
2192 openingPackageList
.setNew(opt
.getId(), false);
2193 openingPackageList
.setPackageSaved(opt
.getId(), true);
2194 } catch (Exception e
) {
2195 Log
.err("Save Package", e
.getMessage());
2203 private void savePlatform(int index
) {
2204 OpeningPlatformType opt
= openingPlatformList
.getOpeningPlatformByIndex(index
);
2206 if (getNewFilePath(DataType
.PACKAGE_SURFACE_AREA_EXT
) != JFileChooser
.APPROVE_OPTION
) {
2211 SaveFile
.saveFpdFile(opt
.getId().getPath(), opt
.getXmlFpd());
2212 openingPlatformList
.setNew(opt
.getId(), false);
2213 openingPlatformList
.setPlatformSaved(opt
.getId(), true);
2214 } catch (Exception e
) {
2215 Log
.err("Save Package", e
.getMessage());
2219 public void componentHidden(ComponentEvent arg0
) {
2220 // TODO Auto-generated method stub
2224 public void componentMoved(ComponentEvent arg0
) {
2225 // TODO Auto-generated method stub
2229 public void componentResized(ComponentEvent arg0
) {
2230 this.jSplitPane
.setSize(this.getWidth() - DataType
.MAIN_FRAME_WIDTH_SPACING
,
2231 this.getHeight() - DataType
.MAIN_FRAME_HEIGHT_SPACING
);
2232 this.jSplitPane
.validate();
2233 resizeDesktopPanel();
2236 public void componentShown(ComponentEvent arg0
) {
2237 // TODO Auto-generated method stub
2242 Resize JDesktopPanel
2245 private void resizeDesktopPanel() {
2246 resizeDesktopPanel(this.jDesktopPaneModule
);
2247 resizeDesktopPanel(this.jDesktopPanePackage
);
2248 resizeDesktopPanel(this.jDesktopPanePlatform
);
2252 Resize JDesktopPanel
2255 private void resizeDesktopPanel(JDesktopPane jdk
) {
2256 JInternalFrame
[] iif
= jdk
.getAllFrames();
2257 for (int index
= 0; index
< iif
.length
; index
++) {
2258 iif
[index
].setSize(jdk
.getWidth(), jdk
.getHeight());
2262 private void getCompontentsFromFrameworkDatabase() {
2263 this.vModuleList
= wt
.getAllModules();
2264 this.vPackageList
= wt
.getAllPackages();
2265 this.vPlatformList
= wt
.getAllPlatforms();
2268 private void insertModuleTreeNode(Identification id
) {
2269 iTree
.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
,
2271 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2272 IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
, true, id
));
2273 iTree
.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode
.MSA_SOURCEFILES
, true, id
));
2274 iTree
.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2275 IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
, true, id
));
2276 iTree
.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode
.MSA_PROTOCOLS
, true, id
));
2277 iTree
.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode
.MSA_EVENTS
, true, id
));
2278 iTree
.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode
.MSA_HOBS
, true, id
));
2279 iTree
.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode
.MSA_PPIS
, true, id
));
2280 iTree
.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode
.MSA_VARIABLES
, true, id
));
2281 iTree
.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode
.MSA_BOOTMODES
, true, id
));
2282 iTree
.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
, true, id
));
2283 iTree
.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode
.MSA_DATAHUBS
, true, id
));
2284 iTree
.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode
.MSA_HIIPACKAGES
, true, id
));
2285 iTree
.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode
.MSA_GUIDS
, true, id
));
2286 iTree
.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode
.MSA_EXTERNS
, true, id
));
2287 iTree
.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode
.MSA_PCDS
, true, id
));
2290 private void insertPackageTreeNode(Identification id
) {
2291 iTree
.addNode(new IDefaultMutableTreeNode("Package Definitions",
2292 IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
, true, id
));
2293 iTree
.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2294 IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
, true, id
));
2295 iTree
.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode
.SPD_MSAFILES
, false, id
));
2296 iTree
.addNode(new IDefaultMutableTreeNode("Package Headers", IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
, true,
2298 iTree
.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
,
2300 iTree
.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2301 IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
, true, id
));
2302 iTree
.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
,
2304 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
,
2308 private void insertPlatformTreeNode(Identification id
) {
2309 iTree
.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
, true, id
));
2310 iTree
.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode
.FPD_FLASH
, true, id
));
2311 iTree
.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
,
2313 iTree
.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",
2314 IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
, true, id
));
2315 iTree
.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
, true, id
));
2319 Operate when double click a tree node
2322 private void doubleClickModuleTreeNode() {
2323 Identification id
= iTree
.getSelectNode().getId();
2324 int intCategory
= iTree
.getSelectCategory();
2327 // If the node is not opened yet
2328 // Insert top level elements first
2330 //if (intCategory == IDefaultMutableTreeNode.MSA_HEADER || intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {
2331 if (intCategory
== IDefaultMutableTreeNode
.MSA_HEADER
) {
2333 if (intCategory
== IDefaultMutableTreeNode
.MSA_HEADER
) {
2334 path
= iTree
.getSelectNode().getId().getPath();
2336 if (intCategory
== IDefaultMutableTreeNode
.SPD_MSAFILES
) {
2337 path
= iTree
.getSelectNode().getId().getPath();
2342 if (intCategory
== IDefaultMutableTreeNode
.SPD_HEADER
) {
2343 path
= iTree
.getSelectNode().getId().getPath();
2347 if (intCategory
== IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2348 path
= iTree
.getSelectNode().getId().getPath();
2353 // Show editor panel
2355 if (intCategory
>= IDefaultMutableTreeNode
.MSA_HEADER
&& intCategory
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2356 showModuleElement(intCategory
, openingModuleList
.getOpeningModuleById(id
));
2357 this.currentOpeningModuleIndex
= openingModuleList
.findIndexOfListById(id
);
2359 if (intCategory
>= IDefaultMutableTreeNode
.SPD_HEADER
2360 && intCategory
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2361 showPackageElement(intCategory
, openingPackageList
.getOpeningPackageById(id
));
2362 this.currentOpeningPackageIndex
= openingPackageList
.findIndexOfListById(id
);
2364 if (intCategory
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2365 showPlatformElement(intCategory
, openingPlatformList
.getOpeningPlatformById(id
));
2366 this.currentOpeningPlatformIndex
= openingPlatformList
.findIndexOfListById(id
);
2371 Show content of editor panel via selected element
2377 private void showPlatformElement(int elementType
, OpeningPlatformType fpd
) {
2378 this.cleanDesktopPanePlatform();
2380 switch (elementType
) {
2381 case IDefaultMutableTreeNode
.FPD_PLATFORMDEFINITIONS
:
2382 FpdPlatformDefs frmFpdPlatformDefs
= new FpdPlatformDefs(fpd
);
2383 getJDesktopPanePlatform().add(frmFpdPlatformDefs
, 1);
2385 case IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
:
2386 FpdHeader frmFpdHeader
= new FpdHeader(fpd
);
2387 getJDesktopPanePlatform().add(frmFpdHeader
, 1);
2389 case IDefaultMutableTreeNode
.FPD_FLASH
:
2390 FpdFlash frmFpdFlash
= new FpdFlash(fpd
);
2391 getJDesktopPanePlatform().add(frmFpdFlash
, 1);
2393 case IDefaultMutableTreeNode
.FPD_FRAMEWORKMODULES
:
2394 FpdFrameworkModules frmFpdFrameworkModules
= new FpdFrameworkModules(fpd
);
2395 getJDesktopPanePlatform().add(frmFpdFrameworkModules
, 1);
2397 case IDefaultMutableTreeNode
.FPD_PCDDYNAMICBUILDDECLARATIONS
:
2398 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions
= new FpdDynamicPcdBuildDefinitions(fpd
);
2399 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions
, 1);
2401 case IDefaultMutableTreeNode
.FPD_BUILDOPTIONS
:
2402 FpdBuildOptions frmFpdBuildOptions
= new FpdBuildOptions(fpd
);
2403 getJDesktopPanePlatform().add(frmFpdBuildOptions
, 1);
2406 this.jTabbedPaneEditor
.setSelectedIndex(2);
2407 resizeDesktopPanel();
2411 Show content of editor panel via selected element
2417 private void showPackageElement(int elementType
, OpeningPackageType spd
) {
2418 this.cleanDesktopPanePackage();
2419 Tools
.dirForNewSpd
= spd
.getId().getPath();
2420 switch (elementType
) {
2421 case IDefaultMutableTreeNode
.SPD_HEADER
:
2422 SpdHeader frmSpdHeader
= new SpdHeader(spd
);
2423 getJDesktopPanePackage().add(frmSpdHeader
, 1);
2425 case IDefaultMutableTreeNode
.SPD_PACKAGEDEFINITIONS
:
2426 SpdPackageDefinitions frmSpdPackageDefinitions
= new SpdPackageDefinitions(spd
);
2427 getJDesktopPanePackage().add(frmSpdPackageDefinitions
, 1);
2429 case IDefaultMutableTreeNode
.SPD_LIBRARYCLASSDECLARATIONS
:
2430 SpdLibClassDecls frmSlcd
= new SpdLibClassDecls(spd
);
2431 getJDesktopPanePackage().add(frmSlcd
, 1);
2433 case IDefaultMutableTreeNode
.SPD_MSAFILES
:
2434 SpdMsaFiles frmSmf
= new SpdMsaFiles(spd
);
2435 getJDesktopPanePackage().add(frmSmf
, 1);
2437 case IDefaultMutableTreeNode
.SPD_PACKAGEHEADERS
:
2438 SpdPackageHeaders frmSph
= new SpdPackageHeaders(spd
);
2439 getJDesktopPanePackage().add(frmSph
, 1);
2441 case IDefaultMutableTreeNode
.SPD_GUIDDECLARATIONS
:
2442 SpdGuidDecls frmSgd
= new SpdGuidDecls(spd
);
2443 getJDesktopPanePackage().add(frmSgd
, 1);
2445 case IDefaultMutableTreeNode
.SPD_PROTOCOLDECLARATIONS
:
2446 SpdProtocolDecls frmSprod
= new SpdProtocolDecls(spd
);
2447 getJDesktopPanePackage().add(frmSprod
, 1);
2449 case IDefaultMutableTreeNode
.SPD_PPIDECLARATIONS
:
2450 SpdPpiDecls frmSppid
= new SpdPpiDecls(spd
);
2451 getJDesktopPanePackage().add(frmSppid
, 1);
2453 case IDefaultMutableTreeNode
.SPD_PCDDECLARATIONS
:
2454 SpdPcdDefs frmSpcdd
= new SpdPcdDefs(spd
);
2455 getJDesktopPanePackage().add(frmSpcdd
, 1);
2458 this.jTabbedPaneEditor
.setSelectedIndex(1);
2459 resizeDesktopPanel();
2463 Show content of editor panel via selected element
2469 private void showModuleElement(int elementType
, OpeningModuleType msa
) {
2470 this.cleanDesktopPaneModule();
2471 switch (elementType
) {
2472 case IDefaultMutableTreeNode
.MSA_HEADER
:
2473 MsaHeader frmMsaHeader
= new MsaHeader(msa
);
2474 getJDesktopPaneModule().add(frmMsaHeader
, 1);
2476 case IDefaultMutableTreeNode
.MSA_MODULEDEFINITIONS
:
2477 ModuleDefinitions frmMd
= new ModuleDefinitions(msa
);
2478 getJDesktopPaneModule().add(frmMd
, 1);
2480 case IDefaultMutableTreeNode
.MSA_LIBRARYCLASSDEFINITIONS
:
2481 ModuleLibraryClassDefinitions frmMlcd
= new ModuleLibraryClassDefinitions(msa
);
2482 getJDesktopPaneModule().add(frmMlcd
, 1);
2484 case IDefaultMutableTreeNode
.MSA_PACKAGEDEPENDENCIES
:
2485 ModulePackageDependencies frmMpd
= new ModulePackageDependencies(msa
);
2486 getJDesktopPaneModule().add(frmMpd
, 1);
2488 case IDefaultMutableTreeNode
.MSA_SOURCEFILES
:
2489 ModuleSourceFiles frmMsf
= new ModuleSourceFiles(msa
);
2490 getJDesktopPaneModule().add(frmMsf
, 1);
2492 case IDefaultMutableTreeNode
.MSA_PROTOCOLS
:
2493 ModuleProtocols frmMp
= new ModuleProtocols(msa
);
2494 getJDesktopPaneModule().add(frmMp
, 1);
2496 case IDefaultMutableTreeNode
.MSA_EVENTS
:
2497 ModuleEvents frmMe
= new ModuleEvents(msa
);
2498 getJDesktopPaneModule().add(frmMe
, 1);
2500 case IDefaultMutableTreeNode
.MSA_HOBS
:
2501 ModuleHobs frmMh
= new ModuleHobs(msa
);
2502 getJDesktopPaneModule().add(frmMh
, 1);
2504 case IDefaultMutableTreeNode
.MSA_PPIS
:
2505 ModulePpis frmMpp
= new ModulePpis(msa
);
2506 getJDesktopPaneModule().add(frmMpp
, 1);
2508 case IDefaultMutableTreeNode
.MSA_VARIABLES
:
2509 ModuleVariables frmMv
= new ModuleVariables(msa
);
2510 getJDesktopPaneModule().add(frmMv
, 1);
2512 case IDefaultMutableTreeNode
.MSA_BOOTMODES
:
2513 ModuleBootModes frmMbm
= new ModuleBootModes(msa
);
2514 getJDesktopPaneModule().add(frmMbm
, 1);
2516 case IDefaultMutableTreeNode
.MSA_SYSTEMTABLES
:
2517 ModuleSystemTables frmMst
= new ModuleSystemTables(msa
);
2518 getJDesktopPaneModule().add(frmMst
, 1);
2520 case IDefaultMutableTreeNode
.MSA_DATAHUBS
:
2521 ModuleDataHubs frmMdh
= new ModuleDataHubs(msa
);
2522 getJDesktopPaneModule().add(frmMdh
, 1);
2524 case IDefaultMutableTreeNode
.MSA_HIIPACKAGES
:
2525 ModuleHiiPackages frmMf
= new ModuleHiiPackages(msa
);
2526 getJDesktopPaneModule().add(frmMf
, 1);
2528 case IDefaultMutableTreeNode
.MSA_GUIDS
:
2529 ModuleGuids frmGuid
= new ModuleGuids(msa
);
2530 getJDesktopPaneModule().add(frmGuid
, 1);
2532 case IDefaultMutableTreeNode
.MSA_EXTERNS
:
2533 ModuleExterns frmMex
= new ModuleExterns(msa
);
2534 getJDesktopPaneModule().add(frmMex
, 1);
2536 case IDefaultMutableTreeNode
.MSA_PCDS
:
2537 ModulePCDs frmPcd
= new ModulePCDs(msa
);
2538 getJDesktopPaneModule().add(frmPcd
, 1);
2541 this.jTabbedPaneEditor
.setSelectedIndex(0);
2542 resizeDesktopPanel();
2546 // Define operations of menu
2552 private void fileNew() {
2555 // Selece new file type
2557 NewFileChooser nfc
= new NewFileChooser(this, true);
2558 result
= nfc
.showDialog();
2560 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2563 } else if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2567 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2568 result
= smb
.showDialog();
2570 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2574 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2575 PackageSurfaceAreaDocument
.PackageSurfaceArea psa
= null;
2576 if (this.openingPackageList
.existsPackage(smb
.getMid().getPackageId())) {
2577 psa
= openingPackageList
.getPackageSurfaceAreaFromId(smb
.getMid().getPackageId());
2580 wt
.addModuleToPackage(smb
.getMid(), psa
);
2581 } catch (IOException e
) {
2582 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2583 e
.printStackTrace();
2585 } catch (XmlException e
) {
2586 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2587 e
.printStackTrace();
2589 } catch (Exception e
) {
2590 Log
.err("Upddate MsaFiles of Package", e
.getMessage());
2591 e
.printStackTrace();
2594 this.openModule(smb
.getMid().getPath());
2596 } else if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2600 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2601 result
= smb
.showDialog();
2603 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2607 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2609 wt
.addPackageToDatabase(smb
.getPid());
2610 } catch (Exception e
) {
2611 // TODO Auto-generated catch block
2612 e
.printStackTrace();
2614 vPackageList
.addElement(smb
.getPid());
2616 // Add new SpdHeader node to the tree
2618 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2619 IDefaultMutableTreeNode
.SPD_HEADER
, true,
2620 vPackageList
.lastElement());
2621 iTree
.addNode(dmtnPackageDescription
, node
);
2622 this.openPackage(smb
.getPid().getPath());
2624 } else if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2626 // To new a platform
2628 SelectModuleBelong smb
= new SelectModuleBelong(this, true, result
);
2629 result
= smb
.showDialog();
2631 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2635 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2637 wt
.addPlatformToDatabase(smb
.getFid());
2638 } catch (Exception e
) {
2639 // TODO Auto-generated catch block
2640 e
.printStackTrace();
2642 vPlatformList
.addElement(smb
.getFid());
2644 // Add new SpdHeader node to the tree
2646 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
2647 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2648 true, vPlatformList
.lastElement());
2649 iTree
.addNode(dmtnPlatformDescription
, node
);
2650 this.openPlatform(smb
.getFid().getPath());
2659 private void open() {
2660 JFileChooser fc
= new JFileChooser(Workspace
.getCurrentWorkspace());
2661 fc
.setAcceptAllFileFilterUsed(false);
2662 IFileFilter iffM
= new IFileFilter(DataType
.MODULE_SURFACE_AREA_EXT
);
2663 IFileFilter iffP
= new IFileFilter(DataType
.PACKAGE_SURFACE_AREA_EXT
);
2664 IFileFilter iffF
= new IFileFilter(DataType
.PLATFORM_SURFACE_AREA_EXT
);
2665 fc
.addChoosableFileFilter(iffM
);
2666 fc
.addChoosableFileFilter(iffP
);
2667 fc
.addChoosableFileFilter(iffF
);
2668 fc
.setFileFilter(iffM
);
2670 int result
= fc
.showOpenDialog(new JPanel());
2672 if (result
== JFileChooser
.APPROVE_OPTION
) {
2673 String path
= fc
.getSelectedFile().getPath();
2674 String match
= path
.substring(path
.length() - 4);
2675 if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.MODULE_SURFACE_AREA_EXT
)) {
2677 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PACKAGE_SURFACE_AREA_EXT
)) {
2679 } else if (match
.equals(DataType
.FILE_EXT_SEPARATOR
+ DataType
.PLATFORM_SURFACE_AREA_EXT
)) {
2689 private void close() {
2690 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2692 // Current is module
2695 if (this.currentOpeningModuleIndex
> -1) {
2696 if (!openingModuleList
.getModuleSaved(currentOpeningModuleIndex
)) {
2697 int result
= showSaveDialog();
2698 if (result
== JOptionPane
.YES_OPTION
) {
2701 if (result
== JOptionPane
.NO_OPTION
) {
2704 if (result
== JOptionPane
.CANCEL_OPTION
) {
2708 iTree
.removeNodeChildrenByPath(openingModuleList
.getTreePathByIndex(currentOpeningModuleIndex
));
2709 this.openingModuleList
.removeFromOpeningModuleListByIndex(this.currentOpeningModuleIndex
);
2710 this.cleanDesktopPaneModule();
2711 this.currentOpeningModuleIndex
= -1;
2715 // Current is package
2718 if (this.currentOpeningPackageIndex
> -1) {
2719 if (!openingPackageList
.getPackageSaved(currentOpeningPackageIndex
)) {
2720 int result
= showSaveDialog();
2721 if (result
== JOptionPane
.YES_OPTION
) {
2724 if (result
== JOptionPane
.NO_OPTION
) {
2727 if (result
== JOptionPane
.CANCEL_OPTION
) {
2731 iTree
.removeNodeChildrenByPath(openingPackageList
.getTreePathByIndex(currentOpeningPackageIndex
));
2732 this.openingPackageList
.removeFromOpeningPackageListByIndex(this.currentOpeningPackageIndex
);
2733 this.cleanDesktopPanePackage();
2734 this.currentOpeningPackageIndex
= -1;
2738 // Current is platform
2741 if (this.currentOpeningPlatformIndex
> -1) {
2742 if (!openingPlatformList
.getPlatformSaved(currentOpeningPlatformIndex
)) {
2743 int result
= showSaveDialog();
2744 if (result
== JOptionPane
.YES_OPTION
) {
2747 if (result
== JOptionPane
.NO_OPTION
) {
2750 if (result
== JOptionPane
.CANCEL_OPTION
) {
2754 iTree
.removeNodeChildrenByPath(openingPlatformList
.getTreePathByIndex(currentOpeningPlatformIndex
));
2755 this.openingPlatformList
.removeFromOpeningPlatformListByIndex(this.currentOpeningPlatformIndex
);
2756 this.cleanDesktopPanePlatform();
2757 this.currentOpeningPlatformIndex
= -1;
2764 Close all opening files and clean all showing internal frame
2767 private void closeAll() {
2769 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
2770 result
= showSaveDialog();
2772 if (result
== JOptionPane
.YES_OPTION
) {
2775 if (result
== JOptionPane
.NO_OPTION
) {
2778 if (result
== JOptionPane
.CANCEL_OPTION
) {
2781 this.cleanDesktopPane();
2782 this.getCompontentsFromFrameworkDatabase();
2783 openingModuleList
.removeAllFromOpeningModuleList();
2784 openingPackageList
.removeAllFromOpeningPackageList();
2785 openingPlatformList
.removeAllFromOpeningPlatformList();
2786 this.makeEmptyTree();
2790 Save currentModule when press button OK
2793 private void save() {
2794 switch (this.jTabbedPaneEditor
.getSelectedIndex()) {
2796 if (this.currentOpeningModuleIndex
> -1) {
2797 saveModule(this.currentOpeningModuleIndex
);
2801 if (this.currentOpeningPackageIndex
> -1) {
2802 savePackage(this.currentOpeningPackageIndex
);
2806 if (this.currentOpeningPlatformIndex
> -1) {
2807 savePlatform(this.currentOpeningPlatformIndex
);
2813 private void saveAs() {
2817 private void saveAll() {
2821 for (int index
= 0; index
< openingModuleList
.size(); index
++) {
2822 if (!openingModuleList
.getModuleSaved(index
)) {
2828 // Save all packages
2830 for (int index
= 0; index
< openingPackageList
.size(); index
++) {
2831 if (!openingPackageList
.getPackageSaved(index
)) {
2837 // Save all platforms
2839 for (int index
= 0; index
< openingPlatformList
.size(); index
++) {
2840 if (!openingPlatformList
.getPlatformSaved(index
)) {
2841 savePlatform(index
);
2847 To save changed items before exit.
2850 private void exit() {
2852 if (!openingModuleList
.isSaved() || !openingPackageList
.isSaved() || !openingPlatformList
.isSaved()) {
2853 result
= showSaveDialog();
2855 if (result
== JOptionPane
.YES_OPTION
) {
2858 if (result
== JOptionPane
.NO_OPTION
) {
2861 if (result
== JOptionPane
.CANCEL_OPTION
) {
2869 Switch current workspace to others
2872 private void changeWorkspace() {
2873 SwitchWorkspace sw
= new SwitchWorkspace(this, true);
2874 int result
= sw
.showDialog();
2875 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2877 } else if (result
== DataType
.RETURN_TYPE_OK
) {
2879 // Reinit whole window
2882 this.setTitle(projectName
+ " " + projectVersion
+ " " + "- [" + Workspace
.getCurrentWorkspace() + "]");
2888 Show Tool Chain Configuration Dialog to setup Tool Chain
2891 private void setupToolChainConfiguration() {
2892 ToolChainConfig tcc
= new ToolChainConfig(this, true);
2893 int result
= tcc
.showDialog();
2895 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2904 private void cloneItem() {
2908 // Check if there is any item can be cloned
2910 if (iTree
.getSelectionPath() == null) {
2911 Log
.err("Please select a target to clone!");
2914 int category
= iTree
.getSelectCategory();
2915 Identification id
= iTree
.getSelectNode().getId();
2916 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
2917 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
2918 Log
.err("Please select a target to clone!");
2922 if (category
== IDefaultMutableTreeNode
.WORKSPACE
) {
2923 mode
= DataType
.RETURN_TYPE_WORKSPACE
;
2926 if (category
>= IDefaultMutableTreeNode
.MSA_HEADER
&& category
< IDefaultMutableTreeNode
.SPD_HEADER
) {
2927 mode
= DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
;
2929 if (category
>= IDefaultMutableTreeNode
.SPD_HEADER
&& category
< IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2930 mode
= DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
;
2932 if (category
>= IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
) {
2933 mode
= DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
;
2936 Clone c
= new Clone(this, true, mode
, id
);
2937 int result
= c
.showDialog();
2939 if (result
== DataType
.RETURN_TYPE_CANCEL
) {
2942 if (result
== DataType
.RETURN_TYPE_WORKSPACE
) {
2943 Tools
.showInformationMessage("Workspace Clone Finished");
2945 if (result
== DataType
.RETURN_TYPE_MODULE_SURFACE_AREA
) {
2946 Tools
.showInformationMessage("Module Surface Area Clone Finished");
2947 vModuleList
.addElement(c
.getMid());
2949 // Add new MsaHeader node to the tree
2951 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vModuleList
.lastElement().getName(),
2952 IDefaultMutableTreeNode
.MSA_HEADER
, true,
2953 vModuleList
.lastElement());
2954 iTree
.addNode(dmtnModuleDescription
, node
);
2956 if (result
== DataType
.RETURN_TYPE_PACKAGE_SURFACE_AREA
) {
2957 Tools
.showInformationMessage("Package Surface Area Clone Finished");
2958 vPackageList
.addElement(c
.getPid());
2960 // Add new SpdHeader node to the tree
2962 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPackageList
.lastElement().getName(),
2963 IDefaultMutableTreeNode
.SPD_HEADER
, true,
2964 vPackageList
.lastElement());
2965 iTree
.addNode(dmtnPackageDescription
, node
);
2967 if (result
== DataType
.RETURN_TYPE_PLATFORM_SURFACE_AREA
) {
2968 Tools
.showInformationMessage("Platform Surface Area Clone Finished");
2969 vPlatformList
.addElement(c
.getFid());
2971 // Add new SpdHeader node to the tree
2973 IDefaultMutableTreeNode node
= new IDefaultMutableTreeNode(vPlatformList
.lastElement().getName(),
2974 IDefaultMutableTreeNode
.FPD_PLATFORMHEADER
,
2975 true, vPlatformList
.lastElement());
2976 iTree
.addNode(dmtnPlatformDescription
, node
);
2977 //this.openPlatform(c.getFid().getPath());
2979 if (result
== DataType
.RETURN_TYPE_OK
) {
2984 public void valueChanged(TreeSelectionEvent arg0
) {
2985 // TODO Auto-generated method stub
2989 public void menuCanceled(MenuEvent arg0
) {
2990 // TODO Auto-generated method stub
2994 public void menuDeselected(MenuEvent arg0
) {
2995 // TODO Auto-generated method stub
2999 public void menuSelected(MenuEvent arg0
) {
3000 if (arg0
.getSource() == jMenuFile
) {
3002 // Enable close/close all if some files are opened
3004 jMenuItemFileClose
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3005 || openingPlatformList
.isOpend());
3006 jMenuItemFileCloseAll
.setEnabled(openingModuleList
.isOpend() || openingPackageList
.isOpend()
3007 || openingPlatformList
.isOpend());
3010 // Enable save/save all if some files are changed
3012 jMenuItemFileSave
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3013 || !openingPlatformList
.isSaved());
3014 jMenuItemFileSaveAll
.setEnabled(!openingModuleList
.isSaved() || !openingPackageList
.isSaved()
3015 || !openingPlatformList
.isSaved());
3018 if (arg0
.getSource() == jMenuTools
) {
3020 // Enable clone when select some items
3022 if (iTree
.getSelectionPath() == null) {
3023 jMenuItemToolsClone
.setEnabled(false);
3025 int category
= iTree
.getSelectCategory();
3026 if (category
== IDefaultMutableTreeNode
.MODULE
|| category
== IDefaultMutableTreeNode
.PACKAGE
3027 || category
== IDefaultMutableTreeNode
.PLATFORM
) {
3028 jMenuItemToolsClone
.setEnabled(false);
3030 jMenuItemToolsClone
.setEnabled(true);