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