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