KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > uka > ipd > coverage > plugin > ui > MarkerResolutionGenerator


1 /*
2  * Created on May 21, 2005
3  *
4  * written by Matthias Kempka
5  */

6 package de.uka.ipd.coverage.plugin.ui;
7
8 import java.util.ArrayList JavaDoc;
9 import java.util.List JavaDoc;
10
11 import org.eclipse.core.resources.IMarker;
12 import org.eclipse.core.runtime.CoreException;
13 import org.eclipse.jface.viewers.StructuredSelection;
14 import org.eclipse.ui.IMarkerResolution;
15 import org.eclipse.ui.IMarkerResolutionGenerator;
16
17 import de.uka.ipd.coverage.natures.all_uses.Definition;
18 import de.uka.ipd.coverage.plugin.CoveragePlugin;
19
20 /**
21  * Created on May 21, 2005
22  * @author Matthias Kempka
23  */

24 public class MarkerResolutionGenerator implements IMarkerResolutionGenerator {
25
26     public IMarkerResolution[] getResolutions(IMarker marker) {
27         if (!marker.exists()) return new IMarkerResolution[0];
28         Definition def = extractDefinition(marker);
29         if (def == null) {
30             return new IMarkerResolution[0];
31         }
32             
33         List JavaDoc mrl = new ArrayList JavaDoc();
34         mrl.add(new DefinitionMarkerResolution(def));
35         CoverageMarkerManager cmm = CoveragePlugin.getDefault().getMarkerManager();
36         if (cmm.getViewState() == CoverageMarkerManager.VIEW_STATE_PRIMARY_MARKERS_DISABLED) {
37             mrl.add(new ShowAllDefinitionMarkerResolution());
38         }
39         return (IMarkerResolution[]) mrl.toArray(
40             new IMarkerResolution[mrl.size()]);
41     }
42
43     private Definition extractDefinition(IMarker marker) {
44         try {
45             return (Definition) marker.getAttribute(CoverageMarkerManager.ATT_DEFINITION);
46         } catch (CoreException e) {
47             // won't happen
48
throw new AssertionError JavaDoc("This code should never be reached."); //$NON-NLS-1$
49
}
50     }
51
52     private class ShowAllDefinitionMarkerResolution implements IMarkerResolution {
53
54         public String JavaDoc getLabel() {
55             return Messages.getString("MarkerResolutionGenerator.1"); //$NON-NLS-1$
56
}
57
58         public void run(IMarker marker) {
59             CoveragePlugin.getDefault().getMarkerManager().enablePrimaryMarkers();
60         }
61         
62     }
63     private class DefinitionMarkerResolution implements IMarkerResolution {
64         private Definition def;
65         public DefinitionMarkerResolution(Definition def) {
66             this.def = def;
67         }
68         public String JavaDoc getLabel() {
69             return Messages.getString("MarkerResolutionGenerator.2") + def.getVariableName(); //$NON-NLS-1$
70
}
71         public void run(IMarker marker) {
72             CoverageMarkerView markerView = CoveragePlugin.getDefault().getMarkerView();
73             markerView.viewerSelectionChanged(new StructuredSelection(marker));
74             markerView.handleOpenEvent(null);
75 // ActionOpenMarker aom = new ActionOpenMarker(markerView,
76
// new SingleMarkerSelectionProvider(marker));
77
// aom.run();
78
}
79     }
80 }
81
Popular Tags