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