]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Java/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
1. Fix EDKT441 After some modifications and refresh, there will show a dialog for...
[mirror_edk2.git] / Tools / Java / Source / FrameworkWizard / src / org / tianocore / frameworkwizard / FrameworkWizardUI.java
1 /** @file
2
3 The main GUI for module editor.
4
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
10
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.
13
14 **/
15
16 package org.tianocore.frameworkwizard;
17
18 import java.awt.event.ActionEvent;
19 import java.awt.event.ComponentEvent;
20 import java.awt.event.KeyEvent;
21 import java.awt.event.KeyListener;
22 import java.awt.event.MouseEvent;
23 import java.awt.event.MouseListener;
24 import java.awt.event.WindowEvent;
25 import java.io.BufferedWriter;
26 import java.io.File;
27 import java.io.FileWriter;
28 import java.io.IOException;
29 import java.util.Iterator;
30 import java.util.Set;
31 import java.util.Vector;
32
33 import javax.swing.JButton;
34 import javax.swing.JCheckBoxMenuItem;
35 import javax.swing.JDesktopPane;
36 import javax.swing.JFileChooser;
37 import javax.swing.JFrame;
38 import javax.swing.JInternalFrame;
39 import javax.swing.JMenu;
40 import javax.swing.JMenuBar;
41 import javax.swing.JMenuItem;
42 import javax.swing.JOptionPane;
43 import javax.swing.JPanel;
44 import javax.swing.JScrollPane;
45 import javax.swing.JSplitPane;
46 import javax.swing.JTabbedPane;
47 import javax.swing.event.MenuEvent;
48 import javax.swing.event.MenuListener;
49 import javax.swing.event.TreeSelectionEvent;
50 import javax.swing.event.TreeSelectionListener;
51 import javax.swing.tree.TreePath;
52
53 import org.apache.xmlbeans.XmlException;
54 import org.tianocore.PackageSurfaceAreaDocument;
55 import org.tianocore.frameworkwizard.common.DataType;
56 import org.tianocore.frameworkwizard.common.GlobalData;
57 import org.tianocore.frameworkwizard.common.IFileFilter;
58 import org.tianocore.frameworkwizard.common.Log;
59 import org.tianocore.frameworkwizard.common.SaveFile;
60 import org.tianocore.frameworkwizard.common.Tools;
61 import org.tianocore.frameworkwizard.common.Identifications.Identification;
62 import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;
63 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;
64 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;
65 import org.tianocore.frameworkwizard.common.find.FindResult;
66 import org.tianocore.frameworkwizard.common.ui.IDefaultMutableTreeNode;
67 import org.tianocore.frameworkwizard.common.ui.IDesktopManager;
68 import org.tianocore.frameworkwizard.common.ui.IFrame;
69 import org.tianocore.frameworkwizard.common.ui.ITree;
70 import org.tianocore.frameworkwizard.far.createui.CreateStepOne;
71 import org.tianocore.frameworkwizard.far.deleteui.DeleteStepOne;
72 import org.tianocore.frameworkwizard.far.installui.InstallStepOne;
73 import org.tianocore.frameworkwizard.far.updateui.UpdateStepOne;
74 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;
75 import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;
76 import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;
77 import org.tianocore.frameworkwizard.module.ui.ModuleEvents;
78 import org.tianocore.frameworkwizard.module.ui.ModuleExterns;
79 import org.tianocore.frameworkwizard.module.ui.ModuleGuids;
80 import org.tianocore.frameworkwizard.module.ui.ModuleHiiPackages;
81 import org.tianocore.frameworkwizard.module.ui.ModuleHobs;
82 import org.tianocore.frameworkwizard.module.ui.ModuleLibraryClassDefinitions;
83 import org.tianocore.frameworkwizard.module.ui.ModulePCDs;
84 import org.tianocore.frameworkwizard.module.ui.ModulePackageDependencies;
85 import org.tianocore.frameworkwizard.module.ui.ModulePpis;
86 import org.tianocore.frameworkwizard.module.ui.ModuleProtocols;
87 import org.tianocore.frameworkwizard.module.ui.ModuleSourceFiles;
88 import org.tianocore.frameworkwizard.module.ui.ModuleSystemTables;
89 import org.tianocore.frameworkwizard.module.ui.ModuleVariables;
90 import org.tianocore.frameworkwizard.module.ui.MsaHeader;
91 import org.tianocore.frameworkwizard.packaging.PackageIdentification;
92 import org.tianocore.frameworkwizard.packaging.ui.SpdGuidDecls;
93 import org.tianocore.frameworkwizard.packaging.ui.SpdHeader;
94 import org.tianocore.frameworkwizard.packaging.ui.SpdLibClassDecls;
95 import org.tianocore.frameworkwizard.packaging.ui.SpdMsaFiles;
96 import org.tianocore.frameworkwizard.packaging.ui.SpdPackageHeaders;
97 import org.tianocore.frameworkwizard.packaging.ui.SpdPcdDefs;
98 import org.tianocore.frameworkwizard.packaging.ui.SpdPpiDecls;
99 import org.tianocore.frameworkwizard.packaging.ui.SpdProtocolDecls;
100 import org.tianocore.frameworkwizard.platform.PlatformIdentification;
101 import org.tianocore.frameworkwizard.platform.ui.FpdBuildOptions;
102 import org.tianocore.frameworkwizard.platform.ui.FpdDynamicPcdBuildDefinitions;
103 import org.tianocore.frameworkwizard.platform.ui.FpdFlash;
104 import org.tianocore.frameworkwizard.platform.ui.FpdFrameworkModules;
105 import org.tianocore.frameworkwizard.platform.ui.FpdHeader;
106 import org.tianocore.frameworkwizard.platform.ui.FpdPlatformDefs;
107 import org.tianocore.frameworkwizard.workspace.Workspace;
108 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;
109 import org.tianocore.frameworkwizard.workspace.ui.SwitchWorkspace;
110 import org.tianocore.frameworkwizard.toolchain.Preferences;
111
112 /**
113 The class is used to show main GUI of FrameworkWizard
114 It extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener and MenuListener
115
116 **/
117 public class FrameworkWizardUI extends IFrame implements KeyListener, MouseListener, TreeSelectionListener,
118 MenuListener {
119 ///
120 /// Define class Serial Version UID
121 ///
122 private static final long serialVersionUID = -7103240960573031772L;
123
124 ///
125 /// Used to record current operation target
126 ///
127 private int currentOpeningModuleIndex = -1;
128
129 private int currentOpeningPackageIndex = -1;
130
131 private int currentOpeningPlatformIndex = -1;
132
133 ///
134 /// Used to generate tree structure
135 ///
136 private IDefaultMutableTreeNode dmtnRoot = null;
137
138 private IDefaultMutableTreeNode dmtnModuleDescription = null;
139
140 private IDefaultMutableTreeNode dmtnPackageDescription = null;
141
142 private IDefaultMutableTreeNode dmtnPlatformDescription = null;
143
144 ///
145 /// Used for UI
146 ///
147 private JPanel jContentPane = null;
148
149 private JMenuBar jMenuBar = null;
150
151 private JMenu jMenuFile = null;
152
153 private JMenuItem jMenuItemFileNew = null;
154
155 private JMenuItem jMenuItemFileRefresh = null;
156
157 private JMenuItem jMenuItemFileSaveAs = null;
158
159 private JMenuItem jMenuItemFileExit = null;
160
161 private JMenu jMenuEdit = null;
162
163 private JDesktopPane jDesktopPaneModule = null;
164
165 private JDesktopPane jDesktopPanePackage = null;
166
167 private JDesktopPane jDesktopPanePlatform = null;
168
169 private JTabbedPane jTabbedPaneTree = null;
170
171 private JTabbedPane jTabbedPaneEditor = null;
172
173 private IDesktopManager iDesktopManager = new IDesktopManager();
174
175 private JScrollPane jScrollPaneTree = null;
176
177 private ITree iTree = null;
178
179 private JMenu jMenuHelp = null;
180
181 private JMenuItem jMenuItemHelpAbout = null;
182
183 private JMenuItem jMenuItemEditDelete = null;
184
185 private WorkspaceTools wt = new WorkspaceTools();
186
187 private JMenuItem jMenuItemFileSave = null;
188
189 private JMenuItem jMenuItemFileClose = null;
190
191 private JMenu jMenuTools = null;
192
193 private JMenu jMenuWindow = null;
194
195 private JPanel jPanelOperation = null;
196
197 private JButton jButtonOk = null;
198
199 private JButton jButtonCancel = null;
200
201 private JMenuItem jMenuItemFileOpen = null;
202
203 private JMenuItem jMenuItemFileCloseAll = null;
204
205 private JMenuItem jMenuItemFileSaveAll = null;
206
207 private JMenuItem jMenuItemFilePageSetup = null;
208
209 private JMenuItem jMenuItemFilePrint = null;
210
211 private JMenuItem jMenuItemFileImport = null;
212
213 private JMenuItem jMenuItemFileProperties = null;
214
215 private JMenu jMenuFileRecentFiles = null;
216
217 private JSplitPane jSplitPane = null;
218
219 private JMenuItem jMenuItemEditUndo = null;
220
221 private JMenuItem jMenuItemEditRedo = null;
222
223 private JMenuItem jMenuItemEditCut = null;
224
225 private JMenuItem jMenuItemEditCopy = null;
226
227 private JMenuItem jMenuItemEditPaste = null;
228
229 private JMenuItem jMenuItemEditSelectAll = null;
230
231 private JMenuItem jMenuItemEditFindNext = null;
232
233 private JMenu jMenuView = null;
234
235 private JMenu jMenuViewToolbars = null;
236
237 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile = null;
238
239 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit = null;
240
241 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow = null;
242
243 private JMenuItem jMenuItemViewStandard = null;
244
245 private JMenuItem jMenuItemViewAdvanced = null;
246
247 private JMenu jMenuProject = null;
248
249 private JMenuItem jMenuItemProjectAdmin = null;
250
251 private JMenuItem jMenuItemProjectChangeWorkspace = null;
252
253 private JMenuItem jMenuItemToolsBuildPreferences = null;
254
255 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
256
257 // private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
258
259 private JMenuItem jMenuItemToolsToolChainConfiguration = null;
260
261 private JMenuItem jMenuItemToolsClone = null;
262
263 private JMenuItem jMenuItemToolsCodeScan = null;
264
265 private JMenuItem jMenuItemWindowDisplaySide = null;
266
267 private JMenuItem jMenuItemWindowDisplayTopBottom = null;
268
269 private JMenuItem jMenuItemViewXML = null;
270
271 private JMenuItem jMenuItemWindowTabView = null;
272
273 private JMenuItem jMenuItemWindowSource = null;
274
275 private JMenuItem jMenuItemWindowXML = null;
276
277 private JMenuItem jMenuItemWindowPreferences = null;
278
279 private JMenuItem jMenuItemHelpContents = null;
280
281 private JMenuItem jMenuItemHelpIndex = null;
282
283 private JMenuItem jMenuItemHelpSearch = null;
284
285 private JMenuItem jMenuItemProjectInstallFar = null;
286
287 private JMenuItem jMenuItemProjectUpdateFar = null;
288
289 private JMenuItem jMenuItemProjectRemoveFar = null;
290
291 private JMenuItem jMenuItemProjectCreateFar = null;
292
293 private JMenu jMenuEditFind = null;
294
295 private JMenuItem jMenuItemEditFindPcd = null;
296
297 private JMenuItem jMenuItemEditFindLibraryClass = null;
298
299 private JMenuItem jMenuItemEditFindPpi = null;
300
301 private JMenuItem jMenuItemEditFindProtocol = null;
302
303 private JMenuItem jMenuItemEditFindGuid = null;
304
305 private JMenuItem jMenuItemEditFindLibraryInstance = null;
306
307 ///
308 /// A static definition for this class itself
309 ///
310 private static FrameworkWizardUI fwui = null;
311
312 private JMenuItem jMenuItemToolsGenerateGuidsXref = null;
313
314 /**
315 If the class hasn't an instnace, new one.
316
317 @return FrameworkWizardUI The instance of this class
318
319 **/
320 public static FrameworkWizardUI getInstance() {
321 if (fwui == null) {
322 fwui = new FrameworkWizardUI();
323 }
324 return fwui;
325 }
326
327 /**
328 This method initializes jMenuBar
329
330 @return javax.swing.JMenuBar Main menu bar for the entire GUI
331
332 **/
333 private JMenuBar getjJMenuBar() {
334 if (jMenuBar == null) {
335 jMenuBar = new JMenuBar();
336 jMenuBar.setPreferredSize(new java.awt.Dimension(0, 18));
337 jMenuBar.add(getJMenuFile());
338 jMenuBar.add(getJMenuEdit());
339 jMenuBar.add(getJMenuView());
340 jMenuBar.add(getJMenuProject());
341 jMenuBar.add(getJMenuTools());
342 jMenuBar.add(getJMenuWindow());
343 jMenuBar.add(getJMenuHelp());
344 }
345 return jMenuBar;
346 }
347
348 /**
349 This method initializes jSplitPane
350
351 @return javax.swing.JSplitPane
352
353 **/
354 private JSplitPane getJSplitPane() {
355 if (jSplitPane == null) {
356 jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, getJTabbedPaneTree(), getJTabbedPaneEditor());
357 jSplitPane.setBounds(new java.awt.Rectangle(0, 1, DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH,
358 DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT));
359 jSplitPane.addComponentListener(this);
360 }
361 return jSplitPane;
362 }
363
364 /**
365 This method initializes jTabbedPaneEditor
366
367 @return javax.swing.JTabbedPane
368
369 **/
370 private JTabbedPane getJTabbedPaneEditor() {
371 if (jTabbedPaneEditor == null) {
372 jTabbedPaneEditor = new JTabbedPane();
373 jTabbedPaneEditor.setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
374 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
375 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
376 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
377 jTabbedPaneEditor
378 .setMinimumSize(new java.awt.Dimension(
379 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
380 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
381 jTabbedPaneEditor.addTab("Module", null, getJDesktopPaneModule(), null);
382 jTabbedPaneEditor.addTab("Package", null, getJDesktopPanePackage(), null);
383 jTabbedPaneEditor.addTab("Platform", null, getJDesktopPanePlatform(), null);
384 }
385 return jTabbedPaneEditor;
386 }
387
388 /**
389 This method initializes jTabbedPaneTree
390
391 @return javax.swing.JTabbedPane
392
393 **/
394 private JTabbedPane getJTabbedPaneTree() {
395 if (jTabbedPaneTree == null) {
396 jTabbedPaneTree = new JTabbedPane();
397 jTabbedPaneTree
398 .setPreferredSize(new java.awt.Dimension(
399 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
400 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
401 jTabbedPaneTree
402 .setMinimumSize(new java.awt.Dimension(DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
403 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
404 jTabbedPaneTree.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
405 }
406 return jTabbedPaneTree;
407 }
408
409 /**
410 This method initializes jMenuFile
411
412 @return javax.swing.JMenu jMenuModule
413
414 **/
415 private JMenu getJMenuFile() {
416 if (jMenuFile == null) {
417 //
418 // Set jMenuFile's attributes
419 //
420 jMenuFile = new JMenu();
421 jMenuFile.setText("File");
422 jMenuFile.setMnemonic('F');
423 jMenuFile.addMenuListener(this);
424
425 //
426 // Add sub menu items
427 //
428 jMenuFile.add(getJMenuItemFileNew());
429 jMenuFile.add(getJMenuItemFileOpen());
430 jMenuFile.add(getJMenuItemFileClose());
431 jMenuFile.add(getJMenuItemFileCloseAll());
432 jMenuFile.addSeparator();
433
434 jMenuFile.add(getJMenuFileRecentFiles());
435 jMenuFile.add(getJMenuItemFileSave());
436 jMenuFile.add(getJMenuItemFileSaveAs());
437 jMenuFile.add(getJMenuItemFileSaveAll());
438 jMenuFile.addSeparator();
439
440 jMenuFile.add(getJMenuItemFileRefresh());
441 jMenuFile.addSeparator();
442
443 jMenuFile.add(getJMenuItemFilePageSetup());
444 jMenuFile.add(getJMenuItemFilePrint());
445 jMenuFile.add(getJMenuItemFileImport());
446 jMenuFile.add(getJMenuItemFileProperties());
447
448 jMenuFile.add(getJMenuItemFileExit());
449 }
450 return jMenuFile;
451 }
452
453 /**
454 This method initializes jMenuItemFileSaveAs
455
456 @return javax.swing.JMenuItem jMenuItemFileSaveAs
457
458 **/
459 private JMenuItem getJMenuItemFileSaveAs() {
460 if (jMenuItemFileSaveAs == null) {
461 jMenuItemFileSaveAs = new JMenuItem();
462 jMenuItemFileSaveAs.setText("Save As...");
463 jMenuItemFileSaveAs.setMnemonic('a');
464 jMenuItemFileSaveAs.addActionListener(this);
465 jMenuItemFileSaveAs.setEnabled(false);
466 jMenuItemFileSaveAs.setVisible(false);
467 }
468 return jMenuItemFileSaveAs;
469 }
470
471 /**
472 This method initializes jMenuItemFileRefresh
473
474 @return javax.swing.JMenuItem jMenuItemFileRefresh
475
476 **/
477 private JMenuItem getJMenuItemFileRefresh() {
478 if (jMenuItemFileRefresh == null) {
479 jMenuItemFileRefresh = new JMenuItem();
480 jMenuItemFileRefresh.setText("Refresh");
481 jMenuItemFileRefresh.setMnemonic('R');
482 jMenuItemFileRefresh.addActionListener(this);
483 jMenuItemFileRefresh.setVisible(true);
484 }
485 return jMenuItemFileRefresh;
486 }
487
488 /**
489 This method initializes jMenuItemModuleExit
490
491 @return javax.swing.JMenuItem jMenuItemModuleExit
492
493 **/
494 private JMenuItem getJMenuItemFileExit() {
495 if (jMenuItemFileExit == null) {
496 jMenuItemFileExit = new JMenuItem();
497 jMenuItemFileExit.setText("Exit");
498 jMenuItemFileExit.setMnemonic('x');
499 jMenuItemFileExit.addActionListener(this);
500 }
501 return jMenuItemFileExit;
502 }
503
504 /**
505 This method initializes jMenuEdit
506
507 @return javax.swing.JMenu jMenuEdit
508
509 **/
510 private JMenu getJMenuEdit() {
511 if (jMenuEdit == null) {
512 //
513 // Set jMenuEdit's attributes
514 //
515 jMenuEdit = new JMenu();
516 jMenuEdit.setText("Edit");
517 jMenuEdit.setMnemonic('E');
518 jMenuEdit.setVisible(true);
519
520 //
521 // Add sub menu items
522 //
523 jMenuEdit.add(getJMenuItemEditUndo());
524 jMenuEdit.add(getJMenuItemEditRedo());
525 //jMenuEdit.addSeparator();
526
527 jMenuEdit.add(getJMenuItemEditCut());
528 jMenuEdit.add(getJMenuItemEditCopy());
529 jMenuEdit.add(getJMenuItemEditPaste());
530 jMenuEdit.add(getJMenuItemEditDelete());
531 //jMenuEdit.addSeparator();
532
533 jMenuEdit.add(getJMenuItemEditSelectAll());
534 jMenuEdit.add(getJMenuEditFind());
535 jMenuEdit.add(getJMenuItemEditFindNext());
536 //jMenuEdit.addSeparator();
537 }
538 return jMenuEdit;
539 }
540
541 /**
542 This method initializes jDesktopPane
543
544 @return javax.swing.JDesktopPane jDesktopPane
545
546 **/
547 private JDesktopPane getJDesktopPaneModule() {
548 if (jDesktopPaneModule == null) {
549 jDesktopPaneModule = new JDesktopPane();
550 jDesktopPaneModule
551 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
552 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
553 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
554 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
555 jDesktopPaneModule
556 .setMinimumSize(new java.awt.Dimension(
557 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
558 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
559 jDesktopPaneModule.setDesktopManager(iDesktopManager);
560 jDesktopPaneModule.addComponentListener(this);
561 }
562 return jDesktopPaneModule;
563 }
564
565 /**
566 This method initializes jDesktopPane
567
568 @return javax.swing.JDesktopPane jDesktopPane
569
570 **/
571 private JDesktopPane getJDesktopPanePackage() {
572 if (jDesktopPanePackage == null) {
573 jDesktopPanePackage = new JDesktopPane();
574 jDesktopPanePackage
575 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
576 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
577 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
578 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
579 jDesktopPanePackage
580 .setMinimumSize(new java.awt.Dimension(
581 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
582 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
583 jDesktopPanePackage.setDesktopManager(iDesktopManager);
584 jDesktopPanePackage.addComponentListener(this);
585 }
586 return jDesktopPanePackage;
587 }
588
589 /**
590 This method initializes jDesktopPane
591
592 @return javax.swing.JDesktopPane jDesktopPane
593
594 **/
595 private JDesktopPane getJDesktopPanePlatform() {
596 if (jDesktopPanePlatform == null) {
597 jDesktopPanePlatform = new JDesktopPane();
598 jDesktopPanePlatform
599 .setBounds(new java.awt.Rectangle(
600 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
601 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
602 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
603 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
604 jDesktopPanePlatform
605 .setMinimumSize(new java.awt.Dimension(
606 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
607 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
608 jDesktopPanePlatform.setDesktopManager(iDesktopManager);
609 jDesktopPanePlatform.addComponentListener(this);
610 }
611 return jDesktopPanePlatform;
612 }
613
614 /**
615 This method initializes jScrollPaneTree
616
617 @return javax.swing.JScrollPane jScrollPaneTree
618
619 **/
620 private JScrollPane getJScrollPaneTree() {
621 if (jScrollPaneTree == null) {
622 jScrollPaneTree = new JScrollPane();
623 jScrollPaneTree
624 .setPreferredSize(new java.awt.Dimension(
625 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
626 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
627 jScrollPaneTree
628 .setMinimumSize(new java.awt.Dimension(
629 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH / 2,
630 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
631 jScrollPaneTree.setViewportView(getITree());
632 }
633 return jScrollPaneTree;
634 }
635
636 /**
637 This method initializes iTree
638
639 @return org.tianocore.packaging.common.ui.ITree iTree
640
641 **/
642 private ITree getITree() {
643 //
644 //Before open a real module, use an empty root node for the tree
645 //
646 makeEmptyTree();
647 return iTree;
648 }
649
650 /**
651 This method initializes jMenuHelp
652
653 @return javax.swing.JMenu jMenuHelp
654
655 **/
656 private JMenu getJMenuHelp() {
657 if (jMenuHelp == null) {
658 //
659 // Set jMenuHelp's attributes
660 //
661 jMenuHelp = new JMenu();
662 jMenuHelp.setText("Help");
663 jMenuHelp.setMnemonic('H');
664
665 //
666 // Add sub menu items
667 //
668 jMenuHelp.add(getJMenuItemHelpContents());
669 jMenuHelp.add(getJMenuItemHelpIndex());
670 jMenuHelp.add(getJMenuItemHelpSearch());
671
672 jMenuHelp.add(getJMenuItemHelpAbout());
673 }
674 return jMenuHelp;
675 }
676
677 /**
678 This method initializes jMenuItemHelpAbout
679
680 @return javax.swing.JMenuItem jMenuItemHelpAbout
681
682 **/
683 private JMenuItem getJMenuItemHelpAbout() {
684 if (jMenuItemHelpAbout == null) {
685 jMenuItemHelpAbout = new JMenuItem();
686 jMenuItemHelpAbout.setText("About");
687 jMenuItemHelpAbout.setMnemonic('A');
688 jMenuItemHelpAbout.addActionListener(this);
689 }
690 return jMenuItemHelpAbout;
691 }
692
693 /**
694 This method initializes jMenuItemEditDelete
695
696 @return javax.swing.JMenuItem jMenuItemEditDelete
697
698 **/
699 private JMenuItem getJMenuItemEditDelete() {
700 if (jMenuItemEditDelete == null) {
701 jMenuItemEditDelete = new JMenuItem();
702 jMenuItemEditDelete.setText("Delete");
703 jMenuItemEditDelete.setMnemonic('D');
704 jMenuItemEditDelete.setVisible(false);
705 jMenuItemEditDelete.setEnabled(false);
706 jMenuItemEditDelete.addActionListener(this);
707 //
708 //Disabled first when no module is open
709 //
710 jMenuItemEditDelete.setEnabled(false);
711 }
712 return jMenuItemEditDelete;
713 }
714
715 /**
716 This method initializes jMenuFileNew
717
718 @return javax.swing.JMenuItem jMenuFileNew
719
720 **/
721 private JMenuItem getJMenuItemFileNew() {
722 if (jMenuItemFileNew == null) {
723 jMenuItemFileNew = new JMenuItem();
724 jMenuItemFileNew.setText("New...");
725 jMenuItemFileNew.setMnemonic('N');
726 jMenuItemFileNew.addActionListener(this);
727 }
728 return jMenuItemFileNew;
729 }
730
731 /**
732 This method initializes jMenuItemFileSave
733
734 @return javax.swing.JMenuItem jMenuItemModuleSave
735
736 **/
737 private JMenuItem getJMenuItemFileSave() {
738 if (jMenuItemFileSave == null) {
739 jMenuItemFileSave = new JMenuItem();
740 jMenuItemFileSave.setText("Save");
741 jMenuItemFileSave.setMnemonic('S');
742 jMenuItemFileSave.addActionListener(this);
743 jMenuItemFileSave.setEnabled(true);
744 }
745 return jMenuItemFileSave;
746 }
747
748 /**
749 This method initializes jMenuItemModuleClose
750
751 @return javax.swing.JMenuItem jMenuItemModuleClose
752
753 **/
754 private JMenuItem getJMenuItemFileClose() {
755 if (jMenuItemFileClose == null) {
756 jMenuItemFileClose = new JMenuItem();
757 jMenuItemFileClose.setText("Close");
758 jMenuItemFileClose.setMnemonic('C');
759 jMenuItemFileClose.setEnabled(true);
760 jMenuItemFileClose.addActionListener(this);
761 }
762 return jMenuItemFileClose;
763 }
764
765 /**
766 This method initializes jMenuTools
767 Reserved
768
769 @return javax.swing.JMenu jMenuTools
770
771 **/
772 private JMenu getJMenuTools() {
773 if (jMenuTools == null) {
774 //
775 // Set jMenuTools's attributes
776 //
777 jMenuTools = new JMenu();
778 jMenuTools.setText("Tools");
779 jMenuTools.setMnemonic('T');
780 jMenuTools.addMenuListener(this);
781
782 //
783 // Add sub menu items
784 //
785
786 jMenuTools.add(getJMenuItemToolsClone());
787 jMenuTools.add(getJMenuItemToolsCodeScan());
788 jMenuTools.addSeparator();
789
790 jMenuTools.add(getJMenuItemToolsToolChainConfiguration());
791 jMenuTools.add(getJMenuItemToolsBuildPreferences());
792 jMenuTools.addSeparator();
793
794 jMenuTools.add(getJMenuItemToolsGenerateGuidsXref());
795 }
796 return jMenuTools;
797 }
798
799 /**
800 This method initializes jMenuWindow
801 Reserved
802
803 @return javax.swing.JMenu jMenuWindow
804
805 **/
806 private JMenu getJMenuWindow() {
807 if (jMenuWindow == null) {
808 //
809 // Set jMenuWindow's attribute
810 //
811 jMenuWindow = new JMenu();
812 jMenuWindow.setText("Window");
813 jMenuWindow.setMnemonic('W');
814 jMenuWindow.setVisible(false);
815
816 //
817 // Add sub menu items
818 //
819 jMenuWindow.add(getJMenuItemWindowDisplaySide());
820 jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());
821 jMenuWindow.addSeparator();
822
823 jMenuWindow.add(getJMenuItemWindowTabView());
824 jMenuWindow.addSeparator();
825
826 jMenuWindow.add(getJMenuItemWindowSource());
827 jMenuWindow.add(getJMenuItemWindowXML());
828 jMenuWindow.addSeparator();
829
830 jMenuWindow.add(getJMenuItemWindowPreferences());
831 }
832 return jMenuWindow;
833 }
834
835 /**
836 This method initializes jPanelOperation
837 Reserved
838
839 @return javax.swing.JPanel jPanelOperation
840
841 **/
842 private JPanel getJPanelOperation() {
843 if (jPanelOperation == null) {
844 jPanelOperation = new JPanel();
845 jPanelOperation.setLayout(null);
846 jPanelOperation.setBounds(new java.awt.Rectangle(295, 520, 500, 25));
847 jPanelOperation.add(getJButtonOk(), null);
848 jPanelOperation.add(getJButtonCancel(), null);
849 jPanelOperation.setVisible(false);
850 }
851 return jPanelOperation;
852 }
853
854 /**
855 This method initializes jButtonOk
856 Reserved
857
858 @return javax.swing.JButton jButtonOk
859
860 **/
861 private JButton getJButtonOk() {
862 if (jButtonOk == null) {
863 jButtonOk = new JButton();
864 jButtonOk.setBounds(new java.awt.Rectangle(395, 2, 90, 20));
865 jButtonOk.setText("Ok");
866 jButtonOk.setEnabled(false);
867 jButtonOk.addActionListener(this);
868 }
869 return jButtonOk;
870 }
871
872 /**
873 This method initializes jButtonCancel
874 Reserved
875
876 @return javax.swing.JButton jButtonCancel
877
878 **/
879 private JButton getJButtonCancel() {
880 if (jButtonCancel == null) {
881 jButtonCancel = new JButton();
882 jButtonCancel.setBounds(new java.awt.Rectangle(395, 2, 90, 20));
883 jButtonCancel.setText("Cancel");
884 jButtonCancel.setEnabled(false);
885 jButtonCancel.addActionListener(this);
886 jButtonCancel.setVisible(false);
887 }
888 return jButtonCancel;
889 }
890
891 /**
892 This method initializes jMenuItemFileOpen
893
894 @return javax.swing.JMenuItem jMenuItemFileOpen
895
896 **/
897 private JMenuItem getJMenuItemFileOpen() {
898 if (jMenuItemFileOpen == null) {
899 jMenuItemFileOpen = new JMenuItem();
900 jMenuItemFileOpen.setText("Open...");
901 jMenuItemFileOpen.setMnemonic('O');
902 jMenuItemFileOpen.addActionListener(this);
903 }
904 return jMenuItemFileOpen;
905 }
906
907 /**
908 This method initializes jMenuItemFileCloseAll
909
910 @return javax.swing.JMenuItem jMenuItemFileOpen
911
912 **/
913 private JMenuItem getJMenuItemFileCloseAll() {
914 if (jMenuItemFileCloseAll == null) {
915 jMenuItemFileCloseAll = new JMenuItem();
916 jMenuItemFileCloseAll.setText("Close All");
917 jMenuItemFileCloseAll.setMnemonic('A');
918 jMenuItemFileCloseAll.setEnabled(true);
919 jMenuItemFileCloseAll.addActionListener(this);
920 }
921 return jMenuItemFileCloseAll;
922 }
923
924 /**
925 This method initializes jMenuItemFileSaveAll
926
927 @return javax.swing.JMenuItem jMenuItemFileSaveAll
928
929 **/
930 private JMenuItem getJMenuItemFileSaveAll() {
931 if (jMenuItemFileSaveAll == null) {
932 jMenuItemFileSaveAll = new JMenuItem();
933 jMenuItemFileSaveAll.setText("Save All");
934 jMenuItemFileSaveAll.setMnemonic('v');
935 jMenuItemFileSaveAll.setEnabled(true);
936 jMenuItemFileSaveAll.addActionListener(this);
937 }
938 return jMenuItemFileSaveAll;
939 }
940
941 /**
942 This method initializes jMenuItemFilePageSetup
943
944 @return javax.swing.JMenuItem
945
946 **/
947 private JMenuItem getJMenuItemFilePageSetup() {
948 if (jMenuItemFilePageSetup == null) {
949 jMenuItemFilePageSetup = new JMenuItem();
950 jMenuItemFilePageSetup.setText("Page Setup");
951 jMenuItemFilePageSetup.setMnemonic('u');
952 jMenuItemFilePageSetup.setEnabled(false);
953 jMenuItemFilePageSetup.addActionListener(this);
954 jMenuItemFilePageSetup.setVisible(false);
955 }
956 return jMenuItemFilePageSetup;
957 }
958
959 /**
960 This method initializes jMenuItemFilePrint
961
962 @return javax.swing.JMenuItem
963
964 **/
965 private JMenuItem getJMenuItemFilePrint() {
966 if (jMenuItemFilePrint == null) {
967 jMenuItemFilePrint = new JMenuItem();
968 jMenuItemFilePrint.setText("Print");
969 jMenuItemFilePrint.setMnemonic('P');
970 jMenuItemFilePrint.setEnabled(false);
971 jMenuItemFilePrint.addActionListener(this);
972 jMenuItemFilePrint.setVisible(false);
973 }
974 return jMenuItemFilePrint;
975 }
976
977 /**
978 This method initializes jMenuItemFileImport
979
980 @return javax.swing.JMenuItem
981
982 **/
983 private JMenuItem getJMenuItemFileImport() {
984 if (jMenuItemFileImport == null) {
985 jMenuItemFileImport = new JMenuItem();
986 jMenuItemFileImport.setText("Import");
987 jMenuItemFileImport.setMnemonic('I');
988 jMenuItemFileImport.setEnabled(false);
989 jMenuItemFileImport.addActionListener(this);
990 jMenuItemFileImport.setVisible(false);
991 }
992 return jMenuItemFileImport;
993 }
994
995 /**
996 This method initializes jMenuItemFileProperties
997
998 @return javax.swing.JMenuItem
999
1000 **/
1001 private JMenuItem getJMenuItemFileProperties() {
1002 if (jMenuItemFileProperties == null) {
1003 jMenuItemFileProperties = new JMenuItem();
1004 jMenuItemFileProperties.setText("Properties");
1005 jMenuItemFileProperties.setMnemonic('t');
1006 jMenuItemFileProperties.setEnabled(false);
1007 jMenuItemFileProperties.addActionListener(this);
1008 jMenuItemFileProperties.setVisible(false);
1009 }
1010 return jMenuItemFileProperties;
1011 }
1012
1013 /**
1014 This method initializes jMenuFileRecentFiles
1015
1016 @return javax.swing.JMenu
1017
1018 **/
1019 private JMenu getJMenuFileRecentFiles() {
1020 if (jMenuFileRecentFiles == null) {
1021 jMenuFileRecentFiles = new JMenu();
1022 jMenuFileRecentFiles.setText("Recent Files");
1023 jMenuFileRecentFiles.setMnemonic('F');
1024 jMenuFileRecentFiles.setEnabled(false);
1025 jMenuFileRecentFiles.addActionListener(this);
1026 jMenuFileRecentFiles.setVisible(false);
1027 }
1028 return jMenuFileRecentFiles;
1029 }
1030
1031 /**
1032 This method initializes jMenuItemEditUndo
1033
1034 @return javax.swing.JMenuItem
1035
1036 **/
1037 private JMenuItem getJMenuItemEditUndo() {
1038 if (jMenuItemEditUndo == null) {
1039 jMenuItemEditUndo = new JMenuItem();
1040 jMenuItemEditUndo.setText("Undo");
1041 jMenuItemEditUndo.setMnemonic('U');
1042 jMenuItemEditUndo.setEnabled(false);
1043 jMenuItemEditUndo.setVisible(false);
1044 jMenuItemEditUndo.addActionListener(this);
1045 }
1046 return jMenuItemEditUndo;
1047 }
1048
1049 /**
1050 This method initializes jMenuItemEditRedo
1051
1052 @return javax.swing.JMenuItem
1053
1054 **/
1055 private JMenuItem getJMenuItemEditRedo() {
1056 if (jMenuItemEditRedo == null) {
1057 jMenuItemEditRedo = new JMenuItem();
1058 jMenuItemEditRedo.setText("Redo");
1059 jMenuItemEditRedo.setMnemonic('R');
1060 jMenuItemEditRedo.setEnabled(false);
1061 jMenuItemEditRedo.setVisible(false);
1062 jMenuItemEditRedo.addActionListener(this);
1063 }
1064 return jMenuItemEditRedo;
1065 }
1066
1067 /**
1068 This method initializes jMenuItemEditCut
1069
1070 @return javax.swing.JMenuItem
1071
1072 **/
1073 private JMenuItem getJMenuItemEditCut() {
1074 if (jMenuItemEditCut == null) {
1075 jMenuItemEditCut = new JMenuItem();
1076 jMenuItemEditCut.setText("Cut");
1077 jMenuItemEditCut.setMnemonic('t');
1078 jMenuItemEditCut.setEnabled(false);
1079 jMenuItemEditCut.setVisible(false);
1080 jMenuItemEditCut.addActionListener(this);
1081 }
1082 return jMenuItemEditCut;
1083 }
1084
1085 /**
1086 This method initializes jMenuItemEditCopy
1087
1088 @return javax.swing.JMenuItem
1089
1090 **/
1091 private JMenuItem getJMenuItemEditCopy() {
1092 if (jMenuItemEditCopy == null) {
1093 jMenuItemEditCopy = new JMenuItem();
1094 jMenuItemEditCopy.setText("Copy");
1095 jMenuItemEditCopy.setMnemonic('C');
1096 jMenuItemEditCopy.setEnabled(false);
1097 jMenuItemEditCopy.setVisible(false);
1098 jMenuItemEditCopy.addActionListener(this);
1099 }
1100 return jMenuItemEditCopy;
1101 }
1102
1103 /**
1104 This method initializes jMenuItemEditPaste
1105
1106 return javax.swing.JMenuItem
1107
1108 **/
1109 private JMenuItem getJMenuItemEditPaste() {
1110 if (jMenuItemEditPaste == null) {
1111 jMenuItemEditPaste = new JMenuItem();
1112 jMenuItemEditPaste.setText("Paste");
1113 jMenuItemEditPaste.setMnemonic('P');
1114 jMenuItemEditPaste.setEnabled(false);
1115 jMenuItemEditPaste.setVisible(false);
1116 jMenuItemEditPaste.addActionListener(this);
1117 }
1118 return jMenuItemEditPaste;
1119 }
1120
1121 /**
1122 This method initializes jMenuItem
1123
1124 @return javax.swing.JMenuItem
1125
1126 **/
1127 private JMenuItem getJMenuItemEditSelectAll() {
1128 if (jMenuItemEditSelectAll == null) {
1129 jMenuItemEditSelectAll = new JMenuItem();
1130 jMenuItemEditSelectAll.setText("Select All");
1131 jMenuItemEditSelectAll.setMnemonic('A');
1132 jMenuItemEditSelectAll.setEnabled(false);
1133 jMenuItemEditSelectAll.setVisible(false);
1134 jMenuItemEditSelectAll.addActionListener(this);
1135 }
1136 return jMenuItemEditSelectAll;
1137 }
1138
1139 /**
1140 This method initializes jMenuItemEditFindNext
1141
1142 @return javax.swing.JMenuItem
1143
1144 **/
1145 private JMenuItem getJMenuItemEditFindNext() {
1146 if (jMenuItemEditFindNext == null) {
1147 jMenuItemEditFindNext = new JMenuItem();
1148 jMenuItemEditFindNext.setText("Find Next");
1149 jMenuItemEditFindNext.setMnemonic('n');
1150 jMenuItemEditFindNext.setEnabled(false);
1151 jMenuItemEditFindNext.setVisible(false);
1152 jMenuItemEditFindNext.addActionListener(this);
1153 }
1154 return jMenuItemEditFindNext;
1155 }
1156
1157 /**
1158 This method initializes jMenuView
1159
1160 @return javax.swing.JMenu
1161
1162 **/
1163 private JMenu getJMenuView() {
1164 if (jMenuView == null) {
1165 //
1166 // Set jMenuView's attributes
1167 //
1168 jMenuView = new JMenu();
1169 jMenuView.setText("View");
1170 jMenuView.setMnemonic('V');
1171 jMenuView.setVisible(false);
1172
1173 //
1174 // Add sub menu items
1175 //
1176 jMenuView.add(getJMenuViewToolbars());
1177 jMenuView.add(getJMenuItemViewAdvanced());
1178 jMenuView.add(getJMenuItemViewStandard());
1179 jMenuView.add(getJMenuItemViewXML());
1180 }
1181 return jMenuView;
1182 }
1183
1184 /**
1185 This method initializes jMenuViewToolbars
1186
1187 @return javax.swing.JMenu
1188
1189 **/
1190 private JMenu getJMenuViewToolbars() {
1191 if (jMenuViewToolbars == null) {
1192 jMenuViewToolbars = new JMenu();
1193 jMenuViewToolbars.setText("Toolbars");
1194 jMenuViewToolbars.setMnemonic('T');
1195
1196 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsFile());
1197 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsEdit());
1198 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsWindow());
1199 }
1200 return jMenuViewToolbars;
1201 }
1202
1203 /**
1204 This method initializes jCheckBoxMenuItemViewToolbarsFile
1205
1206 @return javax.swing.JCheckBoxMenuItem
1207
1208 **/
1209 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsFile() {
1210 if (jCheckBoxMenuItemViewToolbarsFile == null) {
1211 jCheckBoxMenuItemViewToolbarsFile = new JCheckBoxMenuItem();
1212 jCheckBoxMenuItemViewToolbarsFile.setText("File");
1213 jCheckBoxMenuItemViewToolbarsFile.setEnabled(false);
1214 jCheckBoxMenuItemViewToolbarsFile.addActionListener(this);
1215 }
1216 return jCheckBoxMenuItemViewToolbarsFile;
1217 }
1218
1219 /**
1220 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1221
1222 @return javax.swing.JCheckBoxMenuItem
1223
1224 **/
1225 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsEdit() {
1226 if (jCheckBoxMenuItemViewToolbarsEdit == null) {
1227 jCheckBoxMenuItemViewToolbarsEdit = new JCheckBoxMenuItem();
1228 jCheckBoxMenuItemViewToolbarsEdit.setText("Edit");
1229 jCheckBoxMenuItemViewToolbarsEdit.setEnabled(false);
1230 jCheckBoxMenuItemViewToolbarsEdit.addActionListener(this);
1231 }
1232 return jCheckBoxMenuItemViewToolbarsEdit;
1233 }
1234
1235 /**
1236 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1237
1238 @return javax.swing.JCheckBoxMenuItem
1239
1240 **/
1241 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsWindow() {
1242 if (jCheckBoxMenuItemViewToolbarsWindow == null) {
1243 jCheckBoxMenuItemViewToolbarsWindow = new JCheckBoxMenuItem();
1244 jCheckBoxMenuItemViewToolbarsWindow.setText("Window");
1245 jCheckBoxMenuItemViewToolbarsWindow.setEnabled(false);
1246 jCheckBoxMenuItemViewToolbarsWindow.addActionListener(this);
1247 }
1248 return jCheckBoxMenuItemViewToolbarsWindow;
1249 }
1250
1251 /**
1252 This method initializes jMenuItemStandard
1253
1254 @return javax.swing.JMenuItem
1255
1256 **/
1257 private JMenuItem getJMenuItemViewStandard() {
1258 if (jMenuItemViewStandard == null) {
1259 jMenuItemViewStandard = new JMenuItem();
1260 jMenuItemViewStandard.setText("Standard");
1261 jMenuItemViewStandard.setMnemonic('S');
1262 jMenuItemViewStandard.setEnabled(false);
1263 jMenuItemViewStandard.addActionListener(this);
1264 }
1265 return jMenuItemViewStandard;
1266 }
1267
1268 /**
1269 This method initializes jMenuItemAdvanced
1270
1271 @return javax.swing.JMenuItem
1272
1273 **/
1274 private JMenuItem getJMenuItemViewAdvanced() {
1275 if (jMenuItemViewAdvanced == null) {
1276 jMenuItemViewAdvanced = new JMenuItem();
1277 jMenuItemViewAdvanced.setText("Advanced");
1278 jMenuItemViewAdvanced.setMnemonic('A');
1279 jMenuItemViewAdvanced.setEnabled(false);
1280 jMenuItemViewAdvanced.addActionListener(this);
1281 }
1282 return jMenuItemViewAdvanced;
1283 }
1284
1285 /**
1286 This method initializes jMenuProject
1287
1288 @return javax.swing.JMenu
1289
1290 **/
1291 private JMenu getJMenuProject() {
1292 if (jMenuProject == null) {
1293 //
1294 // Set jMenuProject's attributes
1295 //
1296 jMenuProject = new JMenu();
1297 jMenuProject.setText("Project");
1298 jMenuProject.setMnemonic('P');
1299
1300 //
1301 // Add sub menu items
1302 //
1303 jMenuProject.add(getJMenuItemProjectAdmin());
1304
1305 jMenuProject.add(getJMenuItemProjectChangeWorkspace());
1306 jMenuProject.addSeparator();
1307
1308 jMenuProject.add(getJMenuItemProjectCreateFar());
1309 jMenuProject.add(getJMenuItemProjectInstallFar());
1310 jMenuProject.add(getJMenuItemProjectUpdateFar());
1311 jMenuProject.add(getJMenuItemProjectRemoveFar());
1312
1313 }
1314 return jMenuProject;
1315 }
1316
1317 /**
1318 This method initializes jMenuItemProjectAdmin
1319
1320 @return javax.swing.JMenuItem
1321
1322 **/
1323 private JMenuItem getJMenuItemProjectAdmin() {
1324 if (jMenuItemProjectAdmin == null) {
1325 jMenuItemProjectAdmin = new JMenuItem();
1326 jMenuItemProjectAdmin.setText("Admin...");
1327 jMenuItemProjectAdmin.setMnemonic('A');
1328 jMenuItemProjectAdmin.setEnabled(false);
1329 jMenuItemProjectAdmin.addActionListener(this);
1330 jMenuItemProjectAdmin.setVisible(false);
1331 }
1332 return jMenuItemProjectAdmin;
1333 }
1334
1335 /**
1336 This method initializes jMenuItemProjectChangeWorkspace
1337
1338 @return javax.swing.JMenuItem
1339
1340 **/
1341 private JMenuItem getJMenuItemProjectChangeWorkspace() {
1342 if (jMenuItemProjectChangeWorkspace == null) {
1343 jMenuItemProjectChangeWorkspace = new JMenuItem();
1344 jMenuItemProjectChangeWorkspace.setText("Change WORKSPACE...");
1345 jMenuItemProjectChangeWorkspace.setMnemonic('W');
1346 jMenuItemProjectChangeWorkspace.setEnabled(true);
1347 jMenuItemProjectChangeWorkspace.addActionListener(this);
1348 }
1349 return jMenuItemProjectChangeWorkspace;
1350 }
1351
1352 /**
1353 This method initializes jMenuProjectBuildPreferences
1354
1355 @return javax.swing.JMenu
1356
1357 **/
1358 private JMenuItem getJMenuItemToolsBuildPreferences() {
1359 if (jMenuItemToolsBuildPreferences == null) {
1360 jMenuItemToolsBuildPreferences = new JMenuItem();
1361 jMenuItemToolsBuildPreferences.setText("Build Preferences...");
1362 jMenuItemToolsBuildPreferences.setMnemonic('P');
1363 jMenuItemToolsBuildPreferences.setEnabled(true);
1364 jMenuItemToolsBuildPreferences.addActionListener(this);
1365 }
1366 return jMenuItemToolsBuildPreferences;
1367 }
1368
1369 /**
1370 This method initializes jMenuItemToolsToolChainConfiguration
1371
1372 @return javax.swing.JMenuItem
1373
1374 **/
1375 private JMenuItem getJMenuItemToolsToolChainConfiguration() {
1376 if (jMenuItemToolsToolChainConfiguration == null) {
1377 jMenuItemToolsToolChainConfiguration = new JMenuItem();
1378 jMenuItemToolsToolChainConfiguration.setText("Tool Chain Configuration...");
1379 jMenuItemToolsToolChainConfiguration.setMnemonic('C');
1380 jMenuItemToolsToolChainConfiguration.addActionListener(this);
1381 }
1382 return jMenuItemToolsToolChainConfiguration;
1383 }
1384
1385 /**
1386 This method initializes jMenuItemToolsClone
1387
1388 @return javax.swing.JMenuItem
1389
1390 **/
1391 private JMenuItem getJMenuItemToolsClone() {
1392 if (jMenuItemToolsClone == null) {
1393 jMenuItemToolsClone = new JMenuItem();
1394 jMenuItemToolsClone.setText("Clone...");
1395 jMenuItemToolsClone.setMnemonic('l');
1396 jMenuItemToolsClone.setEnabled(true);
1397 jMenuItemToolsClone.addActionListener(this);
1398 }
1399 return jMenuItemToolsClone;
1400 }
1401
1402 /**
1403 This method initializes jMenuItemToolsCodeScan
1404
1405 @return javax.swing.JMenuItem
1406
1407 **/
1408 private JMenuItem getJMenuItemToolsCodeScan() {
1409 if (jMenuItemToolsCodeScan == null) {
1410 jMenuItemToolsCodeScan = new JMenuItem();
1411 jMenuItemToolsCodeScan.setText("Code Scan...");
1412 jMenuItemToolsCodeScan.setMnemonic('S');
1413 jMenuItemToolsCodeScan.setEnabled(false);
1414 jMenuItemToolsCodeScan.addActionListener(this);
1415 jMenuItemToolsCodeScan.setVisible(false);
1416 }
1417 return jMenuItemToolsCodeScan;
1418 }
1419
1420 /**
1421 This method initializes jMenuItemWindowSplitVertical
1422
1423 @return javax.swing.JMenuItem
1424
1425 **/
1426 private JMenuItem getJMenuItemWindowDisplaySide() {
1427 if (jMenuItemWindowDisplaySide == null) {
1428 jMenuItemWindowDisplaySide = new JMenuItem();
1429 jMenuItemWindowDisplaySide.setText("Display Side by Side");
1430 jMenuItemWindowDisplaySide.setMnemonic('S');
1431 jMenuItemWindowDisplaySide.setEnabled(false);
1432 jMenuItemWindowDisplaySide.addActionListener(this);
1433 }
1434 return jMenuItemWindowDisplaySide;
1435 }
1436
1437 /**
1438 This method initializes jMenuItemWindowSplitHorizontal
1439
1440 @return javax.swing.JMenuItem
1441
1442 **/
1443 private JMenuItem getJMenuItemWindowDisplayTopBottom() {
1444 if (jMenuItemWindowDisplayTopBottom == null) {
1445 jMenuItemWindowDisplayTopBottom = new JMenuItem();
1446 jMenuItemWindowDisplayTopBottom.setText("Display Top and Bottom");
1447 jMenuItemWindowDisplayTopBottom.setMnemonic('B');
1448 jMenuItemWindowDisplayTopBottom.setEnabled(false);
1449 jMenuItemWindowDisplayTopBottom.addActionListener(this);
1450 }
1451 return jMenuItemWindowDisplayTopBottom;
1452 }
1453
1454 /**
1455 This method initializes jMenuItemViewXML
1456
1457 @return javax.swing.JMenuItem
1458
1459 **/
1460 private JMenuItem getJMenuItemViewXML() {
1461 if (jMenuItemViewXML == null) {
1462 jMenuItemViewXML = new JMenuItem();
1463 jMenuItemViewXML.setText("XML");
1464 jMenuItemViewXML.setMnemonic('X');
1465 jMenuItemViewXML.setEnabled(false);
1466 jMenuItemViewXML.addActionListener(this);
1467 }
1468 return jMenuItemViewXML;
1469 }
1470
1471 /**
1472 This method initializes jMenuItemWindowTabView
1473
1474 @return javax.swing.JMenuItem
1475
1476 **/
1477 private JMenuItem getJMenuItemWindowTabView() {
1478 if (jMenuItemWindowTabView == null) {
1479 jMenuItemWindowTabView = new JMenuItem();
1480 jMenuItemWindowTabView.setText("Tab View");
1481 jMenuItemWindowTabView.setMnemonic('T');
1482 jMenuItemWindowTabView.setEnabled(false);
1483 jMenuItemWindowTabView.addActionListener(this);
1484 }
1485 return jMenuItemWindowTabView;
1486 }
1487
1488 /**
1489 This method initializes jMenuItemWindowSource
1490
1491 @return javax.swing.JMenuItem
1492
1493 **/
1494 private JMenuItem getJMenuItemWindowSource() {
1495 if (jMenuItemWindowSource == null) {
1496 jMenuItemWindowSource = new JMenuItem();
1497 jMenuItemWindowSource.setText("Source");
1498 jMenuItemWindowSource.setMnemonic('S');
1499 jMenuItemWindowSource.setEnabled(false);
1500 jMenuItemWindowSource.addActionListener(this);
1501 }
1502 return jMenuItemWindowSource;
1503 }
1504
1505 /**
1506 This method initializes jMenuItemWindowXML
1507
1508 @return javax.swing.JMenuItem
1509
1510 **/
1511 private JMenuItem getJMenuItemWindowXML() {
1512 if (jMenuItemWindowXML == null) {
1513 jMenuItemWindowXML = new JMenuItem();
1514 jMenuItemWindowXML.setText("XML");
1515 jMenuItemWindowXML.setMnemonic('X');
1516 jMenuItemWindowXML.setEnabled(false);
1517 jMenuItemWindowXML.addActionListener(this);
1518 }
1519 return jMenuItemWindowXML;
1520 }
1521
1522 /**
1523 This method initializes jMenuItemWindowPreferences
1524
1525 @return javax.swing.JMenuItem
1526
1527 **/
1528 private JMenuItem getJMenuItemWindowPreferences() {
1529 if (jMenuItemWindowPreferences == null) {
1530 jMenuItemWindowPreferences = new JMenuItem();
1531 jMenuItemWindowPreferences.setText("Preferences");
1532 jMenuItemWindowPreferences.setMnemonic('P');
1533 jMenuItemWindowPreferences.setEnabled(false);
1534 jMenuItemWindowPreferences.addActionListener(this);
1535 }
1536 return jMenuItemWindowPreferences;
1537 }
1538
1539 /**
1540 This method initializes jMenuItemHelpContents
1541
1542 @return javax.swing.JMenuItem
1543
1544 **/
1545 private JMenuItem getJMenuItemHelpContents() {
1546 if (jMenuItemHelpContents == null) {
1547 jMenuItemHelpContents = new JMenuItem();
1548 jMenuItemHelpContents.setText("Contents");
1549 jMenuItemHelpContents.setMnemonic('C');
1550 jMenuItemHelpContents.setEnabled(false);
1551 jMenuItemHelpContents.addActionListener(this);
1552 jMenuItemHelpContents.setVisible(false);
1553 }
1554 return jMenuItemHelpContents;
1555 }
1556
1557 /**
1558 This method initializes jMenuItemHelpIndex
1559
1560 @return javax.swing.JMenuItem
1561
1562 **/
1563 private JMenuItem getJMenuItemHelpIndex() {
1564 if (jMenuItemHelpIndex == null) {
1565 jMenuItemHelpIndex = new JMenuItem();
1566 jMenuItemHelpIndex.setText("Index");
1567 jMenuItemHelpIndex.setMnemonic('I');
1568 jMenuItemHelpIndex.setEnabled(false);
1569 jMenuItemHelpIndex.addActionListener(this);
1570 jMenuItemHelpIndex.setVisible(false);
1571 }
1572 return jMenuItemHelpIndex;
1573 }
1574
1575 /**
1576 This method initializes jMenuItemHelpSearch
1577
1578 @return javax.swing.JMenuItem
1579
1580 */
1581 private JMenuItem getJMenuItemHelpSearch() {
1582 if (jMenuItemHelpSearch == null) {
1583 jMenuItemHelpSearch = new JMenuItem();
1584 jMenuItemHelpSearch.setText("Search");
1585 jMenuItemHelpSearch.setMnemonic('S');
1586 jMenuItemHelpSearch.setEnabled(false);
1587 jMenuItemHelpSearch.addActionListener(this);
1588 jMenuItemHelpSearch.setVisible(false);
1589 }
1590 return jMenuItemHelpSearch;
1591 }
1592
1593 /**
1594 * This method initializes jMenuItemToolsInstallPackage
1595 *
1596 * @return javax.swing.JMenuItem
1597 */
1598 private JMenuItem getJMenuItemProjectInstallFar() {
1599 if (jMenuItemProjectInstallFar == null) {
1600 jMenuItemProjectInstallFar = new JMenuItem();
1601 jMenuItemProjectInstallFar.setText("Install FAR...");
1602 jMenuItemProjectInstallFar.setMnemonic('I');
1603 jMenuItemProjectInstallFar.setEnabled(true);
1604 jMenuItemProjectInstallFar.addActionListener(this);
1605 }
1606 return jMenuItemProjectInstallFar;
1607 }
1608
1609 /**
1610 * This method initializes jMenuItemToolsUpdatePackage
1611 *
1612 * @return javax.swing.JMenuItem
1613 */
1614 private JMenuItem getJMenuItemProjectUpdateFar() {
1615 if (jMenuItemProjectUpdateFar == null) {
1616 jMenuItemProjectUpdateFar = new JMenuItem();
1617 jMenuItemProjectUpdateFar.setText("Update FAR...");
1618 jMenuItemProjectUpdateFar.setMnemonic('U');
1619 jMenuItemProjectUpdateFar.setEnabled(true);
1620 jMenuItemProjectUpdateFar.addActionListener(this);
1621 jMenuItemProjectUpdateFar.setVisible(true);
1622 }
1623 return jMenuItemProjectUpdateFar;
1624 }
1625
1626 /**
1627 * This method initializes jMenuItemRemovePackage
1628 *
1629 * @return javax.swing.JMenuItem
1630 */
1631 private JMenuItem getJMenuItemProjectRemoveFar() {
1632 if (jMenuItemProjectRemoveFar == null) {
1633 jMenuItemProjectRemoveFar = new JMenuItem();
1634 jMenuItemProjectRemoveFar.setText("Remove FAR...");
1635 jMenuItemProjectRemoveFar.setMnemonic('R');
1636 jMenuItemProjectRemoveFar.setEnabled(true);
1637 jMenuItemProjectRemoveFar.addActionListener(this);
1638 }
1639 return jMenuItemProjectRemoveFar;
1640 }
1641
1642 /**
1643 * This method initializes jMenuItemProjectCreateFar
1644 *
1645 * @return javax.swing.JMenuItem
1646 */
1647 private JMenuItem getJMenuItemProjectCreateFar() {
1648 if (jMenuItemProjectCreateFar == null) {
1649 jMenuItemProjectCreateFar = new JMenuItem();
1650 jMenuItemProjectCreateFar.setText("Create FAR...");
1651 jMenuItemProjectCreateFar.setMnemonic('C');
1652 jMenuItemProjectCreateFar.addActionListener(this);
1653 }
1654 return jMenuItemProjectCreateFar;
1655 }
1656
1657 /**
1658 * This method initializes jMenuEditFind
1659 *
1660 * @return javax.swing.JMenu
1661 */
1662 private JMenu getJMenuEditFind() {
1663 if (jMenuEditFind == null) {
1664 jMenuEditFind = new JMenu();
1665 jMenuEditFind.setText("Find");
1666 jMenuEditFind.setMnemonic('F');
1667
1668 jMenuEditFind.add(getJMenuItemEditFindPpi());
1669 jMenuEditFind.add(getJMenuItemEditFindProtocol());
1670 jMenuEditFind.add(getJMenuItemEditFindGuid());
1671 jMenuEditFind.add(getJMenuItemEditFindPcd());
1672 jMenuEditFind.add(getJMenuItemEditFindLibraryClass());
1673 jMenuEditFind.add(getJMenuItemEditFindLibraryInstance());
1674 }
1675 return jMenuEditFind;
1676 }
1677
1678 /**
1679 * This method initializes jMenuItemEditFindPcd
1680 *
1681 * @return javax.swing.JMenuItem
1682 */
1683 private JMenuItem getJMenuItemEditFindPcd() {
1684 if (jMenuItemEditFindPcd == null) {
1685 jMenuItemEditFindPcd = new JMenuItem();
1686 jMenuItemEditFindPcd.setText("All PCD entries");
1687 jMenuItemEditFindPcd.setMnemonic('P');
1688 jMenuItemEditFindPcd.addActionListener(this);
1689 }
1690 return jMenuItemEditFindPcd;
1691 }
1692
1693 /**
1694 * This method initializes jMenuItemEditFindLibraryClass
1695 *
1696 * @return javax.swing.JMenuItem
1697 */
1698 private JMenuItem getJMenuItemEditFindLibraryClass() {
1699 if (jMenuItemEditFindLibraryClass == null) {
1700 jMenuItemEditFindLibraryClass = new JMenuItem();
1701 jMenuItemEditFindLibraryClass.setText("All Library Classes");
1702 jMenuItemEditFindLibraryClass.setMnemonic('C');
1703 jMenuItemEditFindLibraryClass.addActionListener(this);
1704 }
1705 return jMenuItemEditFindLibraryClass;
1706 }
1707
1708 /**
1709 * This method initializes jMenuItemEditFindPpi
1710 *
1711 * @return javax.swing.JMenuItem
1712 */
1713 private JMenuItem getJMenuItemEditFindPpi() {
1714 if (jMenuItemEditFindPpi == null) {
1715 jMenuItemEditFindPpi = new JMenuItem();
1716 jMenuItemEditFindPpi.setText("All PPIs");
1717 jMenuItemEditFindPpi.setMnemonic('I');
1718 jMenuItemEditFindPpi.addActionListener(this);
1719 }
1720 return jMenuItemEditFindPpi;
1721 }
1722
1723 /**
1724 * This method initializes jMenuItemEditFindProtocol
1725 *
1726 * @return javax.swing.JMenuItem
1727 */
1728 private JMenuItem getJMenuItemEditFindProtocol() {
1729 if (jMenuItemEditFindProtocol == null) {
1730 jMenuItemEditFindProtocol = new JMenuItem();
1731 jMenuItemEditFindProtocol.setText("All Protocols");
1732 jMenuItemEditFindProtocol.setMnemonic('r');
1733 jMenuItemEditFindProtocol.addActionListener(this);
1734 }
1735 return jMenuItemEditFindProtocol;
1736 }
1737
1738 /**
1739 * This method initializes jMenuItemEditFindGuid
1740 *
1741 * @return javax.swing.JMenuItem
1742 */
1743 private JMenuItem getJMenuItemEditFindGuid() {
1744 if (jMenuItemEditFindGuid == null) {
1745 jMenuItemEditFindGuid = new JMenuItem();
1746 jMenuItemEditFindGuid.setText("All GUIDs");
1747 jMenuItemEditFindGuid.setMnemonic('G');
1748 jMenuItemEditFindGuid.addActionListener(this);
1749 }
1750 return jMenuItemEditFindGuid;
1751 }
1752
1753 /**
1754 * This method initializes jMenuItemEditFindLibraryInstance
1755 *
1756 * @return javax.swing.JMenuItem
1757 */
1758 private JMenuItem getJMenuItemEditFindLibraryInstance() {
1759 if (jMenuItemEditFindLibraryInstance == null) {
1760 jMenuItemEditFindLibraryInstance = new JMenuItem();
1761 jMenuItemEditFindLibraryInstance.setText("All Library Instances");
1762 jMenuItemEditFindLibraryInstance.setMnemonic('n');
1763 jMenuItemEditFindLibraryInstance.addActionListener(this);
1764 jMenuItemEditFindLibraryInstance.setVisible(false);
1765 }
1766 return jMenuItemEditFindLibraryInstance;
1767 }
1768
1769 /**
1770 * This method initializes jMenuItemProjectGenerateGuidsXref
1771 *
1772 * @return javax.swing.JMenuItem
1773 */
1774 private JMenuItem getJMenuItemToolsGenerateGuidsXref() {
1775 if (jMenuItemToolsGenerateGuidsXref == null) {
1776 jMenuItemToolsGenerateGuidsXref = new JMenuItem();
1777 jMenuItemToolsGenerateGuidsXref.setText("Generate guids.xref...");
1778 jMenuItemToolsGenerateGuidsXref.setMnemonic('G');
1779 jMenuItemToolsGenerateGuidsXref.addActionListener(this);
1780 }
1781 return jMenuItemToolsGenerateGuidsXref;
1782 }
1783
1784 /* (non-Javadoc)
1785 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1786 *
1787 * Main class, start the GUI
1788 *
1789 */
1790 public static void main(String[] args) {
1791 FrameworkWizardUI module = FrameworkWizardUI.getInstance();
1792 module.setVisible(true);
1793 }
1794
1795 /**
1796 This is the default constructor
1797
1798 **/
1799 public FrameworkWizardUI() {
1800 super();
1801 init();
1802 }
1803
1804 /**
1805 This method initializes this
1806
1807
1808 **/
1809 private void init() {
1810 //
1811 // Set current workspace and check
1812 // Check if exists WORKSPACE
1813 //
1814 Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));
1815 this.checkWorkspace();
1816
1817 //
1818 // Show splash screen
1819 //
1820 SplashScreen ss = new SplashScreen();
1821 ss.setVisible(true);
1822
1823 //
1824 // Init Global Data
1825 //
1826 GlobalData.init();
1827
1828 //
1829 // Close splash screen
1830 //
1831 ss.dispose();
1832
1833 //
1834 // Init the frame
1835 //
1836 this.setSize(DataType.MAIN_FRAME_PREFERRED_SIZE_WIDTH, DataType.MAIN_FRAME_PREFERRED_SIZE_HEIGHT);
1837 this.setResizable(true);
1838 this.setJMenuBar(getjJMenuBar());
1839 this.setContentPane(getJContentPane());
1840 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["
1841 + Workspace.getCurrentWorkspace() + "]");
1842 this.setExitType(1);
1843
1844 //
1845 // max the window
1846 //
1847 this.setExtendedState(JFrame.MAXIMIZED_BOTH);
1848 }
1849
1850 /**
1851 This method initializes jContentPane
1852
1853 @return javax.swing.JPanel jContentPane
1854
1855 **/
1856 private JPanel getJContentPane() {
1857 if (jContentPane == null) {
1858 jContentPane = new JPanel();
1859 jContentPane.setLayout(null);
1860 jContentPane.add(getJPanelOperation(), null);
1861 jContentPane.add(getJSplitPane(), null);
1862 }
1863 return jContentPane;
1864 }
1865
1866 /* (non-Javadoc)
1867 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1868 *
1869 * Override actionPerformed to listen all actions
1870 *
1871 */
1872 public void actionPerformed(ActionEvent arg0) {
1873 //
1874 // Operations of Menu
1875 //
1876 if (arg0.getSource() == this.jMenuItemFileNew) {
1877 this.fileNew();
1878 }
1879
1880 if (arg0.getSource() == this.jMenuItemFileOpen) {
1881 this.open();
1882 }
1883
1884 if (arg0.getSource() == this.jMenuItemFileClose) {
1885 this.close();
1886 }
1887
1888 if (arg0.getSource() == this.jMenuItemFileCloseAll) {
1889 this.closeAll();
1890 this.makeEmptyTree();
1891 }
1892
1893 if (arg0.getSource() == this.jMenuItemFileSave) {
1894 this.save();
1895 }
1896
1897 if (arg0.getSource() == this.jMenuItemFileSaveAs) {
1898 this.saveAs();
1899 }
1900
1901 if (arg0.getSource() == this.jMenuItemFileSaveAll) {
1902 this.saveAll();
1903 }
1904
1905 if (arg0.getSource() == this.jMenuItemFileRefresh) {
1906 if (this.closeAll() == 0) {
1907 this.refresh();
1908 this.makeEmptyTree();
1909 }
1910 }
1911
1912 if (arg0.getSource() == this.jMenuItemFileExit) {
1913 this.exit();
1914 }
1915
1916 if (arg0.getSource() == this.jMenuItemEditFindPpi) {
1917 this.findPpi();
1918 }
1919
1920 if (arg0.getSource() == this.jMenuItemEditFindProtocol) {
1921 this.findProtocol();
1922 }
1923
1924 if (arg0.getSource() == this.jMenuItemEditFindGuid) {
1925 this.findGuid();
1926 }
1927
1928 if (arg0.getSource() == this.jMenuItemEditFindPcd) {
1929 this.findPcd();
1930 }
1931
1932 if (arg0.getSource() == this.jMenuItemEditFindLibraryClass) {
1933 this.findLibraryClass();
1934 }
1935
1936 if (arg0.getSource() == this.jMenuItemEditFindLibraryInstance) {
1937 this.findLibraryInstance();
1938 }
1939
1940 if (arg0.getSource() == jMenuItemToolsBuildPreferences) {
1941 configBuildPreferences();
1942 }
1943
1944 if (arg0.getSource() == this.jMenuItemProjectChangeWorkspace) {
1945 this.changeWorkspace();
1946 }
1947
1948 if (arg0.getSource() == this.jMenuItemProjectCreateFar) {
1949 this.createFar();
1950 }
1951
1952 if (arg0.getSource() == this.jMenuItemProjectInstallFar) {
1953 this.installFar();
1954 }
1955
1956 if (arg0.getSource() == this.jMenuItemProjectRemoveFar) {
1957 this.removeFar();
1958 }
1959
1960 if (arg0.getSource() == this.jMenuItemProjectUpdateFar) {
1961 this.updateFar();
1962 }
1963
1964 if (arg0.getSource() == this.jMenuItemToolsClone) {
1965 this.cloneItem();
1966 }
1967
1968 if (arg0.getSource() == this.jMenuItemToolsToolChainConfiguration) {
1969 this.setupToolChainConfiguration();
1970 }
1971
1972 if (arg0.getSource() == this.jMenuItemToolsGenerateGuidsXref) {
1973 this.generateGuidsXref();
1974 }
1975
1976 if (arg0.getSource() == this.jMenuItemHelpAbout) {
1977 About a = new About(this, true);
1978 int result = a.showDialog();
1979 if (result == DataType.RETURN_TYPE_OK) {
1980 a.dispose();
1981 }
1982 }
1983 }
1984
1985 /**
1986 Create an empty tree if no file is open
1987
1988 **/
1989 private void makeEmptyTree() {
1990 //
1991 // Make root
1992 //
1993 dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, false, null, null);
1994
1995 //
1996 // Make Module Description
1997 //
1998 dmtnModuleDescription = new IDefaultMutableTreeNode("Modules", IDefaultMutableTreeNode.MODULE_DESCRIPTION,
1999 false, null, dmtnRoot);
2000
2001 //
2002 // First add package
2003 //
2004 if (GlobalData.vPackageList.size() > 0) {
2005 for (int index = 0; index < GlobalData.vPackageList.size(); index++) {
2006 IDefaultMutableTreeNode dmtnModulePackage = null;
2007 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;
2008 IDefaultMutableTreeNode dmtnModulePackageModule = null;
2009
2010 dmtnModulePackage = new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index).getName(),
2011 IDefaultMutableTreeNode.MODULE_PACKAGE, false,
2012 GlobalData.vPackageList.elementAt(index),
2013 this.dmtnModuleDescription);
2014 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",
2015 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY,
2016 false, GlobalData.vPackageList.elementAt(index),
2017 this.dmtnModuleDescription);
2018 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module",
2019 IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,
2020 false, GlobalData.vPackageList.elementAt(index),
2021 this.dmtnModuleDescription);
2022 //
2023 // And then add each module in its package
2024 //
2025 Vector<ModuleIdentification> vModule = wt.getAllModules(GlobalData.vPackageList.elementAt(index));
2026 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {
2027 if (vModule.get(indexJ).isLibrary()) {
2028 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2029 IDefaultMutableTreeNode.MODULE, false,
2030 vModule.get(indexJ),
2031 this.dmtnModuleDescription));
2032 } else {
2033 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2034 IDefaultMutableTreeNode.MODULE, false,
2035 vModule.get(indexJ),
2036 this.dmtnModuleDescription));
2037 }
2038 }
2039 if (dmtnModulePackageModule.getChildCount() > 0) {
2040 dmtnModulePackage.add(dmtnModulePackageModule);
2041 }
2042 if (dmtnModulePackageLibrary.getChildCount() > 0) {
2043 dmtnModulePackage.add(dmtnModulePackageLibrary);
2044 }
2045
2046 dmtnModuleDescription.add(dmtnModulePackage);
2047 }
2048 }
2049
2050 //
2051 // Make Package Description
2052 //
2053 dmtnPackageDescription = new IDefaultMutableTreeNode("Packages", IDefaultMutableTreeNode.PACKAGE_DESCRIPTION,
2054 false, null, this.dmtnRoot);
2055 if (GlobalData.vPackageList.size() > 0) {
2056 for (int index = 0; index < GlobalData.vPackageList.size(); index++) {
2057 dmtnPackageDescription.add(new IDefaultMutableTreeNode(GlobalData.vPackageList.elementAt(index)
2058 .getName(),
2059 IDefaultMutableTreeNode.PACKAGE, false,
2060 GlobalData.vPackageList.elementAt(index),
2061 this.dmtnPackageDescription));
2062 }
2063 }
2064
2065 //
2066 // Make Platform Description
2067 //
2068 dmtnPlatformDescription = new IDefaultMutableTreeNode("Platforms",
2069 IDefaultMutableTreeNode.PLATFORM_DESCRIPTION, false,
2070 null, this.dmtnRoot);
2071 if (GlobalData.vPlatformList.size() > 0) {
2072 for (int index = 0; index < GlobalData.vPlatformList.size(); index++) {
2073 dmtnPlatformDescription.add(new IDefaultMutableTreeNode(GlobalData.vPlatformList.elementAt(index)
2074 .getName(),
2075 IDefaultMutableTreeNode.PLATFORM, false,
2076 GlobalData.vPlatformList.elementAt(index),
2077 this.dmtnPlatformDescription));
2078 }
2079 }
2080
2081 //
2082 // Add sub nodes to root node
2083 //
2084 dmtnRoot.add(dmtnModuleDescription);
2085 dmtnRoot.add(dmtnPackageDescription);
2086 dmtnRoot.add(dmtnPlatformDescription);
2087 iTree = new ITree(dmtnRoot);
2088 iTree.addMouseListener(this);
2089 iTree.addKeyListener(this);
2090 jScrollPaneTree.setViewportView(iTree);
2091 }
2092
2093 /* (non-Javadoc)
2094 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
2095 *
2096 * Override windowClosing to popup warning message to confirm quit
2097 *
2098 */
2099 public void windowClosing(WindowEvent arg0) {
2100 this.exit();
2101 }
2102
2103 /* (non-Javadoc)
2104 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
2105 *
2106 * Override mouseClicked to check if need display popup menu
2107 *
2108 */
2109 public void mouseClicked(MouseEvent arg0) {
2110 //
2111 // When double click
2112 //
2113 if (arg0.getClickCount() == 2) {
2114 doubleClickModuleTreeNode();
2115 }
2116 }
2117
2118 public void mouseEntered(MouseEvent arg0) {
2119 // TODO Auto-generated method stub
2120 }
2121
2122 public void mouseExited(MouseEvent arg0) {
2123 // TODO Auto-generated method stub
2124 }
2125
2126 public void mousePressed(MouseEvent arg0) {
2127 // TODO Auto-generated method stub
2128 }
2129
2130 public void mouseReleased(MouseEvent arg0) {
2131 // TODO Auto-generated method stub
2132 }
2133
2134 /**
2135 Remove all Internal Frame of Module Desktop Pane
2136
2137 **/
2138 private void cleanDesktopPaneModule() {
2139 if (jDesktopPaneModule != null) {
2140 JInternalFrame[] iif = this.jDesktopPaneModule.getAllFrames();
2141 for (int index = 0; index < iif.length; index++) {
2142 iif[index].dispose();
2143 }
2144 }
2145 }
2146
2147 /**
2148 Remove all Internal Frame of package Desktop Pane
2149
2150 **/
2151 private void cleanDesktopPanePackage() {
2152 if (jDesktopPanePlatform != null) {
2153 JInternalFrame[] iif = this.jDesktopPanePackage.getAllFrames();
2154 for (int index = 0; index < iif.length; index++) {
2155 iif[index].dispose();
2156 }
2157 }
2158 }
2159
2160 /**
2161 Remove all Internal Frame of platform Desktop Pane
2162
2163 **/
2164 private void cleanDesktopPanePlatform() {
2165 if (jDesktopPanePlatform != null) {
2166 JInternalFrame[] iif = this.jDesktopPanePlatform.getAllFrames();
2167 for (int index = 0; index < iif.length; index++) {
2168 iif[index].dispose();
2169 }
2170 }
2171 }
2172
2173 /**
2174 Remove all Internal Frame of all Desktop Panes
2175
2176 **/
2177 private void cleanDesktopPane() {
2178 cleanDesktopPaneModule();
2179 cleanDesktopPanePackage();
2180 cleanDesktopPanePlatform();
2181 }
2182
2183 /**
2184 Set file filter as input ext
2185
2186 @param ext
2187 @return
2188
2189 **/
2190 private int getNewFilePath(String ext) {
2191 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());
2192 fc.setAcceptAllFileFilterUsed(false);
2193 fc.addChoosableFileFilter(new IFileFilter(ext));
2194 return fc.showSaveDialog(new JPanel());
2195 }
2196
2197 /**
2198 Add a module to tree
2199
2200 @param mid The module node to be added
2201
2202 **/
2203 private void addModuleToTree(ModuleIdentification mid) {
2204 //
2205 // Add new MsaHeader node to the tree
2206 //
2207 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(mid.getName(), IDefaultMutableTreeNode.MODULE,
2208 false, mid, this.dmtnModuleDescription);
2209 //
2210 // First find the module belongs to which package
2211 //
2212 IDefaultMutableTreeNode packageNode = iTree.getNodeById(dmtnModuleDescription, mid.getPackageId(),
2213 IDefaultMutableTreeNode.MODULE_PACKAGE);
2214 //
2215 // To check if has module node or library node
2216 //
2217 IDefaultMutableTreeNode parentModuleNode = null;
2218 IDefaultMutableTreeNode parentLibraryNode = null;
2219 boolean hasModule = false;
2220 boolean hasLibrary = false;
2221 for (int index = 0; index < packageNode.getChildCount(); index++) {
2222 IDefaultMutableTreeNode iNode = (IDefaultMutableTreeNode) packageNode.getChildAt(index);
2223 if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY) {
2224 hasLibrary = true;
2225 parentLibraryNode = iNode;
2226 }
2227 if (iNode.getCategory() == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {
2228 hasModule = true;
2229 parentModuleNode = iNode;
2230 }
2231 }
2232
2233 //
2234 // If is a module
2235 //
2236 if (!mid.isLibrary()) {
2237 //
2238 // Create parent node first if has no parent node
2239 //
2240 if (!hasModule) {
2241 parentModuleNode = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,
2242 false, mid.getPackageId(), this.dmtnModuleDescription);
2243 iTree.addNode(packageNode, parentModuleNode);
2244 }
2245
2246 iTree.addNode(parentModuleNode, node);
2247 }
2248
2249 //
2250 // If is a Library
2251 //
2252 if (mid.isLibrary()) {
2253 //
2254 // Create parent node first if has no parent node
2255 //
2256 if (!hasLibrary) {
2257 parentLibraryNode = new IDefaultMutableTreeNode("Library",
2258 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,
2259 mid.getPackageId(), this.dmtnModuleDescription);
2260 iTree.addNode(packageNode, parentLibraryNode);
2261 }
2262
2263 iTree.addNode(parentLibraryNode, node);
2264 }
2265 }
2266
2267 /**
2268 Open Module
2269
2270 @param path input file path
2271
2272 **/
2273 private void openModule(String path, IDefaultMutableTreeNode belongNode) {
2274 ModuleIdentification id = GlobalData.openingModuleList.getIdByPath(path);
2275 if (id == null) {
2276 //
2277 // The module is not in existing packages
2278 //
2279 Log.wrn("Open Module", "The module does not belong to any package in the current workspace!");
2280 return;
2281 }
2282
2283 //
2284 // Make the node selected
2285 //
2286 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(belongNode, id, IDefaultMutableTreeNode.MODULE)));
2287
2288 //
2289 // Update opening Module list information
2290 //
2291 if (!iTree.getSelectNode().isOpening()) {
2292 //
2293 // Insert sub node of module
2294 //
2295 insertModuleTreeNode(id, belongNode);
2296 iTree.getSelectNode().setOpening(true);
2297
2298 //
2299 // Update opening module list
2300 //
2301 GlobalData.openingModuleList.setModuleOpen(id, true);
2302 Set<TreePath> temp = GlobalData.openingModuleList.getTreePathById(id);
2303 temp.add(iTree.getSelectionPath());
2304 GlobalData.openingModuleList.setTreePathById(id, temp);
2305 }
2306 //
2307 // Select msa header node and show it in editor panel
2308 //
2309 iTree
2310 .setSelectionPath(iTree
2311 .getPathOfNode(iTree
2312 .getNodeById(belongNode, id, IDefaultMutableTreeNode.MSA_HEADER)));
2313 showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, GlobalData.openingModuleList.getOpeningModuleById(id));
2314 this.currentOpeningModuleIndex = GlobalData.openingModuleList.findIndexOfListById(id);
2315 }
2316
2317 /**
2318 Open Package
2319
2320 @param path input file path
2321
2322 **/
2323 private void openPackage(String path) {
2324 PackageIdentification id = GlobalData.openingPackageList.getIdByPath(path);
2325 if (id == null) {
2326 //
2327 // The package is not in current workspace
2328 //
2329 Log.wrn("Open Package", "The package has not been installed in the current workspace!");
2330 return;
2331 }
2332
2333 //
2334 // Make the node selected
2335 //
2336 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,
2337 IDefaultMutableTreeNode.PACKAGE)));
2338 //
2339 // Update opening package list information
2340 //
2341 if (!GlobalData.openingPackageList.getPackageOpen(id)) {
2342 //
2343 // Insert sub node of module
2344 //
2345 insertPackageTreeNode(id);
2346 iTree.getSelectNode().setOpening(true);
2347
2348 //
2349 // Update opening module list
2350 //
2351 GlobalData.openingPackageList.setPackageOpen(id, true);
2352 Set<TreePath> temp = GlobalData.openingPackageList.getTreePathById(id);
2353 temp.add(iTree.getSelectionPath());
2354 GlobalData.openingPackageList.setTreePathById(id, temp);
2355 }
2356 //
2357 // Show spd header in editor panel
2358 //
2359 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,
2360 IDefaultMutableTreeNode.SPD_HEADER)));
2361 showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, GlobalData.openingPackageList.getOpeningPackageById(id));
2362 this.currentOpeningPackageIndex = GlobalData.openingPackageList.findIndexOfListById(id);
2363 }
2364
2365 /**
2366 Open Package
2367
2368 @param path input file path
2369
2370 **/
2371 private void openPlatform(String path) {
2372 PlatformIdentification id = GlobalData.openingPlatformList.getIdByPath(path);
2373 if (id == null) {
2374 //
2375 // The platform is not in current workspace
2376 //
2377 Log.wrn("Open Platform", "The platform has not been installed in the current workspace!");
2378 return;
2379 }
2380
2381 //
2382 // Make the node selected
2383 //
2384 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,
2385 IDefaultMutableTreeNode.PLATFORM)));
2386 //
2387 // Update opening package list information
2388 //
2389 if (!GlobalData.openingPlatformList.getPlatformOpen(id)) {
2390 //
2391 // Insert sub node of module
2392 //
2393 insertPlatformTreeNode(id);
2394 iTree.getSelectNode().setOpening(true);
2395
2396 //
2397 // Update opening module list
2398 //
2399 GlobalData.openingPlatformList.setPlatformOpen(id, true);
2400 Set<TreePath> temp = GlobalData.openingPlatformList.getTreePathById(id);
2401 temp.add(iTree.getSelectionPath());
2402 GlobalData.openingPlatformList.setTreePathById(id, temp);
2403 }
2404 //
2405 // Show fpd header in editor panel
2406 //
2407 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,
2408 IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));
2409 showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER,
2410 GlobalData.openingPlatformList.getOpeningPlatformById(id));
2411 this.currentOpeningPlatformIndex = GlobalData.openingPlatformList.findIndexOfListById(id);
2412 }
2413
2414 /**
2415 Save module
2416
2417 **/
2418 private void saveModule(int index) {
2419 OpeningModuleType omt = GlobalData.openingModuleList.getOpeningModuleByIndex(index);
2420 if (omt.isNew()) {
2421 if (getNewFilePath(DataType.MODULE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2422 return;
2423 }
2424 }
2425 try {
2426 SaveFile.saveMsaFile(omt.getId().getPath(), omt.getXmlMsa());
2427 GlobalData.openingModuleList.setNew(omt.getId(), false);
2428 GlobalData.openingModuleList.setModuleSaved(omt.getId(), true);
2429 } catch (Exception e) {
2430 Log.wrn("Save Module", e.getMessage());
2431 Log.err("Save Module", e.getMessage());
2432 }
2433 }
2434
2435 /**
2436 Save package
2437
2438 **/
2439 private void savePackage(int index) {
2440 OpeningPackageType opt = GlobalData.openingPackageList.getOpeningPackageByIndex(index);
2441 if (opt.isNew()) {
2442 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2443 return;
2444 }
2445 }
2446 try {
2447 SaveFile.saveSpdFile(opt.getId().getPath(), opt.getXmlSpd());
2448 GlobalData.openingPackageList.setNew(opt.getId(), false);
2449 GlobalData.openingPackageList.setPackageSaved(opt.getId(), true);
2450 } catch (Exception e) {
2451 Log.wrn("Save Package", e.getMessage());
2452 Log.err("Save Package", e.getMessage());
2453 }
2454 }
2455
2456 /**
2457 Save platform
2458
2459 **/
2460 private void savePlatform(int index) {
2461 OpeningPlatformType opt = GlobalData.openingPlatformList.getOpeningPlatformByIndex(index);
2462 if (opt.isNew()) {
2463 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2464 return;
2465 }
2466 }
2467 try {
2468 SaveFile.saveFpdFile(opt.getId().getPath(), opt.getXmlFpd());
2469 GlobalData.openingPlatformList.setNew(opt.getId(), false);
2470 GlobalData.openingPlatformList.setPlatformSaved(opt.getId(), true);
2471 } catch (Exception e) {
2472 Log.wrn("Save Package", e.getMessage());
2473 Log.err("Save Package", e.getMessage());
2474 }
2475 }
2476
2477 public void componentResized(ComponentEvent arg0) {
2478 if (this.jSplitPane != null) {
2479 this.jSplitPane.setSize(this.getWidth() - DataType.MAIN_FRAME_WIDTH_SPACING,
2480 this.getHeight() - DataType.MAIN_FRAME_HEIGHT_SPACING);
2481 this.jSplitPane.validate();
2482 resizeDesktopPanel();
2483 }
2484 }
2485
2486 /**
2487 Resize JDesktopPanel
2488
2489 */
2490 private void resizeDesktopPanel() {
2491 resizeDesktopPanel(this.jDesktopPaneModule);
2492 resizeDesktopPanel(this.jDesktopPanePackage);
2493 resizeDesktopPanel(this.jDesktopPanePlatform);
2494 }
2495
2496 /**
2497 Resize JDesktopPanel
2498
2499 */
2500 private void resizeDesktopPanel(JDesktopPane jdk) {
2501 JInternalFrame[] iif = jdk.getAllFrames();
2502 for (int index = 0; index < iif.length; index++) {
2503 iif[index].setSize(jdk.getWidth(), jdk.getHeight());
2504 }
2505 }
2506
2507 private void insertModuleTreeNode(Identification id, IDefaultMutableTreeNode belongNode) {
2508 iTree.addNode(new IDefaultMutableTreeNode("Module Header", IDefaultMutableTreeNode.MSA_HEADER, true, id,
2509 belongNode));
2510 iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id,
2511 belongNode));
2512 iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2513 IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id,
2514 belongNode));
2515 iTree
2516 .addNode(new IDefaultMutableTreeNode("Package Dependencies",
2517 IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id, belongNode));
2518 iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id,
2519 belongNode));
2520 iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id, belongNode));
2521 iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id, belongNode));
2522 iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id, belongNode));
2523 iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id,
2524 belongNode));
2525 iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id,
2526 belongNode));
2527 iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id,
2528 belongNode));
2529 iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id,
2530 belongNode));
2531 iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id,
2532 belongNode));
2533 iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id, belongNode));
2534 iTree.addNode(new IDefaultMutableTreeNode("External Defintions", IDefaultMutableTreeNode.MSA_EXTERNS, true, id,
2535 belongNode));
2536 iTree.addNode(new IDefaultMutableTreeNode("Pcd Coded", IDefaultMutableTreeNode.MSA_PCDS, true, id, belongNode));
2537 }
2538
2539 private void insertPackageTreeNode(Identification id) {
2540 IDefaultMutableTreeNode idmtTemp = this.dmtnPackageDescription;
2541 iTree.addNode(new IDefaultMutableTreeNode("Package Header", IDefaultMutableTreeNode.SPD_HEADER, true, id,
2542 idmtTemp));
2543 iTree.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2544 IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id,
2545 idmtTemp));
2546 iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id,
2547 idmtTemp));
2548 iTree.addNode(new IDefaultMutableTreeNode("Package Includes", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,
2549 id, idmtTemp));
2550 iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,
2551 true, id, idmtTemp));
2552 iTree
2553 .addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2554 IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id, idmtTemp));
2555 iTree.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode.SPD_PPIDECLARATIONS,
2556 true, id, idmtTemp));
2557 iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,
2558 true, id, idmtTemp));
2559 //
2560 // Add modules in this package
2561 //
2562 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;
2563 IDefaultMutableTreeNode dmtnModulePackageModule = null;
2564
2565 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",
2566 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,
2567 id, idmtTemp);
2568 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,
2569 false, id, idmtTemp);
2570
2571 Vector<ModuleIdentification> vModule = wt.getAllModules(new PackageIdentification(id));
2572 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {
2573 if (vModule.get(indexJ).isLibrary()) {
2574 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2575 IDefaultMutableTreeNode.MODULE, false,
2576 vModule.get(indexJ), idmtTemp));
2577 } else {
2578 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2579 IDefaultMutableTreeNode.MODULE, false,
2580 vModule.get(indexJ), idmtTemp));
2581 }
2582 }
2583 if (dmtnModulePackageModule.getChildCount() > 0) {
2584 iTree.addNode(dmtnModulePackageModule);
2585 }
2586 if (dmtnModulePackageLibrary.getChildCount() > 0) {
2587 iTree.addNode(dmtnModulePackageLibrary);
2588 }
2589 }
2590
2591 private void insertPlatformTreeNode(Identification id) {
2592 IDefaultMutableTreeNode idmtTemp = this.dmtnPlatformDescription;
2593 iTree.addNode(new IDefaultMutableTreeNode("Platform Header", IDefaultMutableTreeNode.FPD_PLATFORMHEADER, true,
2594 id, idmtTemp));
2595 iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions",
2596 IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id, idmtTemp));
2597 iTree.addNode(new IDefaultMutableTreeNode("Flash Information", IDefaultMutableTreeNode.FPD_FLASH, true, id,
2598 idmtTemp));
2599 iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,
2600 true, id, idmtTemp));
2601 iTree.addNode(new IDefaultMutableTreeNode("Dynamic PCD Build Declarations",
2602 IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id,
2603 idmtTemp));
2604 iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id,
2605 idmtTemp));
2606
2607 //
2608 // Add modules in this platform
2609 //
2610 IDefaultMutableTreeNode dmtnModulePackageLibrary = null;
2611 IDefaultMutableTreeNode dmtnModulePackageModule = null;
2612
2613 dmtnModulePackageLibrary = new IDefaultMutableTreeNode("Library",
2614 IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY, false,
2615 id, idmtTemp);
2616 dmtnModulePackageModule = new IDefaultMutableTreeNode("Module", IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE,
2617 false, id, idmtTemp);
2618
2619 Vector<ModuleIdentification> vModule = wt.getAllModules(new PlatformIdentification(id));
2620 for (int indexJ = 0; indexJ < vModule.size(); indexJ++) {
2621 if (vModule.get(indexJ).isLibrary()) {
2622 dmtnModulePackageLibrary.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2623 IDefaultMutableTreeNode.MODULE, false,
2624 vModule.get(indexJ), idmtTemp));
2625 } else {
2626 dmtnModulePackageModule.add(new IDefaultMutableTreeNode(vModule.get(indexJ).getName(),
2627 IDefaultMutableTreeNode.MODULE, false,
2628 vModule.get(indexJ), idmtTemp));
2629 }
2630 }
2631 if (dmtnModulePackageModule.getChildCount() > 0) {
2632 iTree.addNode(dmtnModulePackageModule);
2633 }
2634 if (dmtnModulePackageLibrary.getChildCount() > 0) {
2635 iTree.addNode(dmtnModulePackageLibrary);
2636 }
2637 }
2638
2639 /**
2640 Operate when double click a tree node
2641
2642 **/
2643 private void doubleClickModuleTreeNode() {
2644 Identification id = null;
2645 int intCategory = -1;
2646 String path = null;
2647 IDefaultMutableTreeNode belongNode = null;
2648
2649 try {
2650 //
2651 // Get selected tree node
2652 //
2653 if (iTree.getSelectNode() != null) {
2654 id = iTree.getSelectNode().getId();
2655 }
2656
2657 //
2658 // If id is null, return directly
2659 //
2660 if (id == null) {
2661 return;
2662 }
2663
2664 intCategory = iTree.getSelectCategory();
2665 belongNode = iTree.getSelectNode().getBelongNode();
2666
2667 //
2668 // If the node is not opened yet
2669 // Insert top level elements first
2670 //
2671 if (intCategory == IDefaultMutableTreeNode.MODULE) {
2672 path = iTree.getSelectNode().getId().getPath();
2673 openModule(path, belongNode);
2674 return;
2675 }
2676 if (intCategory == IDefaultMutableTreeNode.PACKAGE) {
2677 path = iTree.getSelectNode().getId().getPath();
2678 openPackage(path);
2679 return;
2680 }
2681 if (intCategory == IDefaultMutableTreeNode.PLATFORM) {
2682 path = iTree.getSelectNode().getId().getPath();
2683 openPlatform(path);
2684 return;
2685 }
2686
2687 //
2688 // Show editor panel
2689 //
2690 if (intCategory >= IDefaultMutableTreeNode.MSA_HEADER && intCategory < IDefaultMutableTreeNode.SPD_HEADER) {
2691 showModuleElement(intCategory,
2692 GlobalData.openingModuleList.getOpeningModuleById(new ModuleIdentification(id)));
2693 this.currentOpeningModuleIndex = GlobalData.openingModuleList
2694 .findIndexOfListById(new ModuleIdentification(
2695 id));
2696 }
2697 if (intCategory >= IDefaultMutableTreeNode.SPD_HEADER
2698 && intCategory < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2699 showPackageElement(intCategory,
2700 GlobalData.openingPackageList.getOpeningPackageById(new PackageIdentification(id)));
2701 this.currentOpeningPackageIndex = GlobalData.openingPackageList
2702 .findIndexOfListById(new PackageIdentification(
2703 id));
2704 }
2705 if (intCategory >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2706 showPlatformElement(
2707 intCategory,
2708 GlobalData.openingPlatformList
2709 .getOpeningPlatformById(new PlatformIdentification(id)));
2710 this.currentOpeningPlatformIndex = GlobalData.openingPlatformList
2711 .findIndexOfListById(new PlatformIdentification(
2712 id));
2713 }
2714 } catch (Exception e) {
2715 Log.err("double click category: " + intCategory);
2716 Log.err("double click belong node: " + belongNode.toString());
2717 Log.err("double click id path: " + id);
2718 Log.err("double click exception: " + e.getMessage());
2719 }
2720 }
2721
2722 /**
2723 Show content of editor panel via selected element
2724
2725 @param elementType
2726 @param fpd
2727
2728 **/
2729 private void showPlatformElement(int elementType, OpeningPlatformType fpd) {
2730 this.cleanDesktopPanePlatform();
2731
2732 switch (elementType) {
2733 case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:
2734 FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd);
2735 getJDesktopPanePlatform().add(frmFpdPlatformDefs, 1);
2736 break;
2737 case IDefaultMutableTreeNode.FPD_PLATFORMHEADER:
2738 FpdHeader frmFpdHeader = new FpdHeader(fpd);
2739 getJDesktopPanePlatform().add(frmFpdHeader, 1);
2740 break;
2741 case IDefaultMutableTreeNode.FPD_FLASH:
2742 FpdFlash frmFpdFlash = new FpdFlash(fpd);
2743 getJDesktopPanePlatform().add(frmFpdFlash, 1);
2744 break;
2745 case IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES:
2746 FpdFrameworkModules frmFpdFrameworkModules = new FpdFrameworkModules(fpd);
2747 getJDesktopPanePlatform().add(frmFpdFrameworkModules, 1);
2748 break;
2749 case IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS:
2750 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions = new FpdDynamicPcdBuildDefinitions(fpd);
2751 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions, 1);
2752 break;
2753 case IDefaultMutableTreeNode.FPD_BUILDOPTIONS:
2754 FpdBuildOptions frmFpdBuildOptions = new FpdBuildOptions(fpd);
2755 getJDesktopPanePlatform().add(frmFpdBuildOptions, 1);
2756 break;
2757 }
2758 this.jTabbedPaneEditor.setSelectedIndex(2);
2759 resizeDesktopPanel();
2760 }
2761
2762 /**
2763 Show content of editor panel via selected element
2764
2765 @param elementType
2766 @param spd
2767
2768 */
2769 private void showPackageElement(int elementType, OpeningPackageType spd) {
2770 this.cleanDesktopPanePackage();
2771 Tools.dirForNewSpd = spd.getId().getPath();
2772 switch (elementType) {
2773 case IDefaultMutableTreeNode.SPD_HEADER:
2774 SpdHeader frmSpdHeader = new SpdHeader(spd);
2775 getJDesktopPanePackage().add(frmSpdHeader, 1);
2776 break;
2777 case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:
2778 SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd);
2779 getJDesktopPanePackage().add(frmSlcd, 1);
2780 break;
2781 case IDefaultMutableTreeNode.SPD_MSAFILES:
2782 SpdMsaFiles frmSmf = new SpdMsaFiles(spd);
2783 getJDesktopPanePackage().add(frmSmf, 1);
2784 break;
2785 case IDefaultMutableTreeNode.SPD_PACKAGEHEADERS:
2786 SpdPackageHeaders frmSph = new SpdPackageHeaders(spd);
2787 getJDesktopPanePackage().add(frmSph, 1);
2788 break;
2789 case IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS:
2790 SpdGuidDecls frmSgd = new SpdGuidDecls(spd);
2791 getJDesktopPanePackage().add(frmSgd, 1);
2792 break;
2793 case IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS:
2794 SpdProtocolDecls frmSprod = new SpdProtocolDecls(spd);
2795 getJDesktopPanePackage().add(frmSprod, 1);
2796 break;
2797 case IDefaultMutableTreeNode.SPD_PPIDECLARATIONS:
2798 SpdPpiDecls frmSppid = new SpdPpiDecls(spd);
2799 getJDesktopPanePackage().add(frmSppid, 1);
2800 break;
2801 case IDefaultMutableTreeNode.SPD_PCDDECLARATIONS:
2802 SpdPcdDefs frmSpcdd = new SpdPcdDefs(spd);
2803 getJDesktopPanePackage().add(frmSpcdd, 1);
2804 break;
2805 }
2806 this.jTabbedPaneEditor.setSelectedIndex(1);
2807 resizeDesktopPanel();
2808 }
2809
2810 /**
2811 Show content of editor panel via selected element
2812
2813 @param elementType
2814 @param msa
2815
2816 */
2817 private void showModuleElement(int elementType, OpeningModuleType msa) {
2818 this.cleanDesktopPaneModule();
2819 switch (elementType) {
2820 case IDefaultMutableTreeNode.MSA_HEADER:
2821 MsaHeader frmMsaHeader = new MsaHeader(msa);
2822 getJDesktopPaneModule().add(frmMsaHeader, 1);
2823 break;
2824 case IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS:
2825 ModuleLibraryClassDefinitions frmMlcd = new ModuleLibraryClassDefinitions(msa);
2826 getJDesktopPaneModule().add(frmMlcd, 1);
2827 break;
2828 case IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES:
2829 ModulePackageDependencies frmMpd = new ModulePackageDependencies(msa);
2830 getJDesktopPaneModule().add(frmMpd, 1);
2831 break;
2832 case IDefaultMutableTreeNode.MSA_SOURCEFILES:
2833 ModuleSourceFiles frmMsf = new ModuleSourceFiles(msa);
2834 getJDesktopPaneModule().add(frmMsf, 1);
2835 break;
2836 case IDefaultMutableTreeNode.MSA_PROTOCOLS:
2837 ModuleProtocols frmMp = new ModuleProtocols(msa);
2838 getJDesktopPaneModule().add(frmMp, 1);
2839 break;
2840 case IDefaultMutableTreeNode.MSA_EVENTS:
2841 ModuleEvents frmMe = new ModuleEvents(msa);
2842 getJDesktopPaneModule().add(frmMe, 1);
2843 break;
2844 case IDefaultMutableTreeNode.MSA_HOBS:
2845 ModuleHobs frmMh = new ModuleHobs(msa);
2846 getJDesktopPaneModule().add(frmMh, 1);
2847 break;
2848 case IDefaultMutableTreeNode.MSA_PPIS:
2849 ModulePpis frmMpp = new ModulePpis(msa);
2850 getJDesktopPaneModule().add(frmMpp, 1);
2851 break;
2852 case IDefaultMutableTreeNode.MSA_VARIABLES:
2853 ModuleVariables frmMv = new ModuleVariables(msa);
2854 getJDesktopPaneModule().add(frmMv, 1);
2855 break;
2856 case IDefaultMutableTreeNode.MSA_BOOTMODES:
2857 ModuleBootModes frmMbm = new ModuleBootModes(msa);
2858 getJDesktopPaneModule().add(frmMbm, 1);
2859 break;
2860 case IDefaultMutableTreeNode.MSA_SYSTEMTABLES:
2861 ModuleSystemTables frmMst = new ModuleSystemTables(msa);
2862 getJDesktopPaneModule().add(frmMst, 1);
2863 break;
2864 case IDefaultMutableTreeNode.MSA_DATAHUBS:
2865 ModuleDataHubs frmMdh = new ModuleDataHubs(msa);
2866 getJDesktopPaneModule().add(frmMdh, 1);
2867 break;
2868 case IDefaultMutableTreeNode.MSA_HIIPACKAGES:
2869 ModuleHiiPackages frmMf = new ModuleHiiPackages(msa);
2870 getJDesktopPaneModule().add(frmMf, 1);
2871 break;
2872 case IDefaultMutableTreeNode.MSA_GUIDS:
2873 ModuleGuids frmGuid = new ModuleGuids(msa);
2874 getJDesktopPaneModule().add(frmGuid, 1);
2875 break;
2876 case IDefaultMutableTreeNode.MSA_EXTERNS:
2877 ModuleExterns frmMex = new ModuleExterns(msa);
2878 getJDesktopPaneModule().add(frmMex, 1);
2879 break;
2880 case IDefaultMutableTreeNode.MSA_PCDS:
2881 ModulePCDs frmPcd = new ModulePCDs(msa);
2882 getJDesktopPaneModule().add(frmPcd, 1);
2883 break;
2884 }
2885 this.jTabbedPaneEditor.setSelectedIndex(0);
2886 resizeDesktopPanel();
2887 }
2888
2889 //
2890 // Define operations of menu
2891 //
2892 /**
2893 New a file
2894
2895 **/
2896 private void fileNew() {
2897 int result = -1;
2898 //
2899 // Selece new file type
2900 //
2901 NewFileChooser nfc = new NewFileChooser(this, true);
2902 result = nfc.showDialog();
2903
2904 if (result == DataType.RETURN_TYPE_CANCEL) {
2905 nfc.dispose();
2906 return;
2907 } else if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {
2908 //
2909 // To new a module
2910 //
2911 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
2912 result = smb.showDialog();
2913
2914 if (result == DataType.RETURN_TYPE_CANCEL) {
2915 nfc.dispose();
2916 smb.dispose();
2917 return;
2918 } else if (result == DataType.RETURN_TYPE_OK) {
2919 ModuleIdentification mid = smb.getMid();
2920 if (mid != null) {
2921 //
2922 // Update package of workspace first
2923 //
2924 PackageSurfaceAreaDocument.PackageSurfaceArea psa = null;
2925 if (GlobalData.openingPackageList.existsPackage(mid.getPackageId())) {
2926 psa = GlobalData.openingPackageList.getPackageSurfaceAreaFromId(mid.getPackageId());
2927 }
2928 try {
2929 wt.addModuleToPackage(mid, psa);
2930 } catch (IOException e) {
2931 Log.wrn("Update MsaFiles in Package", e.getMessage());
2932 Log.err("Update MsaFiles in Package", e.getMessage());
2933 return;
2934 } catch (XmlException e) {
2935 Log.wrn("Update MsaFiles in Package", e.getMessage());
2936 Log.err("Update MsaFiles in Package", e.getMessage());
2937 return;
2938 } catch (Exception e) {
2939 Log.wrn("Update MsaFiles in Package", e.getMessage());
2940 Log.err("Update MsaFiles in Package", e.getMessage());
2941 return;
2942 }
2943
2944 //
2945 // Update Global Data
2946 //
2947 GlobalData.openingModuleList.insertToOpeningModuleList(mid, smb.getMsa());
2948 GlobalData.vModuleList.addElement(mid);
2949
2950 //
2951 // Create new node on the tree
2952 //
2953 addModuleToTree(mid);
2954
2955 //
2956 // Open the node
2957 //
2958 this.openModule(mid.getPath(), this.dmtnModuleDescription);
2959 }
2960 }
2961 } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {
2962 //
2963 // To new a package
2964 //
2965 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
2966 result = smb.showDialog();
2967
2968 if (result == DataType.RETURN_TYPE_CANCEL) {
2969 nfc.dispose();
2970 smb.dispose();
2971 return;
2972 } else if (result == DataType.RETURN_TYPE_OK) {
2973 PackageIdentification pid = smb.getPid();
2974 if (pid != null) {
2975 try {
2976 wt.addPackageToDatabase(smb.getPid());
2977 } catch (Exception e) {
2978 Log.err("addPackageToDatabase", e.getMessage());
2979 }
2980
2981 //
2982 // Update Global Data
2983 //
2984 GlobalData.openingPackageList.insertToOpeningPackageList(pid, smb.getSpd());
2985 GlobalData.vPackageList.addElement(pid);
2986
2987 //
2988 // Add to Module Description node
2989 //
2990 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(pid.getName(),
2991 IDefaultMutableTreeNode.MODULE_PACKAGE,
2992 false, pid, this.dmtnModuleDescription);
2993
2994 iTree.addNode(dmtnModuleDescription, node);
2995
2996 //
2997 // Add new SpdHeader node to the tree
2998 //
2999 node = new IDefaultMutableTreeNode(pid.getName(), IDefaultMutableTreeNode.PACKAGE, true, pid,
3000 this.dmtnPackageDescription);
3001 iTree.addNode(dmtnPackageDescription, node);
3002
3003 this.openPackage(pid.getPath());
3004 }
3005 }
3006 } else if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {
3007 //
3008 // To new a platform
3009 //
3010 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
3011 result = smb.showDialog();
3012
3013 if (result == DataType.RETURN_TYPE_CANCEL) {
3014 nfc.dispose();
3015 smb.dispose();
3016 return;
3017 } else if (result == DataType.RETURN_TYPE_OK) {
3018 PlatformIdentification fid = smb.getFid();
3019 if (fid != null) {
3020 try {
3021 wt.addPlatformToDatabase(fid);
3022 } catch (Exception e) {
3023 Log.err("addPlatformToDatabase", e.getMessage());
3024 }
3025
3026 //
3027 // Update global data
3028 //
3029 GlobalData.openingPlatformList.insertToOpeningPlatformList(fid, smb.getFpd());
3030 GlobalData.vPlatformList.addElement(fid);
3031 //
3032 // Add new SpdHeader node to the tree
3033 //
3034 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(fid.getName(),
3035 IDefaultMutableTreeNode.PLATFORM, true,
3036 fid, this.dmtnPlatformDescription);
3037 iTree.addNode(dmtnPlatformDescription, node);
3038 this.openPlatform(fid.getPath());
3039 }
3040 }
3041 }
3042 }
3043
3044 /**
3045 Open a file
3046
3047 **/
3048 private void open() {
3049 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());
3050 fc.setAcceptAllFileFilterUsed(false);
3051 IFileFilter iffM = new IFileFilter(DataType.MODULE_SURFACE_AREA_EXT);
3052 IFileFilter iffP = new IFileFilter(DataType.PACKAGE_SURFACE_AREA_EXT);
3053 IFileFilter iffF = new IFileFilter(DataType.PLATFORM_SURFACE_AREA_EXT);
3054 fc.addChoosableFileFilter(iffM);
3055 fc.addChoosableFileFilter(iffP);
3056 fc.addChoosableFileFilter(iffF);
3057 fc.setFileFilter(iffM);
3058
3059 int result = fc.showOpenDialog(new JPanel());
3060
3061 if (result == JFileChooser.APPROVE_OPTION) {
3062 String path = fc.getSelectedFile().getPath();
3063 String match = path.substring(path.length() - 4);
3064 if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.MODULE_SURFACE_AREA_EXT)) {
3065 openModule(path, this.dmtnModuleDescription);
3066 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PACKAGE_SURFACE_AREA_EXT)) {
3067 openPackage(path);
3068 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PLATFORM_SURFACE_AREA_EXT)) {
3069 openPlatform(path);
3070 }
3071 }
3072 }
3073
3074 /**
3075 Close files
3076
3077 **/
3078 private void close() {
3079 TreePath item = null;
3080 switch (this.jTabbedPaneEditor.getSelectedIndex()) {
3081 //
3082 // Current is module
3083 //
3084 case 0:
3085 if (this.currentOpeningModuleIndex > -1) {
3086 if (!GlobalData.openingModuleList.getModuleSaved(currentOpeningModuleIndex)) {
3087 int result = showSaveDialog();
3088 if (result == JOptionPane.YES_OPTION) {
3089 this.saveAll();
3090 }
3091 if (result == JOptionPane.NO_OPTION) {
3092 // Do nothing
3093 }
3094 if (result == JOptionPane.CANCEL_OPTION) {
3095 return;
3096 }
3097 }
3098
3099 //
3100 // Remove all tree paths for the module
3101 //
3102 Set<TreePath> openingTreePaths = GlobalData.openingModuleList
3103 .getTreePathByIndex(currentOpeningModuleIndex);
3104 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();
3105 while (openingTreePathsIter.hasNext()) {
3106 item = openingTreePathsIter.next();
3107 iTree.getNodeByPath(item).setOpening(false);
3108 iTree.removeNodeChildrenByPath(item);
3109 }
3110
3111 GlobalData.openingModuleList.setModuleOpen(this.currentOpeningModuleIndex, false);
3112 this.cleanDesktopPaneModule();
3113 this.currentOpeningModuleIndex = -1;
3114 }
3115 break;
3116 //
3117 // Current is package
3118 //
3119 case 1:
3120 if (this.currentOpeningPackageIndex > -1) {
3121 if (!GlobalData.openingPackageList.getPackageSaved(currentOpeningPackageIndex)) {
3122 int result = showSaveDialog();
3123 if (result == JOptionPane.YES_OPTION) {
3124 this.saveAll();
3125 }
3126 if (result == JOptionPane.NO_OPTION) {
3127 // Do nothing
3128 }
3129 if (result == JOptionPane.CANCEL_OPTION) {
3130 return;
3131 }
3132 }
3133
3134 //
3135 // Remove all tree paths for the module
3136 //
3137 Set<TreePath> openingTreePaths = GlobalData.openingPackageList
3138 .getTreePathByIndex(currentOpeningPackageIndex);
3139 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();
3140 while (openingTreePathsIter.hasNext()) {
3141 item = openingTreePathsIter.next();
3142 iTree.getNodeByPath(item).setOpening(false);
3143 iTree.removeNodeChildrenByPath(item);
3144 }
3145
3146 GlobalData.openingPackageList.setPackageOpen(this.currentOpeningPackageIndex, false);
3147 this.cleanDesktopPanePackage();
3148 this.currentOpeningPackageIndex = -1;
3149 }
3150 break;
3151 //
3152 // Current is platform
3153 //
3154 case 2:
3155 if (this.currentOpeningPlatformIndex > -1) {
3156 if (!GlobalData.openingPlatformList.getPlatformSaved(currentOpeningPlatformIndex)) {
3157 int result = showSaveDialog();
3158 if (result == JOptionPane.YES_OPTION) {
3159 this.saveAll();
3160 }
3161 if (result == JOptionPane.NO_OPTION) {
3162 // Do nothing
3163 }
3164 if (result == JOptionPane.CANCEL_OPTION) {
3165 return;
3166 }
3167 }
3168
3169 //
3170 // Remove all tree paths for the module
3171 //
3172 Set<TreePath> openingTreePaths = GlobalData.openingPlatformList
3173 .getTreePathByIndex(currentOpeningPlatformIndex);
3174 Iterator<TreePath> openingTreePathsIter = openingTreePaths.iterator();
3175 while (openingTreePathsIter.hasNext()) {
3176 item = openingTreePathsIter.next();
3177 iTree.getNodeByPath(item).setOpening(false);
3178 iTree.removeNodeChildrenByPath(item);
3179 }
3180
3181 GlobalData.openingPlatformList.setPlatformOpen(this.currentOpeningPlatformIndex, false);
3182 this.cleanDesktopPanePlatform();
3183 this.currentOpeningPlatformIndex = -1;
3184 }
3185 break;
3186 }
3187 }
3188
3189 /**
3190 Close all opening files and clean all showing internal frame
3191
3192 **/
3193 private int closeAll() {
3194 int result = JOptionPane.NO_OPTION;
3195 if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()
3196 || !GlobalData.openingPlatformList.isSaved()) {
3197 result = showSaveDialog();
3198 }
3199 if (result == JOptionPane.YES_OPTION) {
3200 this.saveAll();
3201 }
3202 if (result == JOptionPane.NO_OPTION) {
3203 //
3204 // Do nothing
3205 //
3206 }
3207 if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {
3208 return -1;
3209 }
3210 this.cleanDesktopPane();
3211 GlobalData.openingModuleList.closeAll();
3212 GlobalData.openingPackageList.closeAll();
3213 GlobalData.openingPlatformList.closeAll();
3214
3215 return 0;
3216 }
3217
3218 /**
3219 Refresh all global data from disk to memory
3220
3221 **/
3222 private void refresh() {
3223 GlobalData.init();
3224 }
3225
3226 /**
3227 Save currentModule when press button OK
3228
3229 **/
3230 private void save() {
3231 switch (this.jTabbedPaneEditor.getSelectedIndex()) {
3232 case 0:
3233 if (this.currentOpeningModuleIndex > -1) {
3234 saveModule(this.currentOpeningModuleIndex);
3235 }
3236 break;
3237 case 1:
3238 if (this.currentOpeningPackageIndex > -1) {
3239 savePackage(this.currentOpeningPackageIndex);
3240 }
3241 break;
3242 case 2:
3243 if (this.currentOpeningPlatformIndex > -1) {
3244 savePlatform(this.currentOpeningPlatformIndex);
3245 }
3246 break;
3247 }
3248 }
3249
3250 private void saveAs() {
3251
3252 }
3253
3254 private void saveAll() {
3255 //
3256 // Save all modules
3257 //
3258 for (int index = 0; index < GlobalData.openingModuleList.size(); index++) {
3259 if (!GlobalData.openingModuleList.getModuleSaved(index)) {
3260 saveModule(index);
3261 }
3262 }
3263
3264 //
3265 // Save all packages
3266 //
3267 for (int index = 0; index < GlobalData.openingPackageList.size(); index++) {
3268 if (!GlobalData.openingPackageList.getPackageSaved(index)) {
3269 savePackage(index);
3270 }
3271 }
3272
3273 //
3274 // Save all platforms
3275 //
3276 for (int index = 0; index < GlobalData.openingPlatformList.size(); index++) {
3277 if (!GlobalData.openingPlatformList.getPlatformSaved(index)) {
3278 savePlatform(index);
3279 }
3280 }
3281 }
3282
3283 /**
3284 To save changed items before exit.
3285
3286 **/
3287 private void exit() {
3288 int result = JOptionPane.NO_OPTION;
3289 if (!GlobalData.openingModuleList.isSaved() || !GlobalData.openingPackageList.isSaved()
3290 || !GlobalData.openingPlatformList.isSaved()) {
3291 result = showSaveDialog();
3292 }
3293 if (result == JOptionPane.YES_OPTION) {
3294 this.saveAll();
3295 } else if (result == JOptionPane.NO_OPTION) {
3296 // Do nothing
3297 } else if (result == JOptionPane.CANCEL_OPTION || result == JOptionPane.CLOSED_OPTION) {
3298 return;
3299 }
3300 this.dispose();
3301 System.exit(0);
3302 }
3303
3304 /**
3305 To find all defined PPIs in workspace
3306
3307 **/
3308 private void findPpi() {
3309 FindResult fr = FindResult.getInstance("PPI");
3310 fr.setVisible(true);
3311 }
3312
3313 /**
3314 To find all defined PROTOCOLs in workspace
3315
3316 **/
3317 private void findProtocol() {
3318 FindResult fr = FindResult.getInstance("PROTOCOL");
3319 fr.setVisible(true);
3320 }
3321
3322 /**
3323 To find all defined PROTOCOLs in workspace
3324
3325 **/
3326 private void findGuid() {
3327 FindResult fr = FindResult.getInstance("GUID");
3328 fr.setVisible(true);
3329 }
3330
3331 /**
3332 To find all defined PROTOCOLs in workspace
3333
3334 **/
3335 private void findPcd() {
3336 FindResult fr = FindResult.getInstance("PCD");
3337 fr.setVisible(true);
3338 }
3339
3340 /**
3341 To find all defined Library Classes in workspace
3342
3343 **/
3344 private void findLibraryClass() {
3345 FindResult fr = FindResult.getInstance("LIBRARY_CLASS");
3346 fr.setVisible(true);
3347 }
3348
3349 /**
3350 To find all defined Library Instances in workspace
3351
3352 **/
3353 private void findLibraryInstance() {
3354 FindResult fr = FindResult.getInstance("LIBRARY_INSTANCE");
3355 fr.setVisible(true);
3356 }
3357
3358 /**
3359 Switch current workspace to others
3360
3361 **/
3362 private void changeWorkspace() {
3363 SwitchWorkspace sw = new SwitchWorkspace(this, true);
3364 int result = sw.showDialog();
3365 if (result == DataType.RETURN_TYPE_CANCEL) {
3366 return;
3367 } else if (result == DataType.RETURN_TYPE_OK) {
3368 //
3369 // Reinit whole window
3370 //
3371 this.closeAll();
3372 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- ["
3373 + Workspace.getCurrentWorkspace() + "]");
3374 //
3375 // Refrash the tree
3376 //
3377 this.refresh();
3378 this.makeEmptyTree();
3379 }
3380 sw.dispose();
3381 }
3382
3383 /**
3384 To create a Far file from current workspace
3385
3386 **/
3387 private void createFar() {
3388 CreateStepOne cso = new CreateStepOne(this, true);
3389 int result = cso.showDialog();
3390 if (result == DataType.RETURN_TYPE_OK) {
3391 String strReturn = "Far Creation Completed!";
3392 JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,
3393 JOptionPane.INFORMATION_MESSAGE);
3394 }
3395 cso.dispose();
3396 }
3397
3398 /**
3399 To install a Far file to current workspace
3400
3401 **/
3402 private void installFar() {
3403 InstallStepOne iso = new InstallStepOne(this, true);
3404 int result = iso.showDialog();
3405 if (result == DataType.RETURN_TYPE_OK) {
3406 String strReturn = "<html>Far Installalation completed!<br>Refreshing the WORKSPACE!</html>";
3407 JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,
3408 JOptionPane.INFORMATION_MESSAGE);
3409 this.closeAll();
3410 this.refresh();
3411 this.makeEmptyTree();
3412 }
3413 iso.dispose();
3414 }
3415
3416 /**
3417 To remove a Far's items from current workspace
3418
3419 **/
3420 private void removeFar() {
3421 DeleteStepOne dso = new DeleteStepOne(this, true);
3422 int result = dso.showDialog();
3423 if (result == DataType.RETURN_TYPE_OK) {
3424 String strReturn = "<html>Far Deletion completed!<br>Refreshing the WORKSPACE!</html>";
3425 JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,
3426 JOptionPane.INFORMATION_MESSAGE);
3427 this.closeAll();
3428 this.refresh();
3429 this.makeEmptyTree();
3430 }
3431 dso.dispose();
3432 }
3433
3434 /**
3435 To update an existing Far file
3436
3437 **/
3438 private void updateFar() {
3439 UpdateStepOne uso = new UpdateStepOne(this, true);
3440 int result = uso.showDialog();
3441 if (result == DataType.RETURN_TYPE_OK) {
3442 String strReturn = "<html>Far Update completed!<br>Refreshing the WORKSPACE!</html>";
3443 JOptionPane.showConfirmDialog(null, strReturn, "Done", JOptionPane.DEFAULT_OPTION,
3444 JOptionPane.INFORMATION_MESSAGE);
3445 this.closeAll();
3446 this.refresh();
3447 this.makeEmptyTree();
3448 }
3449 uso.dispose();
3450 }
3451
3452 /**
3453 Show Tool Chain Configuration Dialog to setup Tool Chain
3454
3455 **/
3456 private void setupToolChainConfiguration() {
3457 ToolChainConfig tcc = ToolChainConfig.getInstance();
3458 tcc.showDialog();
3459 }
3460
3461 private void configBuildPreferences() {
3462 Preferences bt = Preferences.getInstance();
3463 bt.showDialog();
3464 }
3465
3466 /**
3467 Clone selected item
3468
3469 **/
3470 private void cloneItem() {
3471 int mode = -1;
3472
3473 //
3474 // Check if there is any item can be cloned
3475 //
3476 if (iTree.getSelectionPath() == null) {
3477 Log.wrn("Clone", "Please select a target to clone!");
3478 return;
3479 }
3480 int category = iTree.getSelectCategory();
3481 Identification id = iTree.getSelectNode().getId();
3482
3483 if (category == IDefaultMutableTreeNode.WORKSPACE) {
3484 mode = DataType.RETURN_TYPE_WORKSPACE;
3485 id = null;
3486 }
3487 if ((category == IDefaultMutableTreeNode.MODULE)
3488 || (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER)) {
3489 mode = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;
3490 }
3491 if ((category == IDefaultMutableTreeNode.PACKAGE)
3492 || (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {
3493 mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;
3494 }
3495 if ((category == IDefaultMutableTreeNode.PLATFORM) || (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER)) {
3496 mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;
3497 }
3498
3499 Clone c = new Clone(this, true, mode, id);
3500 int result = c.showDialog();
3501
3502 if (result == DataType.RETURN_TYPE_CANCEL) {
3503 c.dispose();
3504 }
3505 if (result == DataType.RETURN_TYPE_WORKSPACE) {
3506 Tools.showInformationMessage("Workspace Clone Completed!");
3507 }
3508 if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {
3509 Tools.showInformationMessage("Module Clone Completed!");
3510 addModuleToTree(c.getMid());
3511 }
3512 if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {
3513 Tools.showInformationMessage("Package Clone Completed!");
3514 //
3515 // Add new SpdHeader node to the tree
3516 //
3517 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(GlobalData.vPackageList.lastElement().getName(),
3518 IDefaultMutableTreeNode.PACKAGE, false,
3519 GlobalData.vPackageList.lastElement(),
3520 this.dmtnPackageDescription);
3521 iTree.addNode(this.dmtnPackageDescription, node);
3522 }
3523 if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {
3524 Tools.showInformationMessage("Platform Surface Area Clone Finished");
3525 //
3526 // Add new SpdHeader node to the tree
3527 //
3528 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(
3529 GlobalData.vPlatformList.lastElement().getName(),
3530 IDefaultMutableTreeNode.PLATFORM, false,
3531 GlobalData.vPlatformList.lastElement(),
3532 this.dmtnPlatformDescription);
3533 iTree.addNode(this.dmtnPlatformDescription, node);
3534 }
3535 if (result == DataType.RETURN_TYPE_OK) {
3536
3537 }
3538 }
3539
3540 public void valueChanged(TreeSelectionEvent arg0) {
3541 // TODO Auto-generated method stub
3542
3543 }
3544
3545 public void menuCanceled(MenuEvent arg0) {
3546 // TODO Auto-generated method stub
3547
3548 }
3549
3550 public void menuDeselected(MenuEvent arg0) {
3551 // TODO Auto-generated method stub
3552
3553 }
3554
3555 public void menuSelected(MenuEvent arg0) {
3556 if (arg0.getSource() == jMenuFile) {
3557 //
3558 // Enable close/close all if some files are opened
3559 //
3560 jMenuItemFileClose.setEnabled(GlobalData.openingModuleList.isOpen()
3561 || GlobalData.openingPackageList.isOpen()
3562 || GlobalData.openingPlatformList.isOpen());
3563 jMenuItemFileCloseAll.setEnabled(GlobalData.openingModuleList.isOpen()
3564 || GlobalData.openingPackageList.isOpen()
3565 || GlobalData.openingPlatformList.isOpen());
3566
3567 //
3568 // Enable save/save all if some files are changed
3569 //
3570 jMenuItemFileSave.setEnabled(!GlobalData.openingModuleList.isSaved()
3571 || !GlobalData.openingPackageList.isSaved()
3572 || !GlobalData.openingPlatformList.isSaved());
3573 jMenuItemFileSaveAll.setEnabled(!GlobalData.openingModuleList.isSaved()
3574 || !GlobalData.openingPackageList.isSaved()
3575 || !GlobalData.openingPlatformList.isSaved());
3576 }
3577
3578 if (arg0.getSource() == jMenuTools) {
3579 //
3580 // Enable clone when select some items
3581 //
3582 if (iTree.getSelectionPath() == null) {
3583 jMenuItemToolsClone.setEnabled(false);
3584 } else {
3585 int category = iTree.getSelectCategory();
3586 if (category == IDefaultMutableTreeNode.MODULE_DESCRIPTION
3587 || category == IDefaultMutableTreeNode.PACKAGE_DESCRIPTION
3588 || category == IDefaultMutableTreeNode.PLATFORM_DESCRIPTION
3589 || category == IDefaultMutableTreeNode.MODULE_PACKAGE
3590 || category == IDefaultMutableTreeNode.MODULE_PACKAGE_LIBRARY
3591 || category == IDefaultMutableTreeNode.MODULE_PACKAGE_MODULE) {
3592 jMenuItemToolsClone.setEnabled(false);
3593 } else {
3594 jMenuItemToolsClone.setEnabled(true);
3595 }
3596 }
3597 }
3598 }
3599
3600 public void keyTyped(KeyEvent arg0) {
3601 // TODO Auto-generated method stub
3602
3603 }
3604
3605 public void keyPressed(KeyEvent arg0) {
3606 // TODO Auto-generated method stub
3607
3608 }
3609
3610 public void keyReleased(KeyEvent arg0) {
3611 if (arg0.getSource() == this.iTree) {
3612 if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {
3613 this.doubleClickModuleTreeNode();
3614 }
3615 }
3616 }
3617
3618 /**
3619 Search whole workspace and find all module's name and guid, and save them to a file
3620
3621 **/
3622 private void generateGuidsXref() {
3623 //
3624 // Init File Chooser
3625 //
3626 JFileChooser fc = new JFileChooser();
3627 fc.setCurrentDirectory(new File(Workspace.getCurrentWorkspace()));
3628 fc.setSelectedFile(new File(Workspace.getCurrentWorkspace() + DataType.FILE_SEPARATOR
3629 + DataType.GUIDS_XREF_FILE_NAME));
3630 fc.setMultiSelectionEnabled(false);
3631
3632 //
3633 // Get guids xref and save to file
3634 //
3635 int result = fc.showSaveDialog(new JPanel());
3636 if (result == JFileChooser.APPROVE_OPTION) {
3637 Vector<String> v = wt.getAllModuleGuidXref();
3638 if (v.size() < 1) {
3639 Log.wrn("No guids found!!!");
3640 return;
3641 }
3642 File f = fc.getSelectedFile();
3643 if (!f.exists()) {
3644 try {
3645 f.createNewFile();
3646 } catch (IOException e) {
3647 Log.wrn("Fail to create file", e.getMessage());
3648 Log.err("Fail to create file when generating guids.xref", e.getMessage());
3649 }
3650 }
3651 FileWriter fw = null;
3652 BufferedWriter bw = null;
3653 try {
3654 fw = new FileWriter(f);
3655 bw = new BufferedWriter(fw);
3656 for (int index = 0; index < v.size(); index++) {
3657 bw.write(v.get(index));
3658 bw.newLine();
3659 }
3660 bw.flush();
3661 fw.flush();
3662 bw.close();
3663 fw.close();
3664 } catch (IOException e) {
3665 Log.wrn("Fail to write file", e.getMessage());
3666 Log.err("Fail to write file when generating guids.xref", e.getMessage());
3667 return;
3668 }
3669
3670 JOptionPane.showConfirmDialog(null, "File is created", "Generate guids.xref", JOptionPane.DEFAULT_OPTION,
3671 JOptionPane.INFORMATION_MESSAGE);
3672 }
3673 }
3674
3675 /**
3676 Check if WORKSPACE Environment is valid
3677
3678 **/
3679 private void checkWorkspace() {
3680 switch (Workspace.checkCurrentWorkspace()) {
3681 case Workspace.WORKSPACE_VALID:
3682 break;
3683 case Workspace.WORKSPACE_NOT_DEFINED:
3684 JOptionPane
3685 .showConfirmDialog(
3686 null,
3687 "WORKSPACE Environment Variable Is Not Defined, Please select a valid WORKSPACE directory. " +
3688 DataType.LINE_SEPARATOR + DataType.LINE_SEPARATOR + "NOTICE:" +
3689 DataType.LINE_SEPARATOR + "This does not change the System Environment Variable." +
3690 DataType.LINE_SEPARATOR + "It only applies to where the Wizard will manage modification and file creations.",
3691 "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
3692 SwitchWorkspace sw = new SwitchWorkspace(this, true);
3693 int result = sw.showDialog();
3694 if (result == DataType.RETURN_TYPE_CANCEL) {
3695 this.dispose();
3696 System.exit(0);
3697 } else if (result == DataType.RETURN_TYPE_OK) {
3698 sw.dispose();
3699 break;
3700 }
3701 case Workspace.WORKSPACE_NOT_EXIST:
3702 JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not Existed", "Error",
3703 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
3704 this.dispose();
3705 System.exit(0);
3706 case Workspace.WORKSPACE_NOT_DIRECTORY:
3707 JOptionPane.showConfirmDialog(null, "Defined WORKSPACE Is Not A Directory", "Error",
3708 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
3709 this.dispose();
3710 System.exit(0);
3711 case Workspace.WORKSPACE_NOT_VALID:
3712 JOptionPane.showConfirmDialog(null, "WORKSPACE Environment Variable Is Not Valid", "Error",
3713 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
3714 this.dispose();
3715 System.exit(0);
3716 case Workspace.WORKSPACE_NO_TARGET_FILE:
3717 JOptionPane.showConfirmDialog(null, "Target.txt File Is Not Existed", "Error",
3718 JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
3719 this.dispose();
3720 System.exit(0);
3721 }
3722 }
3723 }