1 6 package de.uka.ipd.coverage.plugin.ui; 7 8 import java.util.ArrayList ; 9 import java.util.List ; 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 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 mrl = new ArrayList (); 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 throw new AssertionError ("This code should never be reached."); } 50 } 51 52 private class ShowAllDefinitionMarkerResolution implements IMarkerResolution { 53 54 public String getLabel() { 55 return Messages.getString("MarkerResolutionGenerator.1"); } 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 getLabel() { 69 return Messages.getString("MarkerResolutionGenerator.2") + def.getVariableName(); } 71 public void run(IMarker marker) { 72 CoverageMarkerView markerView = CoveragePlugin.getDefault().getMarkerView(); 73 markerView.viewerSelectionChanged(new StructuredSelection(marker)); 74 markerView.handleOpenEvent(null); 75 } 79 } 80 } 81 | Popular Tags |