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