KickJava   Java API By Example, From Geeks To Geeks.

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


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.jdt.core.IJavaElement;
7 import org.eclipse.jdt.core.IJavaProject;
8 import org.eclipse.jdt.core.IPackageFragment;
9 import org.eclipse.jdt.core.IType;
10 import org.terracotta.dso.ConfigurationHelper;
11 import org.terracotta.dso.TcPlugin;
12
13 /**
14  * Mark the currently selected IType as instrumented.
15  */

16
17 public class AdaptableAction extends BaseAction {
18   public AdaptableAction() {
19     super("Instrumented", AS_CHECK_BOX);
20   }
21   
22   /**
23    * The IJavaElement must be one of IType, IPackageFragment, or IJavaProject.
24    */

25   public void setJavaElement(IJavaElement element) {
26     if(!(element instanceof IType ||
27          element instanceof IPackageFragment ||
28          element instanceof IJavaProject))
29     {
30       throw new IllegalArgumentException JavaDoc(
31         "Java element must be IType, IPackageFragment, or IJavaProject");
32     }
33     
34     super.setJavaElement(element);
35     
36     if(element instanceof IType) {
37       IType type = (IType)element;
38       boolean isBootClass = TcPlugin.getDefault().isBootClass(type);
39
40       setEnabled(!isBootClass);
41       setChecked(isBootClass || getConfigHelper().isAdaptable(type));
42     }
43     else {
44       setChecked(getConfigHelper().isAdaptable(element));
45     }
46   }
47   
48   public void performAction() {
49     ConfigurationHelper helper = getConfigHelper();
50
51     if(isChecked()) {
52       helper.ensureAdaptable(m_element);
53     }
54     else {
55       helper.ensureNotAdaptable(m_element);
56     }
57
58     inspectCompilationUnit();
59   }
60 }
61
Popular Tags