]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/FrameworkWizardUI.java
1. Fix displaying wrong file type bug.
[mirror_edk2.git] / Tools / 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.ComponentListener;
21 import java.awt.event.MouseEvent;
22 import java.awt.event.MouseListener;
23 import java.awt.event.WindowEvent;
24 import java.io.IOException;
25 import java.util.Vector;
26
27 import javax.swing.JButton;
28 import javax.swing.JCheckBoxMenuItem;
29 import javax.swing.JDesktopPane;
30 import javax.swing.JFileChooser;
31 import javax.swing.JFrame;
32 import javax.swing.JInternalFrame;
33 import javax.swing.JMenu;
34 import javax.swing.JMenuBar;
35 import javax.swing.JMenuItem;
36 import javax.swing.JOptionPane;
37 import javax.swing.JPanel;
38 import javax.swing.JScrollPane;
39 import javax.swing.JSplitPane;
40 import javax.swing.JTabbedPane;
41 import javax.swing.event.MenuEvent;
42 import javax.swing.event.MenuListener;
43 import javax.swing.event.TreeSelectionEvent;
44 import javax.swing.event.TreeSelectionListener;
45
46 import org.apache.xmlbeans.XmlException;
47 import org.tianocore.ModuleSurfaceAreaDocument;
48 import org.tianocore.PackageSurfaceAreaDocument;
49 import org.tianocore.PlatformSurfaceAreaDocument;
50 import org.tianocore.frameworkwizard.common.DataType;
51 import org.tianocore.frameworkwizard.common.IFileFilter;
52 import org.tianocore.frameworkwizard.common.Log;
53 import org.tianocore.frameworkwizard.common.SaveFile;
54 import org.tianocore.frameworkwizard.common.Tools;
55 import org.tianocore.frameworkwizard.common.Identifications.Identification;
56 import org.tianocore.frameworkwizard.common.Identifications.OpenFile;
57 import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleList;
58 import org.tianocore.frameworkwizard.common.Identifications.OpeningModuleType;
59 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageList;
60 import org.tianocore.frameworkwizard.common.Identifications.OpeningPackageType;
61 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformList;
62 import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType;
63 import org.tianocore.frameworkwizard.common.ui.IDefaultMutableTreeNode;
64 import org.tianocore.frameworkwizard.common.ui.IDesktopManager;
65 import org.tianocore.frameworkwizard.common.ui.IFrame;
66 import org.tianocore.frameworkwizard.common.ui.ITree;
67 import org.tianocore.frameworkwizard.module.Identifications.ModuleIdentification;
68 import org.tianocore.frameworkwizard.module.ui.ModuleBootModes;
69 import org.tianocore.frameworkwizard.module.ui.ModuleDataHubs;
70 import org.tianocore.frameworkwizard.module.ui.ModuleDefinitions;
71 import org.tianocore.frameworkwizard.module.ui.ModuleEvents;
72 import org.tianocore.frameworkwizard.module.ui.ModuleExterns;
73 import org.tianocore.frameworkwizard.module.ui.ModuleGuids;
74 import org.tianocore.frameworkwizard.module.ui.ModuleHiiPackages;
75 import org.tianocore.frameworkwizard.module.ui.ModuleHobs;
76 import org.tianocore.frameworkwizard.module.ui.ModuleLibraryClassDefinitions;
77 import org.tianocore.frameworkwizard.module.ui.ModulePCDs;
78 import org.tianocore.frameworkwizard.module.ui.ModulePackageDependencies;
79 import org.tianocore.frameworkwizard.module.ui.ModulePpis;
80 import org.tianocore.frameworkwizard.module.ui.ModuleProtocols;
81 import org.tianocore.frameworkwizard.module.ui.ModuleSourceFiles;
82 import org.tianocore.frameworkwizard.module.ui.ModuleSystemTables;
83 import org.tianocore.frameworkwizard.module.ui.ModuleVariables;
84 import org.tianocore.frameworkwizard.module.ui.MsaHeader;
85 import org.tianocore.frameworkwizard.packaging.PackageIdentification;
86 import org.tianocore.frameworkwizard.packaging.ui.SpdGuidDecls;
87 import org.tianocore.frameworkwizard.packaging.ui.SpdHeader;
88 import org.tianocore.frameworkwizard.packaging.ui.SpdLibClassDecls;
89 import org.tianocore.frameworkwizard.packaging.ui.SpdMsaFiles;
90 import org.tianocore.frameworkwizard.packaging.ui.SpdPackageDefinitions;
91 import org.tianocore.frameworkwizard.packaging.ui.SpdPackageHeaders;
92 import org.tianocore.frameworkwizard.packaging.ui.SpdPcdDefs;
93 import org.tianocore.frameworkwizard.packaging.ui.SpdPpiDecls;
94 import org.tianocore.frameworkwizard.packaging.ui.SpdProtocolDecls;
95 import org.tianocore.frameworkwizard.platform.PlatformIdentification;
96 import org.tianocore.frameworkwizard.platform.ui.FpdBuildOptions;
97 import org.tianocore.frameworkwizard.platform.ui.FpdDynamicPcdBuildDefinitions;
98 import org.tianocore.frameworkwizard.platform.ui.FpdFlash;
99 import org.tianocore.frameworkwizard.platform.ui.FpdFrameworkModules;
100 import org.tianocore.frameworkwizard.platform.ui.FpdHeader;
101 import org.tianocore.frameworkwizard.platform.ui.FpdPlatformDefs;
102 import org.tianocore.frameworkwizard.workspace.Workspace;
103 import org.tianocore.frameworkwizard.workspace.WorkspaceTools;
104 import org.tianocore.frameworkwizard.workspace.ui.SwitchWorkspace;
105
106 /**
107 The class is used to show main GUI of ModuleEditor
108 It extends IFrame implements MouseListener, TreeSelectionListener
109
110 **/
111 public class FrameworkWizardUI extends IFrame implements MouseListener, TreeSelectionListener, ComponentListener,
112 MenuListener {
113 ///
114 /// Define class Serial Version UID
115 ///
116 private static final long serialVersionUID = -7103240960573031772L;
117
118 //
119 // To save information of all files
120 //
121 private Vector<ModuleIdentification> vModuleList = new Vector<ModuleIdentification>();
122
123 private Vector<PackageIdentification> vPackageList = new Vector<PackageIdentification>();
124
125 private Vector<PlatformIdentification> vPlatformList = new Vector<PlatformIdentification>();
126
127 private OpeningModuleList openingModuleList = new OpeningModuleList();
128
129 private OpeningPackageList openingPackageList = new OpeningPackageList();
130
131 private OpeningPlatformList openingPlatformList = new OpeningPlatformList();
132
133 private int currentOpeningModuleIndex = -1;
134
135 private int currentOpeningPackageIndex = -1;
136
137 private int currentOpeningPlatformIndex = -1;
138
139 private IDefaultMutableTreeNode dmtnRoot = null;
140
141 private IDefaultMutableTreeNode dmtnModuleDescription = null;
142
143 private IDefaultMutableTreeNode dmtnPackageDescription = null;
144
145 private IDefaultMutableTreeNode dmtnPlatformDescription = null;
146
147 private JPanel jContentPane = null;
148
149 private JMenuBar jMenuBar = null;
150
151 private JMenu jMenuFile = null;
152
153 private JMenuItem jMenuItemFileNew = null;
154
155 private JMenuItem jMenuItemFileSaveAs = null;
156
157 private JMenuItem jMenuItemFileExit = null;
158
159 private JMenu jMenuEdit = null;
160
161 private JDesktopPane jDesktopPaneModule = null;
162
163 private JDesktopPane jDesktopPanePackage = null;
164
165 private JDesktopPane jDesktopPanePlatform = null;
166
167 private JTabbedPane jTabbedPaneTree = null;
168
169 private JTabbedPane jTabbedPaneEditor = null;
170
171 private IDesktopManager iDesktopManager = new IDesktopManager();
172
173 private JScrollPane jScrollPaneTree = null;
174
175 private ITree iTree = null;
176
177 private JMenu jMenuHelp = null;
178
179 private JMenuItem jMenuItemHelpAbout = null;
180
181 private JMenuItem jMenuItemEditDelete = null;
182
183 private WorkspaceTools wt = new WorkspaceTools();
184
185 private JMenuItem jMenuItemFileSave = null;
186
187 private JMenuItem jMenuItemFileClose = null;
188
189 private JMenu jMenuTools = null;
190
191 private JMenu jMenuWindow = null;
192
193 private JPanel jPanelOperation = null;
194
195 private JButton jButtonOk = null;
196
197 private JButton jButtonCancel = null;
198
199 private JMenuItem jMenuItemFileOpen = null;
200
201 private JMenuItem jMenuItemFileCloseAll = null;
202
203 private JMenuItem jMenuItemFileSaveAll = null;
204
205 private JMenuItem jMenuItemFilePageSetup = null;
206
207 private JMenuItem jMenuItemFilePrint = null;
208
209 private JMenuItem jMenuItemFileImport = null;
210
211 private JMenuItem jMenuItemFileProperties = null;
212
213 private JMenu jMenuFileRecentFiles = null;
214
215 private JSplitPane jSplitPane = null;
216
217 private JMenuItem jMenuItemEditUndo = null;
218
219 private JMenuItem jMenuItemEditRedo = null;
220
221 private JMenuItem jMenuItemEditCut = null;
222
223 private JMenuItem jMenuItemEditCopy = null;
224
225 private JMenuItem jMenuItemEditPaste = null;
226
227 private JMenuItem jMenuItemEditSelectAll = null;
228
229 private JMenuItem jMenuItemEditFind = null;
230
231 private JMenuItem jMenuItemEditFindNext = null;
232
233 private JMenu jMenuView = null;
234
235 private JMenu jMenuViewToolbars = null;
236
237 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsFile = null;
238
239 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsEdit = null;
240
241 private JCheckBoxMenuItem jCheckBoxMenuItemViewToolbarsWindow = null;
242
243 private JMenuItem jMenuItemViewStandard = null;
244
245 private JMenuItem jMenuItemViewAdvanced = null;
246
247 private JMenu jMenuProject = null;
248
249 private JMenuItem jMenuItemProjectAdmin = null;
250
251 private JMenuItem jMenuItemProjectChangeWorkspace = null;
252
253 private JMenu jMenuProjectBuildTargets = null;
254
255 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsDebug = null;
256
257 private JCheckBoxMenuItem jCheckBoxMenuItemProjectBuildTargetsRelease = null;
258
259 private JMenuItem jMenuItemToolsToolChainConfiguration = null;
260
261 private JMenuItem jMenuItemToolsClone = null;
262
263 private JMenuItem jMenuItemToolsCodeScan = null;
264
265 private JMenuItem jMenuItemWindowDisplaySide = null;
266
267 private JMenuItem jMenuItemWindowDisplayTopBottom = null;
268
269 private JMenuItem jMenuItemViewXML = null;
270
271 private JMenuItem jMenuItemWindowTabView = null;
272
273 private JMenuItem jMenuItemWindowSource = null;
274
275 private JMenuItem jMenuItemWindowXML = null;
276
277 private JMenuItem jMenuItemWindowPreferences = null;
278
279 private JMenuItem jMenuItemHelpContents = null;
280
281 private JMenuItem jMenuItemHelpIndex = null;
282
283 private JMenuItem jMenuItemHelpSearch = null;
284
285 private JMenuItem jMenuItemProjectInstallPackage = null;
286
287 private JMenuItem jMenuItemProjectUpdatePackage = null;
288
289 private JMenuItem jMenuItemProjectRemovePackage = null;
290
291 //private JToolBar jToolBarFile = null;
292
293 //private JToolBar jToolBarEdit = null;
294
295 //private JToolBar jToolBarWindow = null;
296
297 private static FrameworkWizardUI fwui = null;
298
299 public static FrameworkWizardUI getInstance() {
300 if (fwui == null) {
301 fwui = new FrameworkWizardUI();
302 }
303 return fwui;
304 }
305
306 /**
307 This method initializes jMenuBar
308
309 @return javax.swing.JMenuBar Main menu bar for the entire GUI
310
311 **/
312 private JMenuBar getjJMenuBar() {
313 if (jMenuBar == null) {
314 jMenuBar = new JMenuBar();
315 jMenuBar.setPreferredSize(new java.awt.Dimension(0, 18));
316 jMenuBar.add(getJMenuFile());
317 jMenuBar.add(getJMenuEdit());
318 jMenuBar.add(getJMenuView());
319 jMenuBar.add(getJMenuProject());
320 jMenuBar.add(getJMenuTools());
321 jMenuBar.add(getJMenuWindow());
322 jMenuBar.add(getJMenuHelp());
323 }
324 return jMenuBar;
325 }
326
327 /**
328 This method initializes jSplitPane
329
330 @return javax.swing.JSplitPane
331
332 **/
333 private JSplitPane getJSplitPane() {
334 if (jSplitPane == null) {
335 jSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, getJTabbedPaneTree(), getJTabbedPaneEditor());
336 jSplitPane.setBounds(new java.awt.Rectangle(0, 1, DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_WIDTH,
337 DataType.MAIN_FRAME_SPLIT_PANEL_PREFERRED_SIZE_HEIGHT));
338 jSplitPane.addComponentListener(this);
339 }
340 return jSplitPane;
341 }
342
343 /**
344 This method initializes jTabbedPaneEditor
345
346 @return javax.swing.JTabbedPane
347
348 */
349 private JTabbedPane getJTabbedPaneEditor() {
350 if (jTabbedPaneEditor == null) {
351 jTabbedPaneEditor = new JTabbedPane();
352 jTabbedPaneEditor.setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
353 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
354 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
355 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
356 jTabbedPaneEditor
357 .setMinimumSize(new java.awt.Dimension(
358 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
359 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
360 //jTabbedPaneEditor.addChangeListener(this);
361 jTabbedPaneEditor.addTab("Module", null, getJDesktopPaneModule(), null);
362 jTabbedPaneEditor.addTab("Package", null, getJDesktopPanePackage(), null);
363 jTabbedPaneEditor.addTab("Platform", null, getJDesktopPanePlatform(), null);
364 }
365 return jTabbedPaneEditor;
366 }
367
368 /**
369 This method initializes jTabbedPaneTree
370
371 @return javax.swing.JTabbedPane
372
373 */
374 private JTabbedPane getJTabbedPaneTree() {
375 if (jTabbedPaneTree == null) {
376 jTabbedPaneTree = new JTabbedPane();
377 jTabbedPaneTree
378 .setPreferredSize(new java.awt.Dimension(
379 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
380 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
381 jTabbedPaneTree
382 .setMinimumSize(new java.awt.Dimension(DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
383 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
384 jTabbedPaneTree.addTab("Workspace Explorer", null, getJScrollPaneTree(), null);
385 }
386 return jTabbedPaneTree;
387 }
388
389 /**
390 This method initializes jMenuFile
391
392 @return javax.swing.JMenu jMenuModule
393
394 **/
395 private JMenu getJMenuFile() {
396 if (jMenuFile == null) {
397 jMenuFile = new JMenu();
398 jMenuFile.setText("File");
399 jMenuFile.setMnemonic('F');
400 jMenuFile.add(getJMenuItemFileNew());
401 jMenuFile.add(getJMenuItemFileOpen());
402 jMenuFile.add(getJMenuItemFileClose());
403 jMenuFile.add(getJMenuItemFileCloseAll());
404 jMenuFile.addSeparator();
405 jMenuFile.add(getJMenuFileRecentFiles());
406 //jMenuFile.addSeparator();
407 jMenuFile.add(getJMenuItemFileSave());
408 jMenuFile.add(getJMenuItemFileSaveAs());
409 jMenuFile.add(getJMenuItemFileSaveAll());
410 jMenuFile.addSeparator();
411 jMenuFile.add(getJMenuItemFilePageSetup());
412 jMenuFile.add(getJMenuItemFilePrint());
413 //jMenuFile.addSeparator();
414 jMenuFile.add(getJMenuItemFileImport());
415 //jMenuFile.addSeparator();
416 jMenuFile.add(getJMenuItemFileProperties());
417 //jMenuFile.addSeparator();
418 jMenuFile.add(getJMenuItemFileExit());
419 jMenuFile.addMenuListener(this);
420 }
421 return jMenuFile;
422 }
423
424 /**
425 This method initializes jMenuItemFileSaveAs
426
427 @return javax.swing.JMenuItem jMenuItemFileSaveAs
428
429 **/
430 private JMenuItem getJMenuItemFileSaveAs() {
431 if (jMenuItemFileSaveAs == null) {
432 jMenuItemFileSaveAs = new JMenuItem();
433 jMenuItemFileSaveAs.setText("Save As...");
434 jMenuItemFileSaveAs.setMnemonic('a');
435 jMenuItemFileSaveAs.addActionListener(this);
436 jMenuItemFileSaveAs.setEnabled(false);
437 jMenuItemFileSaveAs.setVisible(false);
438 }
439 return jMenuItemFileSaveAs;
440 }
441
442 /**
443 This method initializes jMenuItemModuleExit
444
445 @return javax.swing.JMenuItem jMenuItemModuleExit
446
447 **/
448 private JMenuItem getJMenuItemFileExit() {
449 if (jMenuItemFileExit == null) {
450 jMenuItemFileExit = new JMenuItem();
451 jMenuItemFileExit.setText("Exit");
452 jMenuItemFileExit.setMnemonic('x');
453 jMenuItemFileExit.addActionListener(this);
454 }
455 return jMenuItemFileExit;
456 }
457
458 /**
459 This method initializes jMenuEdit
460
461 @return javax.swing.JMenu jMenuEdit
462
463 **/
464 private JMenu getJMenuEdit() {
465 if (jMenuEdit == null) {
466 jMenuEdit = new JMenu();
467 jMenuEdit.setText("Edit");
468 jMenuEdit.setMnemonic('E');
469 jMenuEdit.add(getJMenuItemEditUndo());
470 jMenuEdit.add(getJMenuItemEditRedo());
471 jMenuEdit.addSeparator();
472 jMenuEdit.add(getJMenuItemEditCut());
473 jMenuEdit.add(getJMenuItemEditCopy());
474 jMenuEdit.add(getJMenuItemEditPaste());
475 jMenuEdit.add(getJMenuItemEditDelete());
476 jMenuEdit.addSeparator();
477 jMenuEdit.add(getJMenuItemEditSelectAll());
478 jMenuEdit.add(getJMenuItemEditFind());
479 jMenuEdit.add(getJMenuItemEditFindNext());
480 jMenuEdit.addSeparator();
481 jMenuEdit.setVisible(false);
482 }
483 return jMenuEdit;
484 }
485
486 /**
487 This method initializes jDesktopPane
488
489 @return javax.swing.JDesktopPane jDesktopPane
490
491 **/
492 private JDesktopPane getJDesktopPaneModule() {
493 if (jDesktopPaneModule == null) {
494 jDesktopPaneModule = new JDesktopPane();
495 jDesktopPaneModule
496 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
497 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
498 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
499 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
500 jDesktopPaneModule
501 .setMinimumSize(new java.awt.Dimension(
502 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
503 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
504 jDesktopPaneModule.setDesktopManager(iDesktopManager);
505 jDesktopPaneModule.addComponentListener(this);
506 }
507 return jDesktopPaneModule;
508 }
509
510 /**
511 This method initializes jDesktopPane
512
513 @return javax.swing.JDesktopPane jDesktopPane
514
515 **/
516 private JDesktopPane getJDesktopPanePackage() {
517 if (jDesktopPanePackage == null) {
518 jDesktopPanePackage = new JDesktopPane();
519 jDesktopPanePackage
520 .setBounds(new java.awt.Rectangle(DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
521 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
522 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
523 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
524 jDesktopPanePackage
525 .setMinimumSize(new java.awt.Dimension(
526 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
527 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
528 jDesktopPanePackage.setDesktopManager(iDesktopManager);
529 jDesktopPanePackage.addComponentListener(this);
530 }
531 return jDesktopPanePackage;
532 }
533
534 /**
535 This method initializes jDesktopPane
536
537 @return javax.swing.JDesktopPane jDesktopPane
538
539 **/
540 private JDesktopPane getJDesktopPanePlatform() {
541 if (jDesktopPanePlatform == null) {
542 jDesktopPanePlatform = new JDesktopPane();
543 jDesktopPanePlatform
544 .setBounds(new java.awt.Rectangle(
545 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_X,
546 DataType.MAIN_FRAME_EDITOR_PANEL_LOCATION_Y,
547 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
548 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
549 jDesktopPanePlatform
550 .setMinimumSize(new java.awt.Dimension(
551 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_WIDTH,
552 DataType.MAIN_FRAME_EDITOR_PANEL_PREFERRED_SIZE_HEIGHT));
553 jDesktopPanePlatform.setDesktopManager(iDesktopManager);
554 jDesktopPanePlatform.addComponentListener(this);
555 }
556 return jDesktopPanePlatform;
557 }
558
559 /**
560 This method initializes jScrollPaneTree
561
562 @return javax.swing.JScrollPane jScrollPaneTree
563
564 **/
565 private JScrollPane getJScrollPaneTree() {
566 if (jScrollPaneTree == null) {
567 jScrollPaneTree = new JScrollPane();
568 //jScrollPaneTree.setBounds(new java.awt.Rectangle(0, 1, 290, 545));
569 jScrollPaneTree
570 .setPreferredSize(new java.awt.Dimension(
571 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH,
572 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
573 jScrollPaneTree
574 .setMinimumSize(new java.awt.Dimension(
575 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_WIDTH / 2,
576 DataType.MAIN_FRAME_TREE_PANEL_PREFERRED_SIZE_HEIGHT));
577 jScrollPaneTree.setViewportView(getITree());
578 }
579 return jScrollPaneTree;
580 }
581
582 /**
583 This method initializes iTree
584
585 @return org.tianocore.packaging.common.ui.ITree iTree
586
587 **/
588 private ITree getITree() {
589 //
590 //Before open a real module, use an empty root node for the tree
591 //
592 makeEmptyTree();
593 return iTree;
594 }
595
596 /**
597 This method initializes jMenuHelp
598
599 @return javax.swing.JMenu jMenuHelp
600
601 **/
602 private JMenu getJMenuHelp() {
603 if (jMenuHelp == null) {
604 jMenuHelp = new JMenu();
605 jMenuHelp.setText("Help");
606 jMenuHelp.add(getJMenuItemHelpContents());
607 jMenuHelp.add(getJMenuItemHelpIndex());
608 jMenuHelp.add(getJMenuItemHelpSearch());
609 //jMenuHelp.addSeparator();
610 jMenuHelp.add(getJMenuItemHelpAbout());
611 }
612 return jMenuHelp;
613 }
614
615 /**
616 This method initializes jMenuItemHelpAbout
617
618 @return javax.swing.JMenuItem jMenuItemHelpAbout
619
620 **/
621 private JMenuItem getJMenuItemHelpAbout() {
622 if (jMenuItemHelpAbout == null) {
623 jMenuItemHelpAbout = new JMenuItem();
624 jMenuItemHelpAbout.setText("About...");
625 jMenuItemHelpAbout.addActionListener(this);
626 }
627 return jMenuItemHelpAbout;
628 }
629
630 /**
631 This method initializes jMenuItemEditDelete
632
633 @return javax.swing.JMenuItem jMenuItemEditDelete
634
635 **/
636 private JMenuItem getJMenuItemEditDelete() {
637 if (jMenuItemEditDelete == null) {
638 jMenuItemEditDelete = new JMenuItem();
639 jMenuItemEditDelete.setText("Delete");
640 jMenuItemEditDelete.setMnemonic('D');
641 jMenuItemEditDelete.addActionListener(this);
642 //
643 //Disabled when no module is open
644 //
645 jMenuItemEditDelete.setEnabled(false);
646 }
647 return jMenuItemEditDelete;
648 }
649
650 // /**
651 // This method initializes jPopupMenu
652 //
653 // @return javax.swing.JPopupMenu jPopupMenu
654 //
655 // **/
656 // private JPopupMenu getJPopupMenu() {
657 // if (jPopupMenu == null) {
658 // jPopupMenu = new JPopupMenu();
659 // //
660 // //Add menu items of popup menu
661 // //
662 // jPopupMenu.add(getJMenuItemPopupAdd());
663 // jPopupMenu.add(getJMenuItemPopupUpdate());
664 // jPopupMenu.add(getJMenuItemPopupDelete());
665 // jPopupMenu.setBorder(new BevelBorder(BevelBorder.RAISED));
666 // jPopupMenu.addMouseListener(this);
667 // }
668 // return jPopupMenu;
669 // }
670 //
671 // /**
672 // This method initializes jMenuItemPopupAdd
673 //
674 // @return javax.swing.JMenuItem jMenuItemPopupAdd
675 //
676 // **/
677 // private JMenuItem getJMenuItemPopupAdd() {
678 // if (jMenuItemPopupAdd == null) {
679 // jMenuItemPopupAdd = new JMenuItem();
680 // jMenuItemPopupAdd.setText("Add");
681 // jMenuItemPopupAdd.addActionListener(this);
682 // jMenuItemPopupAdd.setEnabled(false);
683 // }
684 // return jMenuItemPopupAdd;
685 // }
686 //
687 // /**
688 // This method initializes jMenuItemPopupUpdate
689 //
690 // @return javax.swing.JMenuItem jMenuItemPopupUpdate
691 //
692 // **/
693 // private JMenuItem getJMenuItemPopupUpdate() {
694 // if (jMenuItemPopupUpdate == null) {
695 // jMenuItemPopupUpdate = new JMenuItem();
696 // jMenuItemPopupUpdate.setText("Update");
697 // jMenuItemPopupUpdate.addActionListener(this);
698 // jMenuItemPopupUpdate.setEnabled(false);
699 // }
700 // return jMenuItemPopupUpdate;
701 // }
702 //
703 // /**
704 // This method initializes jMenuItemPopupDelete
705 //
706 // @return javax.swing.JMenuItem jMenuItemPopupDelete
707 //
708 // **/
709 // private JMenuItem getJMenuItemPopupDelete() {
710 // if (jMenuItemPopupDelete == null) {
711 // jMenuItemPopupDelete = new JMenuItem();
712 // jMenuItemPopupDelete.setText("Delete");
713 // jMenuItemPopupDelete.addActionListener(this);
714 // jMenuItemPopupDelete.setEnabled(false);
715 // }
716 // return jMenuItemPopupDelete;
717 // }
718
719 /**
720 This method initializes jMenuFileNew
721
722 @return javax.swing.JMenuItem jMenuFileNew
723
724 **/
725 private JMenuItem getJMenuItemFileNew() {
726 if (jMenuItemFileNew == null) {
727 jMenuItemFileNew = new JMenuItem();
728 jMenuItemFileNew.setText("New...");
729 jMenuItemFileNew.setMnemonic('N');
730 jMenuItemFileNew.addActionListener(this);
731 }
732 return jMenuItemFileNew;
733 }
734
735 /**
736 This method initializes jMenuItemFileSave
737
738 @return javax.swing.JMenuItem jMenuItemModuleSave
739
740 **/
741 private JMenuItem getJMenuItemFileSave() {
742 if (jMenuItemFileSave == null) {
743 jMenuItemFileSave = new JMenuItem();
744 jMenuItemFileSave.setText("Save");
745 jMenuItemFileSave.setMnemonic('S');
746 jMenuItemFileSave.addActionListener(this);
747 jMenuItemFileSave.setEnabled(true);
748 }
749 return jMenuItemFileSave;
750 }
751
752 /**
753 This method initializes jMenuItemModuleClose
754
755 @return javax.swing.JMenuItem jMenuItemModuleClose
756
757 **/
758 private JMenuItem getJMenuItemFileClose() {
759 if (jMenuItemFileClose == null) {
760 jMenuItemFileClose = new JMenuItem();
761 jMenuItemFileClose.setText("Close");
762 jMenuItemFileClose.setMnemonic('C');
763 jMenuItemFileClose.setEnabled(true);
764 jMenuItemFileClose.addActionListener(this);
765 }
766 return jMenuItemFileClose;
767 }
768
769 /**
770 This method initializes jMenuTools
771 Reserved
772
773 @return javax.swing.JMenu jMenuTools
774
775 **/
776 private JMenu getJMenuTools() {
777 if (jMenuTools == null) {
778 jMenuTools = new JMenu();
779 jMenuTools.setText("Tools");
780 jMenuTools.setMnemonic('T');
781 jMenuTools.add(getJMenuItemToolsToolChainConfiguration());
782 jMenuTools.addSeparator();
783 jMenuTools.add(getJMenuItemToolsClone());
784 //jMenuTools.addSeparator();
785 jMenuTools.add(getJMenuItemToolsCodeScan());
786 jMenuTools.addMenuListener(this);
787 }
788 return jMenuTools;
789 }
790
791 /**
792 This method initializes jMenuWindow
793 Reserved
794
795 @return javax.swing.JMenu jMenuWindow
796
797 **/
798 private JMenu getJMenuWindow() {
799 if (jMenuWindow == null) {
800 jMenuWindow = new JMenu();
801 jMenuWindow.setText("Window");
802 jMenuWindow.setMnemonic('W');
803 jMenuWindow.add(getJMenuItemWindowDisplaySide());
804 jMenuWindow.add(getJMenuItemWindowDisplayTopBottom());
805 jMenuWindow.addSeparator();
806 jMenuWindow.add(getJMenuItemWindowTabView());
807 jMenuWindow.addSeparator();
808 jMenuWindow.add(getJMenuItemWindowSource());
809 jMenuWindow.add(getJMenuItemWindowXML());
810 jMenuWindow.addSeparator();
811 jMenuWindow.add(getJMenuItemWindowPreferences());
812 jMenuWindow.setVisible(false);
813 }
814 return jMenuWindow;
815 }
816
817 /**
818 This method initializes jPanelOperation
819
820 @return javax.swing.JPanel jPanelOperation
821
822 **/
823 private JPanel getJPanelOperation() {
824 if (jPanelOperation == null) {
825 jPanelOperation = new JPanel();
826 jPanelOperation.setLayout(null);
827 jPanelOperation.setBounds(new java.awt.Rectangle(295, 520, 500, 25));
828 jPanelOperation.add(getJButtonOk(), null);
829 jPanelOperation.add(getJButtonCancel(), null);
830 jPanelOperation.setVisible(false);
831 }
832 return jPanelOperation;
833 }
834
835 /**
836 This method initializes jButtonOk
837
838 @return javax.swing.JButton jButtonOk
839
840 **/
841 private JButton getJButtonOk() {
842 if (jButtonOk == null) {
843 jButtonOk = new JButton();
844 jButtonOk.setBounds(new java.awt.Rectangle(395, 2, 90, 20));
845 jButtonOk.setText("Ok");
846 jButtonOk.setEnabled(false);
847 jButtonOk.addActionListener(this);
848 }
849 return jButtonOk;
850 }
851
852 /**
853 This method initializes jButtonCancel
854
855 @return javax.swing.JButton jButtonCancel
856
857 **/
858 private JButton getJButtonCancel() {
859 if (jButtonCancel == null) {
860 jButtonCancel = new JButton();
861 jButtonCancel.setBounds(new java.awt.Rectangle(395, 2, 90, 20));
862 jButtonCancel.setText("Cancel");
863 jButtonCancel.setEnabled(false);
864 jButtonCancel.addActionListener(this);
865 jButtonCancel.setVisible(false);
866 }
867 return jButtonCancel;
868 }
869
870 /**
871 This method initializes jMenuItemFileOpen
872
873 @return javax.swing.JMenuItem jMenuItemFileOpen
874 */
875 private JMenuItem getJMenuItemFileOpen() {
876 if (jMenuItemFileOpen == null) {
877 jMenuItemFileOpen = new JMenuItem();
878 jMenuItemFileOpen.setText("Open...");
879 jMenuItemFileOpen.setMnemonic('O');
880 jMenuItemFileOpen.addActionListener(this);
881 }
882 return jMenuItemFileOpen;
883 }
884
885 /**
886 This method initializes jMenuItemFileCloseAll
887
888 @return javax.swing.JMenuItem jMenuItemFileOpen
889 */
890 private JMenuItem getJMenuItemFileCloseAll() {
891 if (jMenuItemFileCloseAll == null) {
892 jMenuItemFileCloseAll = new JMenuItem();
893 jMenuItemFileCloseAll.setText("Close All");
894 jMenuItemFileCloseAll.setEnabled(true);
895 jMenuItemFileCloseAll.addActionListener(this);
896 }
897 return jMenuItemFileCloseAll;
898 }
899
900 /**
901 This method initializes jMenuItemFileSaveAll
902
903 @return javax.swing.JMenuItem jMenuItemFileSaveAll
904 */
905 private JMenuItem getJMenuItemFileSaveAll() {
906 if (jMenuItemFileSaveAll == null) {
907 jMenuItemFileSaveAll = new JMenuItem();
908 jMenuItemFileSaveAll.setText("Save All");
909 jMenuItemFileSaveAll.setMnemonic('v');
910 jMenuItemFileSaveAll.setEnabled(true);
911 jMenuItemFileSaveAll.addActionListener(this);
912 }
913 return jMenuItemFileSaveAll;
914 }
915
916 /**
917 This method initializes jMenuItemFilePageSetup
918
919 @return javax.swing.JMenuItem
920 */
921 private JMenuItem getJMenuItemFilePageSetup() {
922 if (jMenuItemFilePageSetup == null) {
923 jMenuItemFilePageSetup = new JMenuItem();
924 jMenuItemFilePageSetup.setText("Page Setup");
925 jMenuItemFilePageSetup.setMnemonic('u');
926 jMenuItemFilePageSetup.setEnabled(false);
927 jMenuItemFilePageSetup.addActionListener(this);
928 jMenuItemFilePageSetup.setVisible(false);
929 }
930 return jMenuItemFilePageSetup;
931 }
932
933 /**
934 This method initializes jMenuItemFilePrint
935
936 @return javax.swing.JMenuItem
937 */
938 private JMenuItem getJMenuItemFilePrint() {
939 if (jMenuItemFilePrint == null) {
940 jMenuItemFilePrint = new JMenuItem();
941 jMenuItemFilePrint.setText("Print");
942 jMenuItemFilePrint.setMnemonic('P');
943 jMenuItemFilePrint.setEnabled(false);
944 jMenuItemFilePrint.addActionListener(this);
945 jMenuItemFilePrint.setVisible(false);
946 }
947 return jMenuItemFilePrint;
948 }
949
950 /**
951 This method initializes jMenuItemFileImport
952
953 @return javax.swing.JMenuItem
954 */
955 private JMenuItem getJMenuItemFileImport() {
956 if (jMenuItemFileImport == null) {
957 jMenuItemFileImport = new JMenuItem();
958 jMenuItemFileImport.setText("Import");
959 jMenuItemFileImport.setMnemonic('I');
960 jMenuItemFileImport.setEnabled(false);
961 jMenuItemFileImport.addActionListener(this);
962 jMenuItemFileImport.setVisible(false);
963 }
964 return jMenuItemFileImport;
965 }
966
967 /**
968 * This method initializes jMenuItemFileProperties
969 *
970 * @return javax.swing.JMenuItem
971 */
972 private JMenuItem getJMenuItemFileProperties() {
973 if (jMenuItemFileProperties == null) {
974 jMenuItemFileProperties = new JMenuItem();
975 jMenuItemFileProperties.setText("Properties");
976 jMenuItemFileProperties.setMnemonic('t');
977 jMenuItemFileProperties.setEnabled(false);
978 jMenuItemFileProperties.addActionListener(this);
979 jMenuItemFileProperties.setVisible(false);
980 }
981 return jMenuItemFileProperties;
982 }
983
984 /**
985 * This method initializes jMenuFileRecentFiles
986 *
987 * @return javax.swing.JMenu
988 */
989 private JMenu getJMenuFileRecentFiles() {
990 if (jMenuFileRecentFiles == null) {
991 jMenuFileRecentFiles = new JMenu();
992 jMenuFileRecentFiles.setText("Recent Files");
993 jMenuFileRecentFiles.setMnemonic('F');
994 jMenuFileRecentFiles.setEnabled(false);
995 jMenuFileRecentFiles.addActionListener(this);
996 jMenuFileRecentFiles.setVisible(false);
997 }
998 return jMenuFileRecentFiles;
999 }
1000
1001 /**
1002 This method initializes jMenuItemEditUndo
1003
1004 @return javax.swing.JMenuItem
1005 */
1006 private JMenuItem getJMenuItemEditUndo() {
1007 if (jMenuItemEditUndo == null) {
1008 jMenuItemEditUndo = new JMenuItem();
1009 jMenuItemEditUndo.setText("Undo");
1010 jMenuItemEditUndo.setMnemonic('U');
1011 jMenuItemEditUndo.setEnabled(false);
1012 jMenuItemEditUndo.addActionListener(this);
1013 }
1014 return jMenuItemEditUndo;
1015 }
1016
1017 /**
1018 This method initializes jMenuItemEditRedo
1019
1020 @return javax.swing.JMenuItem
1021 */
1022 private JMenuItem getJMenuItemEditRedo() {
1023 if (jMenuItemEditRedo == null) {
1024 jMenuItemEditRedo = new JMenuItem();
1025 jMenuItemEditRedo.setText("Redo");
1026 jMenuItemEditRedo.setMnemonic('R');
1027 jMenuItemEditRedo.setEnabled(false);
1028 jMenuItemEditRedo.addActionListener(this);
1029 }
1030 return jMenuItemEditRedo;
1031 }
1032
1033 /**
1034 This method initializes jMenuItemEditCut
1035
1036 @return javax.swing.JMenuItem
1037 */
1038 private JMenuItem getJMenuItemEditCut() {
1039 if (jMenuItemEditCut == null) {
1040 jMenuItemEditCut = new JMenuItem();
1041 jMenuItemEditCut.setText("Cut");
1042 jMenuItemEditCut.setMnemonic('t');
1043 jMenuItemEditCut.setEnabled(false);
1044 jMenuItemEditCut.addActionListener(this);
1045 }
1046 return jMenuItemEditCut;
1047 }
1048
1049 /**
1050 This method initializes jMenuItemEditCopy
1051
1052 @return javax.swing.JMenuItem
1053 */
1054 private JMenuItem getJMenuItemEditCopy() {
1055 if (jMenuItemEditCopy == null) {
1056 jMenuItemEditCopy = new JMenuItem();
1057 jMenuItemEditCopy.setText("Copy");
1058 jMenuItemEditCopy.setMnemonic('C');
1059 jMenuItemEditCopy.setEnabled(false);
1060 jMenuItemEditCopy.addActionListener(this);
1061 }
1062 return jMenuItemEditCopy;
1063 }
1064
1065 /**
1066 This method initializes jMenuItemEditPaste
1067
1068 return javax.swing.JMenuItem
1069 */
1070 private JMenuItem getJMenuItemEditPaste() {
1071 if (jMenuItemEditPaste == null) {
1072 jMenuItemEditPaste = new JMenuItem();
1073 jMenuItemEditPaste.setText("Paste");
1074 jMenuItemEditPaste.setMnemonic('P');
1075 jMenuItemEditPaste.setEnabled(false);
1076 jMenuItemEditPaste.addActionListener(this);
1077 }
1078 return jMenuItemEditPaste;
1079 }
1080
1081 /**
1082 This method initializes jMenuItem
1083
1084 @return javax.swing.JMenuItem
1085 */
1086 private JMenuItem getJMenuItemEditSelectAll() {
1087 if (jMenuItemEditSelectAll == null) {
1088 jMenuItemEditSelectAll = new JMenuItem();
1089 jMenuItemEditSelectAll.setText("Select All");
1090 jMenuItemEditSelectAll.setMnemonic('A');
1091 jMenuItemEditSelectAll.setEnabled(false);
1092 jMenuItemEditSelectAll.addActionListener(this);
1093 }
1094 return jMenuItemEditSelectAll;
1095 }
1096
1097 /**
1098 This method initializes jMenuItemEditFind
1099
1100 @return javax.swing.JMenuItem
1101 */
1102 private JMenuItem getJMenuItemEditFind() {
1103 if (jMenuItemEditFind == null) {
1104 jMenuItemEditFind = new JMenuItem();
1105 jMenuItemEditFind.setText("Find");
1106 jMenuItemEditFind.setMnemonic('F');
1107 jMenuItemEditFind.setEnabled(false);
1108 jMenuItemEditFind.addActionListener(this);
1109 }
1110 return jMenuItemEditFind;
1111 }
1112
1113 /**
1114 This method initializes jMenuItemEditFindNext
1115
1116 @return javax.swing.JMenuItem
1117
1118 */
1119 private JMenuItem getJMenuItemEditFindNext() {
1120 if (jMenuItemEditFindNext == null) {
1121 jMenuItemEditFindNext = new JMenuItem();
1122 jMenuItemEditFindNext.setText("Find Next");
1123 jMenuItemEditFindNext.setMnemonic('n');
1124 jMenuItemEditFindNext.setEnabled(false);
1125 jMenuItemEditFindNext.addActionListener(this);
1126 }
1127 return jMenuItemEditFindNext;
1128 }
1129
1130 /**
1131 This method initializes jMenuView
1132
1133 @return javax.swing.JMenu
1134
1135 */
1136 private JMenu getJMenuView() {
1137 if (jMenuView == null) {
1138 jMenuView = new JMenu();
1139 jMenuView.setText("View");
1140 jMenuView.setMnemonic('V');
1141 jMenuView.add(getJMenuViewToolbars());
1142 jMenuView.add(getJMenuItemViewAdvanced());
1143 jMenuView.add(getJMenuItemViewStandard());
1144 jMenuView.add(getJMenuItemViewXML());
1145 jMenuView.setVisible(false);
1146 }
1147 return jMenuView;
1148 }
1149
1150 /**
1151 This method initializes jMenuViewToolbars
1152
1153 @return javax.swing.JMenu
1154
1155 */
1156 private JMenu getJMenuViewToolbars() {
1157 if (jMenuViewToolbars == null) {
1158 jMenuViewToolbars = new JMenu();
1159 jMenuViewToolbars.setText("Toolbars");
1160 jMenuViewToolbars.setMnemonic('T');
1161 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsFile());
1162 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsEdit());
1163 jMenuViewToolbars.add(getJCheckBoxMenuItemViewToolbarsWindow());
1164 }
1165 return jMenuViewToolbars;
1166 }
1167
1168 /**
1169 This method initializes jCheckBoxMenuItemViewToolbarsFile
1170
1171 @return javax.swing.JCheckBoxMenuItem
1172
1173 */
1174 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsFile() {
1175 if (jCheckBoxMenuItemViewToolbarsFile == null) {
1176 jCheckBoxMenuItemViewToolbarsFile = new JCheckBoxMenuItem();
1177 jCheckBoxMenuItemViewToolbarsFile.setText("File");
1178 jCheckBoxMenuItemViewToolbarsFile.setEnabled(false);
1179 jCheckBoxMenuItemViewToolbarsFile.addActionListener(this);
1180 }
1181 return jCheckBoxMenuItemViewToolbarsFile;
1182 }
1183
1184 /**
1185 This method initializes jCheckBoxMenuItemViewToolbarsEdit
1186
1187 @return javax.swing.JCheckBoxMenuItem
1188
1189 */
1190 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsEdit() {
1191 if (jCheckBoxMenuItemViewToolbarsEdit == null) {
1192 jCheckBoxMenuItemViewToolbarsEdit = new JCheckBoxMenuItem();
1193 jCheckBoxMenuItemViewToolbarsEdit.setText("Edit");
1194 jCheckBoxMenuItemViewToolbarsEdit.setEnabled(false);
1195 jCheckBoxMenuItemViewToolbarsEdit.addActionListener(this);
1196 }
1197 return jCheckBoxMenuItemViewToolbarsEdit;
1198 }
1199
1200 /**
1201 This method initializes jCheckBoxMenuItemViewToolbarsWindow
1202
1203 @return javax.swing.JCheckBoxMenuItem
1204
1205 */
1206 private JCheckBoxMenuItem getJCheckBoxMenuItemViewToolbarsWindow() {
1207 if (jCheckBoxMenuItemViewToolbarsWindow == null) {
1208 jCheckBoxMenuItemViewToolbarsWindow = new JCheckBoxMenuItem();
1209 jCheckBoxMenuItemViewToolbarsWindow.setText("Window");
1210 jCheckBoxMenuItemViewToolbarsWindow.setEnabled(false);
1211 jCheckBoxMenuItemViewToolbarsWindow.addActionListener(this);
1212 }
1213 return jCheckBoxMenuItemViewToolbarsWindow;
1214 }
1215
1216 /**
1217 This method initializes jMenuItemStandard
1218
1219 @return javax.swing.JMenuItem
1220
1221 */
1222 private JMenuItem getJMenuItemViewStandard() {
1223 if (jMenuItemViewStandard == null) {
1224 jMenuItemViewStandard = new JMenuItem();
1225 jMenuItemViewStandard.setText("Standard");
1226 jMenuItemViewStandard.setMnemonic('S');
1227 jMenuItemViewStandard.setEnabled(false);
1228 jMenuItemViewStandard.addActionListener(this);
1229 }
1230 return jMenuItemViewStandard;
1231 }
1232
1233 /**
1234 This method initializes jMenuItemAdvanced
1235
1236 @return javax.swing.JMenuItem
1237
1238 */
1239 private JMenuItem getJMenuItemViewAdvanced() {
1240 if (jMenuItemViewAdvanced == null) {
1241 jMenuItemViewAdvanced = new JMenuItem();
1242 jMenuItemViewAdvanced.setText("Advanced");
1243 jMenuItemViewAdvanced.setMnemonic('A');
1244 jMenuItemViewAdvanced.setEnabled(false);
1245 jMenuItemViewAdvanced.addActionListener(this);
1246 }
1247 return jMenuItemViewAdvanced;
1248 }
1249
1250 /**
1251 This method initializes jMenuProject
1252
1253 @return javax.swing.JMenu
1254
1255 */
1256 private JMenu getJMenuProject() {
1257 if (jMenuProject == null) {
1258 jMenuProject = new JMenu();
1259 jMenuProject.setText("Project");
1260 jMenuProject.setMnemonic('P');
1261 jMenuProject.add(getJMenuItemProjectAdmin());
1262 //jMenuProject.addSeparator();
1263 jMenuProject.add(getJMenuItemProjectChangeWorkspace());
1264 jMenuProject.addSeparator();
1265 jMenuProject.add(getJMenuItemProjectInstallPackage());
1266 jMenuProject.add(getJMenuItemProjectUpdatePackage());
1267 jMenuProject.add(getJMenuItemProjectRemovePackage());
1268 //jMenuProject.addSeparator();
1269 jMenuProject.add(getJMenuProjectBuildTargets());
1270 }
1271 return jMenuProject;
1272 }
1273
1274 /**
1275 This method initializes jMenuItemProjectAdmin
1276
1277 @return javax.swing.JMenuItem
1278
1279 */
1280 private JMenuItem getJMenuItemProjectAdmin() {
1281 if (jMenuItemProjectAdmin == null) {
1282 jMenuItemProjectAdmin = new JMenuItem();
1283 jMenuItemProjectAdmin.setText("Admin...");
1284 jMenuItemProjectAdmin.setMnemonic('A');
1285 jMenuItemProjectAdmin.setEnabled(false);
1286 jMenuItemProjectAdmin.addActionListener(this);
1287 jMenuItemProjectAdmin.setVisible(false);
1288 }
1289 return jMenuItemProjectAdmin;
1290 }
1291
1292 /**
1293 This method initializes jMenuItemProjectChangeWorkspace
1294
1295 @return javax.swing.JMenuItem
1296
1297 */
1298 private JMenuItem getJMenuItemProjectChangeWorkspace() {
1299 if (jMenuItemProjectChangeWorkspace == null) {
1300 jMenuItemProjectChangeWorkspace = new JMenuItem();
1301 jMenuItemProjectChangeWorkspace.setText("Change WORKSPACE...");
1302 jMenuItemProjectChangeWorkspace.setMnemonic('W');
1303 jMenuItemProjectChangeWorkspace.setEnabled(true);
1304 jMenuItemProjectChangeWorkspace.addActionListener(this);
1305 }
1306 return jMenuItemProjectChangeWorkspace;
1307 }
1308
1309 /**
1310 This method initializes jMenuProjectBuildTargets
1311
1312 @return javax.swing.JMenu
1313
1314 */
1315 private JMenu getJMenuProjectBuildTargets() {
1316 if (jMenuProjectBuildTargets == null) {
1317 jMenuProjectBuildTargets = new JMenu();
1318 jMenuProjectBuildTargets.setText("Build Targets");
1319 jMenuProjectBuildTargets.setMnemonic('T');
1320 jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsDebug());
1321 jMenuProjectBuildTargets.add(getJCheckBoxMenuItemProjectBuildTargetsRelease());
1322 jMenuProjectBuildTargets.setVisible(false);
1323 }
1324 return jMenuProjectBuildTargets;
1325 }
1326
1327 /**
1328 This method initializes jCheckBoxMenuItemProjectBuildTargetsDebug
1329
1330 @return javax.swing.JCheckBoxMenuItem
1331
1332 */
1333 private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsDebug() {
1334 if (jCheckBoxMenuItemProjectBuildTargetsDebug == null) {
1335 jCheckBoxMenuItemProjectBuildTargetsDebug = new JCheckBoxMenuItem();
1336 jCheckBoxMenuItemProjectBuildTargetsDebug.setText("Debug");
1337 jCheckBoxMenuItemProjectBuildTargetsDebug.setEnabled(false);
1338 }
1339 return jCheckBoxMenuItemProjectBuildTargetsDebug;
1340 }
1341
1342 /**
1343 This method initializes jCheckBoxMenuItemProjectBuildTargetsRelease
1344
1345 @return javax.swing.JCheckBoxMenuItem
1346
1347 */
1348 private JCheckBoxMenuItem getJCheckBoxMenuItemProjectBuildTargetsRelease() {
1349 if (jCheckBoxMenuItemProjectBuildTargetsRelease == null) {
1350 jCheckBoxMenuItemProjectBuildTargetsRelease = new JCheckBoxMenuItem();
1351 jCheckBoxMenuItemProjectBuildTargetsRelease.setText("Release");
1352 jCheckBoxMenuItemProjectBuildTargetsRelease.setEnabled(false);
1353 }
1354 return jCheckBoxMenuItemProjectBuildTargetsRelease;
1355 }
1356
1357 /**
1358 This method initializes jMenuItemToolsToolChainConfiguration
1359
1360 @return javax.swing.JMenuItem
1361
1362 */
1363 private JMenuItem getJMenuItemToolsToolChainConfiguration() {
1364 if (jMenuItemToolsToolChainConfiguration == null) {
1365 jMenuItemToolsToolChainConfiguration = new JMenuItem();
1366 jMenuItemToolsToolChainConfiguration.setText("Tool Chain Configuration...");
1367 jMenuItemToolsToolChainConfiguration.setMnemonic('C');
1368 jMenuItemToolsToolChainConfiguration.addActionListener(this);
1369 }
1370 return jMenuItemToolsToolChainConfiguration;
1371 }
1372
1373 /**
1374 This method initializes jMenuItemToolsClone
1375
1376 @return javax.swing.JMenuItem
1377
1378 */
1379 private JMenuItem getJMenuItemToolsClone() {
1380 if (jMenuItemToolsClone == null) {
1381 jMenuItemToolsClone = new JMenuItem();
1382 jMenuItemToolsClone.setText("Clone...");
1383 jMenuItemToolsClone.setMnemonic('l');
1384 jMenuItemToolsClone.setEnabled(true);
1385 jMenuItemToolsClone.addActionListener(this);
1386 }
1387 return jMenuItemToolsClone;
1388 }
1389
1390 /**
1391 This method initializes jMenuItemToolsCodeScan
1392
1393 @return javax.swing.JMenuItem
1394
1395 */
1396 private JMenuItem getJMenuItemToolsCodeScan() {
1397 if (jMenuItemToolsCodeScan == null) {
1398 jMenuItemToolsCodeScan = new JMenuItem();
1399 jMenuItemToolsCodeScan.setText("Code Scan...");
1400 jMenuItemToolsCodeScan.setMnemonic('S');
1401 jMenuItemToolsCodeScan.setEnabled(false);
1402 jMenuItemToolsCodeScan.addActionListener(this);
1403 jMenuItemToolsCodeScan.setVisible(false);
1404 }
1405 return jMenuItemToolsCodeScan;
1406 }
1407
1408 /**
1409 This method initializes jMenuItemWindowSplitVertical
1410
1411 @return javax.swing.JMenuItem
1412
1413 */
1414 private JMenuItem getJMenuItemWindowDisplaySide() {
1415 if (jMenuItemWindowDisplaySide == null) {
1416 jMenuItemWindowDisplaySide = new JMenuItem();
1417 jMenuItemWindowDisplaySide.setText("Display Side by Side");
1418 jMenuItemWindowDisplaySide.setMnemonic('S');
1419 jMenuItemWindowDisplaySide.setEnabled(false);
1420 jMenuItemWindowDisplaySide.addActionListener(this);
1421 }
1422 return jMenuItemWindowDisplaySide;
1423 }
1424
1425 /**
1426 This method initializes jMenuItemWindowSplitHorizontal
1427
1428 @return javax.swing.JMenuItem
1429
1430 */
1431 private JMenuItem getJMenuItemWindowDisplayTopBottom() {
1432 if (jMenuItemWindowDisplayTopBottom == null) {
1433 jMenuItemWindowDisplayTopBottom = new JMenuItem();
1434 jMenuItemWindowDisplayTopBottom.setText("Display Top and Bottom");
1435 jMenuItemWindowDisplayTopBottom.setMnemonic('B');
1436 jMenuItemWindowDisplayTopBottom.setEnabled(false);
1437 jMenuItemWindowDisplayTopBottom.addActionListener(this);
1438 }
1439 return jMenuItemWindowDisplayTopBottom;
1440 }
1441
1442 /**
1443 This method initializes jMenuItemViewXML
1444
1445 @return javax.swing.JMenuItem
1446
1447 */
1448 private JMenuItem getJMenuItemViewXML() {
1449 if (jMenuItemViewXML == null) {
1450 jMenuItemViewXML = new JMenuItem();
1451 jMenuItemViewXML.setText("XML");
1452 jMenuItemViewXML.setMnemonic('X');
1453 jMenuItemViewXML.setEnabled(false);
1454 jMenuItemViewXML.addActionListener(this);
1455 }
1456 return jMenuItemViewXML;
1457 }
1458
1459 /**
1460 This method initializes jMenuItemWindowTabView
1461
1462 @return javax.swing.JMenuItem
1463
1464 */
1465 private JMenuItem getJMenuItemWindowTabView() {
1466 if (jMenuItemWindowTabView == null) {
1467 jMenuItemWindowTabView = new JMenuItem();
1468 jMenuItemWindowTabView.setText("Tab View");
1469 jMenuItemWindowTabView.setMnemonic('T');
1470 jMenuItemWindowTabView.setEnabled(false);
1471 jMenuItemWindowTabView.addActionListener(this);
1472 }
1473 return jMenuItemWindowTabView;
1474 }
1475
1476 /**
1477 This method initializes jMenuItemWindowSource
1478
1479 @return javax.swing.JMenuItem
1480
1481 */
1482 private JMenuItem getJMenuItemWindowSource() {
1483 if (jMenuItemWindowSource == null) {
1484 jMenuItemWindowSource = new JMenuItem();
1485 jMenuItemWindowSource.setText("Source");
1486 jMenuItemWindowSource.setMnemonic('S');
1487 jMenuItemWindowSource.setEnabled(false);
1488 jMenuItemWindowSource.addActionListener(this);
1489 }
1490 return jMenuItemWindowSource;
1491 }
1492
1493 /**
1494 This method initializes jMenuItemWindowXML
1495
1496 @return javax.swing.JMenuItem
1497
1498 */
1499 private JMenuItem getJMenuItemWindowXML() {
1500 if (jMenuItemWindowXML == null) {
1501 jMenuItemWindowXML = new JMenuItem();
1502 jMenuItemWindowXML.setText("XML");
1503 jMenuItemWindowXML.setMnemonic('X');
1504 jMenuItemWindowXML.setEnabled(false);
1505 jMenuItemWindowXML.addActionListener(this);
1506 }
1507 return jMenuItemWindowXML;
1508 }
1509
1510 /**
1511 This method initializes jMenuItemWindowPreferences
1512
1513 @return javax.swing.JMenuItem
1514
1515 */
1516 private JMenuItem getJMenuItemWindowPreferences() {
1517 if (jMenuItemWindowPreferences == null) {
1518 jMenuItemWindowPreferences = new JMenuItem();
1519 jMenuItemWindowPreferences.setText("Preferences");
1520 jMenuItemWindowPreferences.setMnemonic('P');
1521 jMenuItemWindowPreferences.setEnabled(false);
1522 jMenuItemWindowPreferences.addActionListener(this);
1523 }
1524 return jMenuItemWindowPreferences;
1525 }
1526
1527 /**
1528 This method initializes jMenuItemHelpContents
1529
1530 @return javax.swing.JMenuItem
1531
1532 */
1533 private JMenuItem getJMenuItemHelpContents() {
1534 if (jMenuItemHelpContents == null) {
1535 jMenuItemHelpContents = new JMenuItem();
1536 jMenuItemHelpContents.setText("Contents");
1537 jMenuItemHelpContents.setMnemonic('C');
1538 jMenuItemHelpContents.setEnabled(false);
1539 jMenuItemHelpContents.addActionListener(this);
1540 jMenuItemHelpContents.setVisible(false);
1541 }
1542 return jMenuItemHelpContents;
1543 }
1544
1545 /**
1546 This method initializes jMenuItemHelpIndex
1547
1548 @return javax.swing.JMenuItem
1549
1550 */
1551 private JMenuItem getJMenuItemHelpIndex() {
1552 if (jMenuItemHelpIndex == null) {
1553 jMenuItemHelpIndex = new JMenuItem();
1554 jMenuItemHelpIndex.setText("Index");
1555 jMenuItemHelpIndex.setMnemonic('I');
1556 jMenuItemHelpIndex.setEnabled(false);
1557 jMenuItemHelpIndex.addActionListener(this);
1558 jMenuItemHelpIndex.setVisible(false);
1559 }
1560 return jMenuItemHelpIndex;
1561 }
1562
1563 /**
1564 This method initializes jMenuItemHelpSearch
1565
1566 @return javax.swing.JMenuItem
1567
1568 */
1569 private JMenuItem getJMenuItemHelpSearch() {
1570 if (jMenuItemHelpSearch == null) {
1571 jMenuItemHelpSearch = new JMenuItem();
1572 jMenuItemHelpSearch.setText("Search");
1573 jMenuItemHelpSearch.setMnemonic('S');
1574 jMenuItemHelpSearch.setEnabled(false);
1575 jMenuItemHelpSearch.addActionListener(this);
1576 jMenuItemHelpSearch.setVisible(false);
1577 }
1578 return jMenuItemHelpSearch;
1579 }
1580
1581 /**
1582 * This method initializes jToolBar
1583 *
1584 * @return javax.swing.JToolBar
1585 */
1586 // private JToolBar getJToolBarFile() {
1587 // if (jToolBarFile == null) {
1588 // jToolBarFile = new JToolBar();
1589 // jToolBarFile.setFloatable(false);
1590 // }
1591 // return jToolBarFile;
1592 // }
1593 /**
1594 * This method initializes jToolBarEdit
1595 *
1596 * @return javax.swing.JToolBar
1597 */
1598 // private JToolBar getJToolBarEdit() {
1599 // if (jToolBarEdit == null) {
1600 // jToolBarEdit = new JToolBar();
1601 // jToolBarEdit.setFloatable(false);
1602 // }
1603 // return jToolBarEdit;
1604 // }
1605 /**
1606 * This method initializes jMenuItemToolsInstallPackage
1607 *
1608 * @return javax.swing.JMenuItem
1609 */
1610 private JMenuItem getJMenuItemProjectInstallPackage() {
1611 if (jMenuItemProjectInstallPackage == null) {
1612 jMenuItemProjectInstallPackage = new JMenuItem();
1613 jMenuItemProjectInstallPackage.setText("Install Distribution Package");
1614 jMenuItemProjectInstallPackage.setMnemonic('I');
1615 jMenuItemProjectInstallPackage.setEnabled(false);
1616 jMenuItemProjectInstallPackage.addActionListener(this);
1617 }
1618 return jMenuItemProjectInstallPackage;
1619 }
1620
1621 /**
1622 * This method initializes jMenuItemToolsUpdatePackage
1623 *
1624 * @return javax.swing.JMenuItem
1625 */
1626 private JMenuItem getJMenuItemProjectUpdatePackage() {
1627 if (jMenuItemProjectUpdatePackage == null) {
1628 jMenuItemProjectUpdatePackage = new JMenuItem();
1629 jMenuItemProjectUpdatePackage.setText("Update Disstribution Package");
1630 jMenuItemProjectUpdatePackage.setMnemonic('U');
1631 jMenuItemProjectUpdatePackage.setEnabled(false);
1632 jMenuItemProjectUpdatePackage.addActionListener(this);
1633 }
1634 return jMenuItemProjectUpdatePackage;
1635 }
1636
1637 /**
1638 * This method initializes jMenuItemRemovePackage
1639 *
1640 * @return javax.swing.JMenuItem
1641 */
1642 private JMenuItem getJMenuItemProjectRemovePackage() {
1643 if (jMenuItemProjectRemovePackage == null) {
1644 jMenuItemProjectRemovePackage = new JMenuItem();
1645 jMenuItemProjectRemovePackage.setText("Remove Distribution Package");
1646 jMenuItemProjectRemovePackage.setMnemonic('R');
1647 jMenuItemProjectRemovePackage.setEnabled(false);
1648 jMenuItemProjectRemovePackage.addActionListener(this);
1649 }
1650 return jMenuItemProjectRemovePackage;
1651 }
1652
1653 /* (non-Javadoc)
1654 * @see org.tianocore.packaging.common.ui.IFrame#main(java.lang.String[])
1655 *
1656 * Main class, start the GUI
1657 *
1658 */
1659 public static void main(String[] args) {
1660 FrameworkWizardUI module = FrameworkWizardUI.getInstance();
1661 module.setVisible(true);
1662 }
1663
1664 /**
1665 This is the default constructor
1666
1667 **/
1668 public FrameworkWizardUI() {
1669 super();
1670 init();
1671 }
1672
1673 /**
1674 This method initializes this
1675
1676
1677 **/
1678 private void init() {
1679 //
1680 // Set current workspace and check
1681 // Check if exists WORKSPACE
1682 //
1683 //
1684 Workspace.setCurrentWorkspace(System.getenv("WORKSPACE"));
1685 if (!Workspace.checkCurrentWorkspace()) {
1686 JOptionPane.showConfirmDialog(null, "Workspace is not setup correctly. Please setup first.", "Warning",
1687 JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE);
1688 this.dispose();
1689 System.exit(0);
1690 }
1691
1692 this.setSize(DataType.MAIN_FRAME_PREFERRED_SIZE_WIDTH, DataType.MAIN_FRAME_PREFERRED_SIZE_HEIGHT);
1693 this.setResizable(true);
1694 this.setJMenuBar(getjJMenuBar());
1695 this.addComponentListener(this);
1696 this.getCompontentsFromFrameworkDatabase();
1697 this.setContentPane(getJContentPane());
1698 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");
1699 this.setExitType(1);
1700
1701 //
1702 // max the window
1703 //
1704 this.setExtendedState(JFrame.MAXIMIZED_BOTH);
1705 }
1706
1707 /**
1708 This method initializes jContentPane
1709
1710 @return javax.swing.JPanel jContentPane
1711
1712 **/
1713 private JPanel getJContentPane() {
1714 if (jContentPane == null) {
1715 jContentPane = new JPanel();
1716 jContentPane.setLayout(null);
1717 jContentPane.add(getJPanelOperation(), null);
1718 jContentPane.add(getJSplitPane(), null);
1719 }
1720 return jContentPane;
1721 }
1722
1723 /* (non-Javadoc)
1724 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
1725 *
1726 * Override actionPerformed to listen all actions
1727 *
1728 */
1729 public void actionPerformed(ActionEvent arg0) {
1730 //
1731 // Operations of Menu
1732 //
1733 if (arg0.getSource() == jMenuItemFileNew) {
1734 this.fileNew();
1735 }
1736
1737 if (arg0.getSource() == jMenuItemFileOpen) {
1738 this.open();
1739 }
1740
1741 if (arg0.getSource() == jMenuItemFileClose) {
1742 this.close();
1743 }
1744
1745 if (arg0.getSource() == jMenuItemFileCloseAll) {
1746 this.closeAll();
1747 }
1748
1749 if (arg0.getSource() == jMenuItemFileSave) {
1750 this.save();
1751 }
1752
1753 if (arg0.getSource() == jMenuItemFileSaveAs) {
1754 this.saveAs();
1755 }
1756
1757 if (arg0.getSource() == jMenuItemFileSaveAll) {
1758 this.saveAll();
1759 }
1760
1761 if (arg0.getSource() == jMenuItemFileExit) {
1762 this.exit();
1763 }
1764
1765 if (arg0.getSource() == jMenuItemProjectChangeWorkspace) {
1766 changeWorkspace();
1767 }
1768
1769 if (arg0.getSource() == jMenuItemToolsClone) {
1770 cloneItem();
1771 }
1772
1773 if (arg0.getSource() == jMenuItemToolsToolChainConfiguration) {
1774 setupToolChainConfiguration();
1775 }
1776
1777 if (arg0.getSource() == jMenuItemHelpAbout) {
1778 About a = new About(this, true);
1779 int result = a.showDialog();
1780 if (result == DataType.RETURN_TYPE_OK) {
1781 a.dispose();
1782 }
1783 }
1784 }
1785
1786 /**
1787 Create an empty tree if no file is open
1788
1789 **/
1790 private void makeEmptyTree() {
1791 // Make root
1792 dmtnRoot = new IDefaultMutableTreeNode("WORKSPACE", IDefaultMutableTreeNode.WORKSPACE, -1);
1793
1794 // Make Module Description
1795 dmtnModuleDescription = new IDefaultMutableTreeNode("ModuleDescription", IDefaultMutableTreeNode.MODULE, -1);
1796
1797 if (this.vModuleList.size() > 0) {
1798 for (int index = 0; index < this.vModuleList.size(); index++) {
1799 dmtnModuleDescription.add(new IDefaultMutableTreeNode(this.vModuleList.elementAt(index).getName(),
1800 IDefaultMutableTreeNode.MSA_HEADER, false,
1801 this.vModuleList.elementAt(index)));
1802 }
1803 }
1804
1805 // Make Package Description
1806 dmtnPackageDescription = new IDefaultMutableTreeNode("PackageDescription", IDefaultMutableTreeNode.PACKAGE, -1);
1807 if (this.vPackageList.size() > 0) {
1808 for (int index = 0; index < this.vPackageList.size(); index++) {
1809 dmtnPackageDescription.add(new IDefaultMutableTreeNode(this.vPackageList.elementAt(index).getName(),
1810 IDefaultMutableTreeNode.SPD_HEADER, false,
1811 this.vPackageList.elementAt(index)));
1812 }
1813 }
1814
1815 // Make Platform Description
1816 dmtnPlatformDescription = new IDefaultMutableTreeNode("PlatformDescription", IDefaultMutableTreeNode.PLATFORM,
1817 -1);
1818 if (this.vPlatformList.size() > 0) {
1819 for (int index = 0; index < this.vPlatformList.size(); index++) {
1820 dmtnPlatformDescription.add(new IDefaultMutableTreeNode(this.vPlatformList.elementAt(index).getName(),
1821 IDefaultMutableTreeNode.FPD_PLATFORMHEADER,
1822 false, this.vPlatformList.elementAt(index)));
1823 }
1824 }
1825
1826 dmtnRoot.add(dmtnModuleDescription);
1827 dmtnRoot.add(dmtnPackageDescription);
1828 dmtnRoot.add(dmtnPlatformDescription);
1829 iTree = new ITree(dmtnRoot);
1830 iTree.addMouseListener(this);
1831 jScrollPaneTree.setViewportView(iTree);
1832 }
1833
1834 /* (non-Javadoc)
1835 * @see java.awt.event.WindowListener#windowClosing(java.awt.event.WindowEvent)
1836 *
1837 * Override windowClosing to popup warning message to confirm quit
1838 *
1839 */
1840 public void windowClosing(WindowEvent arg0) {
1841 this.exit();
1842 }
1843
1844 /* (non-Javadoc)
1845 * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent)
1846 *
1847 * Override mouseClicked to check if need display popup menu
1848 *
1849 */
1850 public void mouseClicked(MouseEvent arg0) {
1851 if (arg0.getButton() == MouseEvent.BUTTON1) {
1852 }
1853 if (arg0.getButton() == MouseEvent.BUTTON3) {
1854 }
1855 //
1856 // When double click
1857 //
1858 if (arg0.getClickCount() == 2) {
1859 doubleClickModuleTreeNode();
1860 }
1861 }
1862
1863 public void mouseEntered(MouseEvent arg0) {
1864 // TODO Auto-generated method stub
1865 }
1866
1867 public void mouseExited(MouseEvent arg0) {
1868 // TODO Auto-generated method stub
1869 }
1870
1871 public void mousePressed(MouseEvent arg0) {
1872 // TODO Auto-generated method stub
1873 }
1874
1875 public void mouseReleased(MouseEvent arg0) {
1876 // TODO Auto-generated method stub
1877 }
1878
1879 /**
1880 Remove all Internal Frame of Module Desktop Pane
1881
1882 **/
1883 private void cleanDesktopPaneModule() {
1884 if (jDesktopPaneModule != null) {
1885 JInternalFrame[] iif = this.jDesktopPaneModule.getAllFrames();
1886 for (int index = 0; index < iif.length; index++) {
1887 iif[index].dispose();
1888 }
1889 }
1890 }
1891
1892 /**
1893 Remove all Internal Frame of package Desktop Pane
1894
1895 **/
1896 private void cleanDesktopPanePackage() {
1897 if (jDesktopPanePlatform != null) {
1898 JInternalFrame[] iif = this.jDesktopPanePackage.getAllFrames();
1899 for (int index = 0; index < iif.length; index++) {
1900 iif[index].dispose();
1901 }
1902 }
1903 }
1904
1905 /**
1906 Remove all Internal Frame of platform Desktop Pane
1907
1908 **/
1909 private void cleanDesktopPanePlatform() {
1910 if (jDesktopPanePlatform != null) {
1911 JInternalFrame[] iif = this.jDesktopPanePlatform.getAllFrames();
1912 for (int index = 0; index < iif.length; index++) {
1913 iif[index].dispose();
1914 }
1915 }
1916 }
1917
1918 /**
1919 Remove all Internal Frame of all Desktop Panes
1920
1921 **/
1922 private void cleanDesktopPane() {
1923 cleanDesktopPaneModule();
1924 cleanDesktopPanePackage();
1925 cleanDesktopPanePlatform();
1926 }
1927
1928 /**
1929 Set file filter as input ext
1930
1931 @param ext
1932 @return
1933
1934 **/
1935 private int getNewFilePath(String ext) {
1936 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());
1937 fc.setAcceptAllFileFilterUsed(false);
1938 fc.addChoosableFileFilter(new IFileFilter(ext));
1939 return fc.showSaveDialog(new JPanel());
1940 }
1941
1942 /**
1943 Open Module
1944
1945 @param path input file path
1946
1947 **/
1948 private void openModule(String path) {
1949 ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = null;
1950 try {
1951 msa = OpenFile.openMsaFile(path);
1952 } catch (IOException e) {
1953 Log.err("Open Module Surface Area " + path, e.getMessage());
1954 return;
1955 } catch (XmlException e) {
1956 Log.err("Open Module Surface Area " + path, e.getMessage());
1957 return;
1958 } catch (Exception e) {
1959 Log.err("Open Module Surface Area " + path, "Invalid file type");
1960 return;
1961 }
1962 Identification id = new Identification(msa.getMsaHeader().getModuleName(), msa.getMsaHeader().getGuidValue(),
1963 msa.getMsaHeader().getVersion(), path);
1964 //
1965 // Generate module id
1966 //
1967 PackageIdentification pid = wt.getPackageIdByModuleId(id);
1968 if (pid != null) {
1969 //
1970 // To judge if the module existed in vModuleList
1971 // If not, add it to vModuleList
1972 //
1973 boolean isFind = false;
1974 for (int index = 0; index < vModuleList.size(); index++) {
1975 if (vModuleList.elementAt(index).equals(id)) {
1976 isFind = true;
1977 break;
1978 }
1979 }
1980 if (!isFind) {
1981 vModuleList.addElement(new ModuleIdentification(id, pid));
1982 //
1983 // Add new MsaHeader node to the tree
1984 //
1985 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),
1986 IDefaultMutableTreeNode.MSA_HEADER, true,
1987 vModuleList.lastElement());
1988 iTree.addNode(dmtnModuleDescription, node);
1989 }
1990 } else {
1991 //
1992 // The module is not in existing packages
1993 //
1994 Log.err("The module hasn't been added to any package of current workspace!");
1995 return;
1996 }
1997
1998 // Make the node selected
1999 //
2000 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnModuleDescription, id,
2001 IDefaultMutableTreeNode.MSA_HEADER)));
2002 //
2003 // Update opening Module list information
2004 //
2005 if (!openingModuleList.existsModule(id)) {
2006 //
2007 // Insert sub node of module
2008 //
2009 insertModuleTreeNode(id);
2010 iTree.getSelectNode().setOpening(true);
2011
2012 //
2013 // Update opening module list
2014 //
2015 openingModuleList.insertToOpeningModuleList(id, msa);
2016 openingModuleList.setTreePathById(id, iTree.getSelectionPath());
2017 }
2018 //
2019 // Show msa header in editor panel
2020 //
2021 showModuleElement(IDefaultMutableTreeNode.MSA_HEADER, openingModuleList.getOpeningModuleById(id));
2022 this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);
2023 }
2024
2025 /**
2026 Open Package
2027
2028 @param path input file path
2029
2030 **/
2031 private void openPackage(String path) {
2032 PackageSurfaceAreaDocument.PackageSurfaceArea spd = null;
2033 try {
2034 spd = OpenFile.openSpdFile(path);
2035 } catch (IOException e) {
2036 Log.err("Open Package Surface Area " + path, e.getMessage());
2037 return;
2038 } catch (XmlException e) {
2039 Log.err("Open Package Surface Area " + path, e.getMessage());
2040 return;
2041 } catch (Exception e) {
2042 Log.err("Open Package Surface Area " + path, "Invalid file type");
2043 return;
2044 }
2045 Identification id = new Identification(spd.getSpdHeader().getPackageName(), spd.getSpdHeader().getGuidValue(),
2046 spd.getSpdHeader().getVersion(), path);
2047 //
2048 // To judge if the package existed in vPackageList
2049 // If not, add it to vPackageList
2050 //
2051 boolean isFind = false;
2052 for (int index = 0; index < vPackageList.size(); index++) {
2053 if (vPackageList.elementAt(index).equals(id)) {
2054 isFind = true;
2055 break;
2056 }
2057 }
2058 if (!isFind) {
2059 //
2060 // The module is not in existing packages
2061 //
2062 Log.err("The package hasn't been added to current workspace!");
2063 return;
2064 }
2065
2066 //
2067 // Make the node selected
2068 //
2069 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPackageDescription, id,
2070 IDefaultMutableTreeNode.SPD_HEADER)));
2071 //
2072 // Update opening package list information
2073 //
2074 if (!openingPackageList.existsPackage(id)) {
2075 //
2076 // Insert sub node of module
2077 //
2078 insertPackageTreeNode(id);
2079 iTree.getSelectNode().setOpening(true);
2080
2081 //
2082 // Update opening module list
2083 //
2084 openingPackageList.insertToOpeningPackageList(id, spd);
2085 openingPackageList.setTreePathById(id, iTree.getSelectionPath());
2086 }
2087 //
2088 // Show spd header in editor panel
2089 //
2090 showPackageElement(IDefaultMutableTreeNode.SPD_HEADER, openingPackageList.getOpeningPackageById(id));
2091 this.currentOpeningPackageIndex = openingPackageList.findIndexOfListById(id);
2092 }
2093
2094 /**
2095 Open Package
2096
2097 @param path input file path
2098
2099 **/
2100 private void openPlatform(String path) {
2101 PlatformSurfaceAreaDocument.PlatformSurfaceArea fpd = null;
2102 try {
2103 fpd = OpenFile.openFpdFile(path);
2104 } catch (IOException e) {
2105 Log.err("Open Platform Surface Area " + path, e.getMessage());
2106 return;
2107 } catch (XmlException e) {
2108 Log.err("Open Platform Surface Area " + path, e.getMessage());
2109 return;
2110 } catch (Exception e) {
2111 Log.err("Open Platform Surface Area " + path, "Invalid file type");
2112 return;
2113 }
2114 Identification id = new Identification(fpd.getPlatformHeader().getPlatformName(), fpd.getPlatformHeader()
2115 .getGuidValue(),
2116 fpd.getPlatformHeader().getVersion(), path);
2117 //
2118 // To judge if the platform existed in vPlatformList
2119 // If not, add it to vPlatformList
2120 //
2121 boolean isFind = false;
2122 for (int index = 0; index < vPlatformList.size(); index++) {
2123 if (vPlatformList.elementAt(index).equals(id)) {
2124 isFind = true;
2125 break;
2126 }
2127 }
2128 if (!isFind) {
2129 //
2130 // The module is not in existing packages
2131 //
2132 Log.err("The platform hasn't been added to current workspace!");
2133 return;
2134 }
2135
2136 //
2137 // Make the node selected
2138 //
2139 iTree.setSelectionPath(iTree.getPathOfNode(iTree.getNodeById(this.dmtnPlatformDescription, id,
2140 IDefaultMutableTreeNode.FPD_PLATFORMHEADER)));
2141 //
2142 // Update opening package list information
2143 //
2144 if (!openingPlatformList.existsPlatform(id)) {
2145 //
2146 // Insert sub node of module
2147 //
2148 insertPlatformTreeNode(id);
2149 iTree.getSelectNode().setOpening(true);
2150
2151 //
2152 // Update opening module list
2153 //
2154 openingPlatformList.insertToOpeningPlatformList(id, fpd);
2155 openingPlatformList.setTreePathById(id, iTree.getSelectionPath());
2156 }
2157 //
2158 // Show fpd header in editor panel
2159 //
2160 showPlatformElement(IDefaultMutableTreeNode.FPD_PLATFORMHEADER, openingPlatformList.getOpeningPlatformById(id));
2161 this.currentOpeningPlatformIndex = openingPlatformList.findIndexOfListById(id);
2162 }
2163
2164 /**
2165 Save module
2166
2167 **/
2168 private void saveModule(int index) {
2169 OpeningModuleType omt = openingModuleList.getOpeningModuleByIndex(index);
2170 if (omt.isNew()) {
2171 if (getNewFilePath(DataType.MODULE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2172 return;
2173 }
2174 }
2175 try {
2176 SaveFile.saveMsaFile(omt.getId().getPath(), omt.getXmlMsa());
2177 openingModuleList.setNew(omt.getId(), false);
2178 openingModuleList.setModuleSaved(omt.getId(), true);
2179 } catch (Exception e) {
2180 Log.err("Save Module", e.getMessage());
2181 }
2182 }
2183
2184 /**
2185 Save package
2186
2187 **/
2188 private void savePackage(int index) {
2189 OpeningPackageType opt = openingPackageList.getOpeningPackageByIndex(index);
2190 if (opt.isNew()) {
2191 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2192 return;
2193 }
2194 }
2195 try {
2196 SaveFile.saveSpdFile(opt.getId().getPath(), opt.getXmlSpd());
2197 openingPackageList.setNew(opt.getId(), false);
2198 openingPackageList.setPackageSaved(opt.getId(), true);
2199 } catch (Exception e) {
2200 Log.err("Save Package", e.getMessage());
2201 }
2202 }
2203
2204 /**
2205 Save platform
2206
2207 **/
2208 private void savePlatform(int index) {
2209 OpeningPlatformType opt = openingPlatformList.getOpeningPlatformByIndex(index);
2210 if (opt.isNew()) {
2211 if (getNewFilePath(DataType.PACKAGE_SURFACE_AREA_EXT) != JFileChooser.APPROVE_OPTION) {
2212 return;
2213 }
2214 }
2215 try {
2216 SaveFile.saveFpdFile(opt.getId().getPath(), opt.getXmlFpd());
2217 openingPlatformList.setNew(opt.getId(), false);
2218 openingPlatformList.setPlatformSaved(opt.getId(), true);
2219 } catch (Exception e) {
2220 Log.err("Save Package", e.getMessage());
2221 }
2222 }
2223
2224 public void componentHidden(ComponentEvent arg0) {
2225 // TODO Auto-generated method stub
2226
2227 }
2228
2229 public void componentMoved(ComponentEvent arg0) {
2230 // TODO Auto-generated method stub
2231
2232 }
2233
2234 public void componentResized(ComponentEvent arg0) {
2235 this.jSplitPane.setSize(this.getWidth() - DataType.MAIN_FRAME_WIDTH_SPACING,
2236 this.getHeight() - DataType.MAIN_FRAME_HEIGHT_SPACING);
2237 this.jSplitPane.validate();
2238 resizeDesktopPanel();
2239 }
2240
2241 public void componentShown(ComponentEvent arg0) {
2242 // TODO Auto-generated method stub
2243
2244 }
2245
2246 /**
2247 Resize JDesktopPanel
2248
2249 */
2250 private void resizeDesktopPanel() {
2251 resizeDesktopPanel(this.jDesktopPaneModule);
2252 resizeDesktopPanel(this.jDesktopPanePackage);
2253 resizeDesktopPanel(this.jDesktopPanePlatform);
2254 }
2255
2256 /**
2257 Resize JDesktopPanel
2258
2259 */
2260 private void resizeDesktopPanel(JDesktopPane jdk) {
2261 JInternalFrame[] iif = jdk.getAllFrames();
2262 for (int index = 0; index < iif.length; index++) {
2263 iif[index].setSize(jdk.getWidth(), jdk.getHeight());
2264 }
2265 }
2266
2267 private void getCompontentsFromFrameworkDatabase() {
2268 this.vModuleList = wt.getAllModules();
2269 this.vPackageList = wt.getAllPackages();
2270 this.vPlatformList = wt.getAllPlatforms();
2271 }
2272
2273 private void insertModuleTreeNode(Identification id) {
2274 iTree.addNode(new IDefaultMutableTreeNode("Module Definitions", IDefaultMutableTreeNode.MSA_MODULEDEFINITIONS,
2275 true, id));
2276 iTree.addNode(new IDefaultMutableTreeNode("Library Class Definitions",
2277 IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS, true, id));
2278 iTree.addNode(new IDefaultMutableTreeNode("Source Files", IDefaultMutableTreeNode.MSA_SOURCEFILES, true, id));
2279 iTree.addNode(new IDefaultMutableTreeNode("Package Dependencies",
2280 IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES, true, id));
2281 iTree.addNode(new IDefaultMutableTreeNode("Protocols", IDefaultMutableTreeNode.MSA_PROTOCOLS, true, id));
2282 iTree.addNode(new IDefaultMutableTreeNode("Events", IDefaultMutableTreeNode.MSA_EVENTS, true, id));
2283 iTree.addNode(new IDefaultMutableTreeNode("Hobs", IDefaultMutableTreeNode.MSA_HOBS, true, id));
2284 iTree.addNode(new IDefaultMutableTreeNode("Ppis", IDefaultMutableTreeNode.MSA_PPIS, true, id));
2285 iTree.addNode(new IDefaultMutableTreeNode("Variables", IDefaultMutableTreeNode.MSA_VARIABLES, true, id));
2286 iTree.addNode(new IDefaultMutableTreeNode("Boot Modes", IDefaultMutableTreeNode.MSA_BOOTMODES, true, id));
2287 iTree.addNode(new IDefaultMutableTreeNode("System Tables", IDefaultMutableTreeNode.MSA_SYSTEMTABLES, true, id));
2288 iTree.addNode(new IDefaultMutableTreeNode("Data Hubs", IDefaultMutableTreeNode.MSA_DATAHUBS, true, id));
2289 iTree.addNode(new IDefaultMutableTreeNode("Hii Packages", IDefaultMutableTreeNode.MSA_HIIPACKAGES, true, id));
2290 iTree.addNode(new IDefaultMutableTreeNode("Guids", IDefaultMutableTreeNode.MSA_GUIDS, true, id));
2291 iTree.addNode(new IDefaultMutableTreeNode("Externs", IDefaultMutableTreeNode.MSA_EXTERNS, true, id));
2292 iTree.addNode(new IDefaultMutableTreeNode("PcdCoded", IDefaultMutableTreeNode.MSA_PCDS, true, id));
2293 }
2294
2295 private void insertPackageTreeNode(Identification id) {
2296 iTree.addNode(new IDefaultMutableTreeNode("Package Definitions",
2297 IDefaultMutableTreeNode.SPD_PACKAGEDEFINITIONS, true, id));
2298 iTree.addNode(new IDefaultMutableTreeNode("Library Class Declarations",
2299 IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS, true, id));
2300 iTree.addNode(new IDefaultMutableTreeNode("Msa Files", IDefaultMutableTreeNode.SPD_MSAFILES, false, id));
2301 iTree.addNode(new IDefaultMutableTreeNode("Package Headers", IDefaultMutableTreeNode.SPD_PACKAGEHEADERS, true,
2302 id));
2303 iTree.addNode(new IDefaultMutableTreeNode("Guid Declarations", IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS,
2304 true, id));
2305 iTree.addNode(new IDefaultMutableTreeNode("Protocol Declarations",
2306 IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS, true, id));
2307 iTree.addNode(new IDefaultMutableTreeNode("Ppi Declarations", IDefaultMutableTreeNode.SPD_PPIDECLARATIONS,
2308 true, id));
2309 iTree.addNode(new IDefaultMutableTreeNode("Pcd Declarations", IDefaultMutableTreeNode.SPD_PCDDECLARATIONS,
2310 true, id));
2311 }
2312
2313 private void insertPlatformTreeNode(Identification id) {
2314 iTree.addNode(new IDefaultMutableTreeNode("Platform Definitions", IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS, true, id));
2315 iTree.addNode(new IDefaultMutableTreeNode("Flash", IDefaultMutableTreeNode.FPD_FLASH, true, id));
2316 iTree.addNode(new IDefaultMutableTreeNode("Framework Modules", IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES,
2317 true, id));
2318 iTree.addNode(new IDefaultMutableTreeNode("Pcd Dynamic Build Declarations",
2319 IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS, true, id));
2320 iTree.addNode(new IDefaultMutableTreeNode("Build Options", IDefaultMutableTreeNode.FPD_BUILDOPTIONS, true, id));
2321 }
2322
2323 /**
2324 Operate when double click a tree node
2325
2326 **/
2327 private void doubleClickModuleTreeNode() {
2328 Identification id = iTree.getSelectNode().getId();
2329 int intCategory = iTree.getSelectCategory();
2330 String path = null;
2331 //
2332 // If the node is not opened yet
2333 // Insert top level elements first
2334 //
2335 //if (intCategory == IDefaultMutableTreeNode.MSA_HEADER || intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {
2336 if (intCategory == IDefaultMutableTreeNode.MSA_HEADER) {
2337
2338 if (intCategory == IDefaultMutableTreeNode.MSA_HEADER) {
2339 path = iTree.getSelectNode().getId().getPath();
2340 }
2341 if (intCategory == IDefaultMutableTreeNode.SPD_MSAFILES) {
2342 path = iTree.getSelectNode().getId().getPath();
2343 }
2344 openModule(path);
2345 return;
2346 }
2347 if (intCategory == IDefaultMutableTreeNode.SPD_HEADER) {
2348 path = iTree.getSelectNode().getId().getPath();
2349 openPackage(path);
2350 return;
2351 }
2352 if (intCategory == IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2353 path = iTree.getSelectNode().getId().getPath();
2354 openPlatform(path);
2355 return;
2356 }
2357 //
2358 // Show editor panel
2359 //
2360 if (intCategory >= IDefaultMutableTreeNode.MSA_HEADER && intCategory < IDefaultMutableTreeNode.SPD_HEADER) {
2361 showModuleElement(intCategory, openingModuleList.getOpeningModuleById(id));
2362 this.currentOpeningModuleIndex = openingModuleList.findIndexOfListById(id);
2363 }
2364 if (intCategory >= IDefaultMutableTreeNode.SPD_HEADER
2365 && intCategory < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2366 showPackageElement(intCategory, openingPackageList.getOpeningPackageById(id));
2367 this.currentOpeningPackageIndex = openingPackageList.findIndexOfListById(id);
2368 }
2369 if (intCategory >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2370 showPlatformElement(intCategory, openingPlatformList.getOpeningPlatformById(id));
2371 this.currentOpeningPlatformIndex = openingPlatformList.findIndexOfListById(id);
2372 }
2373 }
2374
2375 /**
2376 Show content of editor panel via selected element
2377
2378 @param elementType
2379 @param fpd
2380
2381 **/
2382 private void showPlatformElement(int elementType, OpeningPlatformType fpd) {
2383 this.cleanDesktopPanePlatform();
2384
2385 switch (elementType) {
2386 case IDefaultMutableTreeNode.FPD_PLATFORMDEFINITIONS:
2387 FpdPlatformDefs frmFpdPlatformDefs = new FpdPlatformDefs(fpd);
2388 getJDesktopPanePlatform().add(frmFpdPlatformDefs, 1);
2389 break;
2390 case IDefaultMutableTreeNode.FPD_PLATFORMHEADER:
2391 FpdHeader frmFpdHeader = new FpdHeader(fpd);
2392 getJDesktopPanePlatform().add(frmFpdHeader, 1);
2393 break;
2394 case IDefaultMutableTreeNode.FPD_FLASH:
2395 FpdFlash frmFpdFlash = new FpdFlash(fpd);
2396 getJDesktopPanePlatform().add(frmFpdFlash, 1);
2397 break;
2398 case IDefaultMutableTreeNode.FPD_FRAMEWORKMODULES:
2399 FpdFrameworkModules frmFpdFrameworkModules = new FpdFrameworkModules(fpd);
2400 getJDesktopPanePlatform().add(frmFpdFrameworkModules, 1);
2401 break;
2402 case IDefaultMutableTreeNode.FPD_PCDDYNAMICBUILDDECLARATIONS:
2403 FpdDynamicPcdBuildDefinitions frmFpdDynamicPcdBuildDefinitions = new FpdDynamicPcdBuildDefinitions(fpd);
2404 getJDesktopPanePlatform().add(frmFpdDynamicPcdBuildDefinitions, 1);
2405 break;
2406 case IDefaultMutableTreeNode.FPD_BUILDOPTIONS:
2407 FpdBuildOptions frmFpdBuildOptions = new FpdBuildOptions(fpd);
2408 getJDesktopPanePlatform().add(frmFpdBuildOptions, 1);
2409 break;
2410 }
2411 this.jTabbedPaneEditor.setSelectedIndex(2);
2412 resizeDesktopPanel();
2413 }
2414
2415 /**
2416 Show content of editor panel via selected element
2417
2418 @param elementType
2419 @param spd
2420
2421 */
2422 private void showPackageElement(int elementType, OpeningPackageType spd) {
2423 this.cleanDesktopPanePackage();
2424 Tools.dirForNewSpd = spd.getId().getPath();
2425 switch (elementType) {
2426 case IDefaultMutableTreeNode.SPD_HEADER:
2427 SpdHeader frmSpdHeader = new SpdHeader(spd);
2428 getJDesktopPanePackage().add(frmSpdHeader, 1);
2429 break;
2430 case IDefaultMutableTreeNode.SPD_PACKAGEDEFINITIONS:
2431 SpdPackageDefinitions frmSpdPackageDefinitions = new SpdPackageDefinitions(spd);
2432 getJDesktopPanePackage().add(frmSpdPackageDefinitions, 1);
2433 break;
2434 case IDefaultMutableTreeNode.SPD_LIBRARYCLASSDECLARATIONS:
2435 SpdLibClassDecls frmSlcd = new SpdLibClassDecls(spd);
2436 getJDesktopPanePackage().add(frmSlcd, 1);
2437 break;
2438 case IDefaultMutableTreeNode.SPD_MSAFILES:
2439 SpdMsaFiles frmSmf = new SpdMsaFiles(spd);
2440 getJDesktopPanePackage().add(frmSmf, 1);
2441 break;
2442 case IDefaultMutableTreeNode.SPD_PACKAGEHEADERS:
2443 SpdPackageHeaders frmSph = new SpdPackageHeaders(spd);
2444 getJDesktopPanePackage().add(frmSph, 1);
2445 break;
2446 case IDefaultMutableTreeNode.SPD_GUIDDECLARATIONS:
2447 SpdGuidDecls frmSgd = new SpdGuidDecls(spd);
2448 getJDesktopPanePackage().add(frmSgd, 1);
2449 break;
2450 case IDefaultMutableTreeNode.SPD_PROTOCOLDECLARATIONS:
2451 SpdProtocolDecls frmSprod = new SpdProtocolDecls(spd);
2452 getJDesktopPanePackage().add(frmSprod, 1);
2453 break;
2454 case IDefaultMutableTreeNode.SPD_PPIDECLARATIONS:
2455 SpdPpiDecls frmSppid = new SpdPpiDecls(spd);
2456 getJDesktopPanePackage().add(frmSppid, 1);
2457 break;
2458 case IDefaultMutableTreeNode.SPD_PCDDECLARATIONS:
2459 SpdPcdDefs frmSpcdd = new SpdPcdDefs(spd);
2460 getJDesktopPanePackage().add(frmSpcdd, 1);
2461 break;
2462 }
2463 this.jTabbedPaneEditor.setSelectedIndex(1);
2464 resizeDesktopPanel();
2465 }
2466
2467 /**
2468 Show content of editor panel via selected element
2469
2470 @param elementType
2471 @param msa
2472
2473 */
2474 private void showModuleElement(int elementType, OpeningModuleType msa) {
2475 this.cleanDesktopPaneModule();
2476 switch (elementType) {
2477 case IDefaultMutableTreeNode.MSA_HEADER:
2478 MsaHeader frmMsaHeader = new MsaHeader(msa);
2479 getJDesktopPaneModule().add(frmMsaHeader, 1);
2480 break;
2481 case IDefaultMutableTreeNode.MSA_MODULEDEFINITIONS:
2482 ModuleDefinitions frmMd = new ModuleDefinitions(msa);
2483 getJDesktopPaneModule().add(frmMd, 1);
2484 break;
2485 case IDefaultMutableTreeNode.MSA_LIBRARYCLASSDEFINITIONS:
2486 ModuleLibraryClassDefinitions frmMlcd = new ModuleLibraryClassDefinitions(msa);
2487 getJDesktopPaneModule().add(frmMlcd, 1);
2488 break;
2489 case IDefaultMutableTreeNode.MSA_PACKAGEDEPENDENCIES:
2490 ModulePackageDependencies frmMpd = new ModulePackageDependencies(msa);
2491 getJDesktopPaneModule().add(frmMpd, 1);
2492 break;
2493 case IDefaultMutableTreeNode.MSA_SOURCEFILES:
2494 ModuleSourceFiles frmMsf = new ModuleSourceFiles(msa);
2495 getJDesktopPaneModule().add(frmMsf, 1);
2496 break;
2497 case IDefaultMutableTreeNode.MSA_PROTOCOLS:
2498 ModuleProtocols frmMp = new ModuleProtocols(msa);
2499 getJDesktopPaneModule().add(frmMp, 1);
2500 break;
2501 case IDefaultMutableTreeNode.MSA_EVENTS:
2502 ModuleEvents frmMe = new ModuleEvents(msa);
2503 getJDesktopPaneModule().add(frmMe, 1);
2504 break;
2505 case IDefaultMutableTreeNode.MSA_HOBS:
2506 ModuleHobs frmMh = new ModuleHobs(msa);
2507 getJDesktopPaneModule().add(frmMh, 1);
2508 break;
2509 case IDefaultMutableTreeNode.MSA_PPIS:
2510 ModulePpis frmMpp = new ModulePpis(msa);
2511 getJDesktopPaneModule().add(frmMpp, 1);
2512 break;
2513 case IDefaultMutableTreeNode.MSA_VARIABLES:
2514 ModuleVariables frmMv = new ModuleVariables(msa);
2515 getJDesktopPaneModule().add(frmMv, 1);
2516 break;
2517 case IDefaultMutableTreeNode.MSA_BOOTMODES:
2518 ModuleBootModes frmMbm = new ModuleBootModes(msa);
2519 getJDesktopPaneModule().add(frmMbm, 1);
2520 break;
2521 case IDefaultMutableTreeNode.MSA_SYSTEMTABLES:
2522 ModuleSystemTables frmMst = new ModuleSystemTables(msa);
2523 getJDesktopPaneModule().add(frmMst, 1);
2524 break;
2525 case IDefaultMutableTreeNode.MSA_DATAHUBS:
2526 ModuleDataHubs frmMdh = new ModuleDataHubs(msa);
2527 getJDesktopPaneModule().add(frmMdh, 1);
2528 break;
2529 case IDefaultMutableTreeNode.MSA_HIIPACKAGES:
2530 ModuleHiiPackages frmMf = new ModuleHiiPackages(msa);
2531 getJDesktopPaneModule().add(frmMf, 1);
2532 break;
2533 case IDefaultMutableTreeNode.MSA_GUIDS:
2534 ModuleGuids frmGuid = new ModuleGuids(msa);
2535 getJDesktopPaneModule().add(frmGuid, 1);
2536 break;
2537 case IDefaultMutableTreeNode.MSA_EXTERNS:
2538 ModuleExterns frmMex = new ModuleExterns(msa);
2539 getJDesktopPaneModule().add(frmMex, 1);
2540 break;
2541 case IDefaultMutableTreeNode.MSA_PCDS:
2542 ModulePCDs frmPcd = new ModulePCDs(msa);
2543 getJDesktopPaneModule().add(frmPcd, 1);
2544 break;
2545 }
2546 this.jTabbedPaneEditor.setSelectedIndex(0);
2547 resizeDesktopPanel();
2548 }
2549
2550 //
2551 // Define operations of menu
2552 //
2553 /**
2554 New a file
2555
2556 **/
2557 private void fileNew() {
2558 int result = -1;
2559 //
2560 // Selece new file type
2561 //
2562 NewFileChooser nfc = new NewFileChooser(this, true);
2563 result = nfc.showDialog();
2564
2565 if (result == DataType.RETURN_TYPE_CANCEL) {
2566 nfc.dispose();
2567 return;
2568 } else if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {
2569 //
2570 // To new a module
2571 //
2572 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
2573 result = smb.showDialog();
2574
2575 if (result == DataType.RETURN_TYPE_CANCEL) {
2576 nfc.dispose();
2577 smb.dispose();
2578 return;
2579 } else if (result == DataType.RETURN_TYPE_OK) {
2580 PackageSurfaceAreaDocument.PackageSurfaceArea psa = null;
2581 if (this.openingPackageList.existsPackage(smb.getMid().getPackageId())) {
2582 psa = openingPackageList.getPackageSurfaceAreaFromId(smb.getMid().getPackageId());
2583 }
2584 try {
2585 wt.addModuleToPackage(smb.getMid(), psa);
2586 } catch (IOException e) {
2587 Log.err("Upddate MsaFiles of Package", e.getMessage());
2588 e.printStackTrace();
2589 return;
2590 } catch (XmlException e) {
2591 Log.err("Upddate MsaFiles of Package", e.getMessage());
2592 e.printStackTrace();
2593 return;
2594 } catch (Exception e) {
2595 Log.err("Upddate MsaFiles of Package", e.getMessage());
2596 e.printStackTrace();
2597 return;
2598 }
2599 this.openModule(smb.getMid().getPath());
2600 }
2601 } else if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {
2602 //
2603 // To new a package
2604 //
2605 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
2606 result = smb.showDialog();
2607
2608 if (result == DataType.RETURN_TYPE_CANCEL) {
2609 nfc.dispose();
2610 smb.dispose();
2611 return;
2612 } else if (result == DataType.RETURN_TYPE_OK) {
2613 try {
2614 wt.addPackageToDatabase(smb.getPid());
2615 } catch (Exception e) {
2616 // TODO Auto-generated catch block
2617 e.printStackTrace();
2618 }
2619 vPackageList.addElement(smb.getPid());
2620 //
2621 // Add new SpdHeader node to the tree
2622 //
2623 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),
2624 IDefaultMutableTreeNode.SPD_HEADER, true,
2625 vPackageList.lastElement());
2626 iTree.addNode(dmtnPackageDescription, node);
2627 this.openPackage(smb.getPid().getPath());
2628 }
2629 } else if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {
2630 //
2631 // To new a platform
2632 //
2633 SelectModuleBelong smb = new SelectModuleBelong(this, true, result);
2634 result = smb.showDialog();
2635
2636 if (result == DataType.RETURN_TYPE_CANCEL) {
2637 nfc.dispose();
2638 smb.dispose();
2639 return;
2640 } else if (result == DataType.RETURN_TYPE_OK) {
2641 try {
2642 wt.addPlatformToDatabase(smb.getFid());
2643 } catch (Exception e) {
2644 // TODO Auto-generated catch block
2645 e.printStackTrace();
2646 }
2647 vPlatformList.addElement(smb.getFid());
2648 //
2649 // Add new SpdHeader node to the tree
2650 //
2651 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPlatformList.lastElement().getName(),
2652 IDefaultMutableTreeNode.FPD_PLATFORMHEADER,
2653 true, vPlatformList.lastElement());
2654 iTree.addNode(dmtnPlatformDescription, node);
2655 this.openPlatform(smb.getFid().getPath());
2656 }
2657 }
2658 }
2659
2660 /**
2661 Open a file
2662
2663 **/
2664 private void open() {
2665 JFileChooser fc = new JFileChooser(Workspace.getCurrentWorkspace());
2666 fc.setAcceptAllFileFilterUsed(false);
2667 IFileFilter iffM = new IFileFilter(DataType.MODULE_SURFACE_AREA_EXT);
2668 IFileFilter iffP = new IFileFilter(DataType.PACKAGE_SURFACE_AREA_EXT);
2669 IFileFilter iffF = new IFileFilter(DataType.PLATFORM_SURFACE_AREA_EXT);
2670 fc.addChoosableFileFilter(iffM);
2671 fc.addChoosableFileFilter(iffP);
2672 fc.addChoosableFileFilter(iffF);
2673 fc.setFileFilter(iffM);
2674
2675 int result = fc.showOpenDialog(new JPanel());
2676
2677 if (result == JFileChooser.APPROVE_OPTION) {
2678 String path = fc.getSelectedFile().getPath();
2679 String match = path.substring(path.length() - 4);
2680 if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.MODULE_SURFACE_AREA_EXT)) {
2681 openModule(path);
2682 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PACKAGE_SURFACE_AREA_EXT)) {
2683 openPackage(path);
2684 } else if (match.equals(DataType.FILE_EXT_SEPARATOR + DataType.PLATFORM_SURFACE_AREA_EXT)) {
2685 openPlatform(path);
2686 }
2687 }
2688 }
2689
2690 /**
2691 Close files
2692
2693 **/
2694 private void close() {
2695 switch (this.jTabbedPaneEditor.getSelectedIndex()) {
2696 //
2697 // Current is module
2698 //
2699 case 0:
2700 if (this.currentOpeningModuleIndex > -1) {
2701 if (!openingModuleList.getModuleSaved(currentOpeningModuleIndex)) {
2702 int result = showSaveDialog();
2703 if (result == JOptionPane.YES_OPTION) {
2704 this.saveAll();
2705 }
2706 if (result == JOptionPane.NO_OPTION) {
2707 // Do nothing
2708 }
2709 if (result == JOptionPane.CANCEL_OPTION) {
2710 return;
2711 }
2712 }
2713 iTree.removeNodeChildrenByPath(openingModuleList.getTreePathByIndex(currentOpeningModuleIndex));
2714 this.openingModuleList.removeFromOpeningModuleListByIndex(this.currentOpeningModuleIndex);
2715 this.cleanDesktopPaneModule();
2716 this.currentOpeningModuleIndex = -1;
2717 }
2718 break;
2719 //
2720 // Current is package
2721 //
2722 case 1:
2723 if (this.currentOpeningPackageIndex > -1) {
2724 if (!openingPackageList.getPackageSaved(currentOpeningPackageIndex)) {
2725 int result = showSaveDialog();
2726 if (result == JOptionPane.YES_OPTION) {
2727 this.saveAll();
2728 }
2729 if (result == JOptionPane.NO_OPTION) {
2730 // Do nothing
2731 }
2732 if (result == JOptionPane.CANCEL_OPTION) {
2733 return;
2734 }
2735 }
2736 iTree.removeNodeChildrenByPath(openingPackageList.getTreePathByIndex(currentOpeningPackageIndex));
2737 this.openingPackageList.removeFromOpeningPackageListByIndex(this.currentOpeningPackageIndex);
2738 this.cleanDesktopPanePackage();
2739 this.currentOpeningPackageIndex = -1;
2740 }
2741 break;
2742 //
2743 // Current is platform
2744 //
2745 case 2:
2746 if (this.currentOpeningPlatformIndex > -1) {
2747 if (!openingPlatformList.getPlatformSaved(currentOpeningPlatformIndex)) {
2748 int result = showSaveDialog();
2749 if (result == JOptionPane.YES_OPTION) {
2750 this.saveAll();
2751 }
2752 if (result == JOptionPane.NO_OPTION) {
2753 // Do nothing
2754 }
2755 if (result == JOptionPane.CANCEL_OPTION) {
2756 return;
2757 }
2758 }
2759 iTree.removeNodeChildrenByPath(openingPlatformList.getTreePathByIndex(currentOpeningPlatformIndex));
2760 this.openingPlatformList.removeFromOpeningPlatformListByIndex(this.currentOpeningPlatformIndex);
2761 this.cleanDesktopPanePlatform();
2762 this.currentOpeningPlatformIndex = -1;
2763 }
2764 break;
2765 }
2766 }
2767
2768 /**
2769 Close all opening files and clean all showing internal frame
2770
2771 **/
2772 private void closeAll() {
2773 int result = -1;
2774 if (!openingModuleList.isSaved() || !openingPackageList.isSaved() || !openingPlatformList.isSaved()) {
2775 result = showSaveDialog();
2776 }
2777 if (result == JOptionPane.YES_OPTION) {
2778 this.saveAll();
2779 }
2780 if (result == JOptionPane.NO_OPTION) {
2781 // Do nothing
2782 }
2783 if (result == JOptionPane.CANCEL_OPTION) {
2784 return;
2785 }
2786 this.cleanDesktopPane();
2787 this.getCompontentsFromFrameworkDatabase();
2788 openingModuleList.removeAllFromOpeningModuleList();
2789 openingPackageList.removeAllFromOpeningPackageList();
2790 openingPlatformList.removeAllFromOpeningPlatformList();
2791 this.makeEmptyTree();
2792 }
2793
2794 /**
2795 Save currentModule when press button OK
2796
2797 **/
2798 private void save() {
2799 switch (this.jTabbedPaneEditor.getSelectedIndex()) {
2800 case 0:
2801 if (this.currentOpeningModuleIndex > -1) {
2802 saveModule(this.currentOpeningModuleIndex);
2803 }
2804 break;
2805 case 1:
2806 if (this.currentOpeningPackageIndex > -1) {
2807 savePackage(this.currentOpeningPackageIndex);
2808 }
2809 break;
2810 case 2:
2811 if (this.currentOpeningPlatformIndex > -1) {
2812 savePlatform(this.currentOpeningPlatformIndex);
2813 }
2814 break;
2815 }
2816 }
2817
2818 private void saveAs() {
2819
2820 }
2821
2822 private void saveAll() {
2823 //
2824 // Save all modules
2825 //
2826 for (int index = 0; index < openingModuleList.size(); index++) {
2827 if (!openingModuleList.getModuleSaved(index)) {
2828 saveModule(index);
2829 }
2830 }
2831
2832 //
2833 // Save all packages
2834 //
2835 for (int index = 0; index < openingPackageList.size(); index++) {
2836 if (!openingPackageList.getPackageSaved(index)) {
2837 savePackage(index);
2838 }
2839 }
2840
2841 //
2842 // Save all platforms
2843 //
2844 for (int index = 0; index < openingPlatformList.size(); index++) {
2845 if (!openingPlatformList.getPlatformSaved(index)) {
2846 savePlatform(index);
2847 }
2848 }
2849 }
2850
2851 /**
2852 To save changed items before exit.
2853
2854 **/
2855 private void exit() {
2856 int result = -1;
2857 if (!openingModuleList.isSaved() || !openingPackageList.isSaved() || !openingPlatformList.isSaved()) {
2858 result = showSaveDialog();
2859 }
2860 if (result == JOptionPane.YES_OPTION) {
2861 this.saveAll();
2862 }
2863 if (result == JOptionPane.NO_OPTION) {
2864 // Do nothing
2865 }
2866 if (result == JOptionPane.CANCEL_OPTION) {
2867 return;
2868 }
2869 this.dispose();
2870 System.exit(0);
2871 }
2872
2873 /**
2874 Switch current workspace to others
2875
2876 **/
2877 private void changeWorkspace() {
2878 SwitchWorkspace sw = new SwitchWorkspace(this, true);
2879 int result = sw.showDialog();
2880 if (result == DataType.RETURN_TYPE_CANCEL) {
2881 return;
2882 } else if (result == DataType.RETURN_TYPE_OK) {
2883 //
2884 // Reinit whole window
2885 //
2886 closeAll();
2887 this.setTitle(DataType.PROJECT_NAME + " " + DataType.PROJECT_VERSION + " " + "- [" + Workspace.getCurrentWorkspace() + "]");
2888 }
2889 sw.dispose();
2890 }
2891
2892 /**
2893 Show Tool Chain Configuration Dialog to setup Tool Chain
2894
2895 **/
2896 private void setupToolChainConfiguration() {
2897 ToolChainConfig tcc = ToolChainConfig.getInstance();
2898 tcc.showDialog();
2899 }
2900
2901 /**
2902 Clone selected item
2903
2904 **/
2905 private void cloneItem() {
2906 int mode = -1;
2907
2908 //
2909 // Check if there is any item can be cloned
2910 //
2911 if (iTree.getSelectionPath() == null) {
2912 Log.err("Please select a target to clone!");
2913 return;
2914 }
2915 int category = iTree.getSelectCategory();
2916 Identification id = iTree.getSelectNode().getId();
2917 if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE
2918 || category == IDefaultMutableTreeNode.PLATFORM) {
2919 Log.err("Please select a target to clone!");
2920 return;
2921 }
2922
2923 if (category == IDefaultMutableTreeNode.WORKSPACE) {
2924 mode = DataType.RETURN_TYPE_WORKSPACE;
2925 id = null;
2926 }
2927 if (category >= IDefaultMutableTreeNode.MSA_HEADER && category < IDefaultMutableTreeNode.SPD_HEADER) {
2928 mode = DataType.RETURN_TYPE_MODULE_SURFACE_AREA;
2929 }
2930 if (category >= IDefaultMutableTreeNode.SPD_HEADER && category < IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2931 mode = DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA;
2932 }
2933 if (category >= IDefaultMutableTreeNode.FPD_PLATFORMHEADER) {
2934 mode = DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA;
2935 }
2936
2937 Clone c = new Clone(this, true, mode, id);
2938 int result = c.showDialog();
2939
2940 if (result == DataType.RETURN_TYPE_CANCEL) {
2941 c.dispose();
2942 }
2943 if (result == DataType.RETURN_TYPE_WORKSPACE) {
2944 Tools.showInformationMessage("Workspace Clone Finished");
2945 }
2946 if (result == DataType.RETURN_TYPE_MODULE_SURFACE_AREA) {
2947 Tools.showInformationMessage("Module Surface Area Clone Finished");
2948 vModuleList.addElement(c.getMid());
2949 //
2950 // Add new MsaHeader node to the tree
2951 //
2952 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vModuleList.lastElement().getName(),
2953 IDefaultMutableTreeNode.MSA_HEADER, true,
2954 vModuleList.lastElement());
2955 iTree.addNode(dmtnModuleDescription, node);
2956 }
2957 if (result == DataType.RETURN_TYPE_PACKAGE_SURFACE_AREA) {
2958 Tools.showInformationMessage("Package Surface Area Clone Finished");
2959 vPackageList.addElement(c.getPid());
2960 //
2961 // Add new SpdHeader node to the tree
2962 //
2963 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPackageList.lastElement().getName(),
2964 IDefaultMutableTreeNode.SPD_HEADER, true,
2965 vPackageList.lastElement());
2966 iTree.addNode(dmtnPackageDescription, node);
2967 }
2968 if (result == DataType.RETURN_TYPE_PLATFORM_SURFACE_AREA) {
2969 Tools.showInformationMessage("Platform Surface Area Clone Finished");
2970 vPlatformList.addElement(c.getFid());
2971 //
2972 // Add new SpdHeader node to the tree
2973 //
2974 IDefaultMutableTreeNode node = new IDefaultMutableTreeNode(vPlatformList.lastElement().getName(),
2975 IDefaultMutableTreeNode.FPD_PLATFORMHEADER,
2976 true, vPlatformList.lastElement());
2977 iTree.addNode(dmtnPlatformDescription, node);
2978 //this.openPlatform(c.getFid().getPath());
2979 }
2980 if (result == DataType.RETURN_TYPE_OK) {
2981
2982 }
2983 }
2984
2985 public void valueChanged(TreeSelectionEvent arg0) {
2986 // TODO Auto-generated method stub
2987
2988 }
2989
2990 public void menuCanceled(MenuEvent arg0) {
2991 // TODO Auto-generated method stub
2992
2993 }
2994
2995 public void menuDeselected(MenuEvent arg0) {
2996 // TODO Auto-generated method stub
2997
2998 }
2999
3000 public void menuSelected(MenuEvent arg0) {
3001 if (arg0.getSource() == jMenuFile) {
3002 //
3003 // Enable close/close all if some files are opened
3004 //
3005 jMenuItemFileClose.setEnabled(openingModuleList.isOpend() || openingPackageList.isOpend()
3006 || openingPlatformList.isOpend());
3007 jMenuItemFileCloseAll.setEnabled(openingModuleList.isOpend() || openingPackageList.isOpend()
3008 || openingPlatformList.isOpend());
3009
3010 //
3011 // Enable save/save all if some files are changed
3012 //
3013 jMenuItemFileSave.setEnabled(!openingModuleList.isSaved() || !openingPackageList.isSaved()
3014 || !openingPlatformList.isSaved());
3015 jMenuItemFileSaveAll.setEnabled(!openingModuleList.isSaved() || !openingPackageList.isSaved()
3016 || !openingPlatformList.isSaved());
3017 }
3018
3019 if (arg0.getSource() == jMenuTools) {
3020 //
3021 // Enable clone when select some items
3022 //
3023 if (iTree.getSelectionPath() == null) {
3024 jMenuItemToolsClone.setEnabled(false);
3025 } else {
3026 int category = iTree.getSelectCategory();
3027 if (category == IDefaultMutableTreeNode.MODULE || category == IDefaultMutableTreeNode.PACKAGE
3028 || category == IDefaultMutableTreeNode.PLATFORM) {
3029 jMenuItemToolsClone.setEnabled(false);
3030 } else {
3031 jMenuItemToolsClone.setEnabled(true);
3032 }
3033 }
3034 }
3035 }
3036 }