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