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