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