KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > actions > ShowConfigEditorAction


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package org.terracotta.dso.actions;
5
6 import org.eclipse.core.resources.IProject;
7 import org.eclipse.core.runtime.CoreException;
8 import org.eclipse.jdt.core.IJavaProject;
9 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
10 import org.eclipse.jface.action.Action;
11 import org.eclipse.jface.action.IAction;
12 import org.eclipse.jface.viewers.ISelection;
13 import org.eclipse.jface.viewers.IStructuredSelection;
14 import org.eclipse.ui.IActionDelegate;
15 import org.eclipse.ui.IWorkbenchWindow;
16 import org.eclipse.ui.IWorkbenchWindowActionDelegate;
17 import org.eclipse.ui.PartInitException;
18 import org.terracotta.dso.ProjectNature;
19 import org.terracotta.dso.TcPlugin;
20
21 public class ShowConfigEditorAction extends Action
22   implements IActionDelegate,
23              IWorkbenchWindowActionDelegate,
24              IJavaLaunchConfigurationConstants,
25              IProjectAction
26 {
27   private IJavaProject m_javaProject;
28   private IAction m_action;
29  
30   public ShowConfigEditorAction() {
31     super("Open config editor");
32     TcPlugin.getDefault().registerProjectAction(this);
33   }
34
35   public ShowConfigEditorAction(IJavaProject javaProject) {
36     super("Open config editor");
37     m_javaProject = javaProject;
38   }
39   
40   public void run(IAction action) {
41     TcPlugin plugin = TcPlugin.getDefault();
42     try {
43       plugin.openConfigurationEditor(m_javaProject.getProject());
44     } catch(PartInitException pie) {
45       plugin.openError("Unable to open config editor", pie);
46     }
47   }
48
49   public void selectionChanged(IAction action, ISelection selection) {
50     m_action = action;
51     
52     if(m_javaProject == null || selection instanceof IStructuredSelection) {
53       update(ActionUtil.locateSelectedJavaProject(selection));
54     }
55     else {
56       action.setEnabled(true);
57     }
58   }
59
60   private void update(IJavaProject javaProject) {
61     if(javaProject != null) {
62       try {
63         if(javaProject.getProject().hasNature(ProjectNature.NATURE_ID)) {
64           m_javaProject = javaProject;
65         }
66         else {
67           m_javaProject = null;
68         }
69       } catch(CoreException ce) {/**/}
70     }
71     else {
72       m_javaProject = null;
73     }
74     
75     m_action.setEnabled(m_javaProject != null);
76   }
77   
78   public void update(IProject project) {
79     update(ActionUtil.findJavaProject(project));
80   }
81   
82   public void dispose() {
83     /**/
84   }
85
86   public void init(IWorkbenchWindow window) {
87     /**/
88   }
89 }
90
Popular Tags