package net.sourceforge.tagsea.breakpoint.ui; import java.util.ArrayList; import java.util.List; import net.sourceforge.tagsea.breakpoint.waypoints.BreakpointUtil; import net.sourceforge.tagsea.core.IWaypoint; import net.sourceforge.tagsea.core.ui.BaseWaypointUI; import net.sourceforge.tagsea.core.ui.IWaypointUIExtension; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.swt.graphics.Image; public class BreakpointWaypointUI extends BaseWaypointUI implements IWaypointUIExtension { /* (non-Javadoc) * @see net.sourceforge.tagsea.core.ui.BaseWaypointUI#canUIChange(net.sourceforge.tagsea.core.IWaypoint, java.lang.String) */ @Override public boolean canUIChange(IWaypoint waypoint, String attribute) { return false; } @Override public String[] getVisibleAttributes() { String[] visible = super.getVisibleAttributes(); List<String> list = new ArrayList<String>(); for(String attr : visible) list.add(attr); list.remove(BreakpointUtil.MARKER_ID_ATTR); return list.toArray(new String[0]); } /* (non-Javadoc) * @see net.sourceforge.tagsea.core.ui.BaseWaypointUI#getAttributeLabel(net.sourceforge.tagsea.core.IWaypoint, java.lang.String) */ @Override public String getAttributeLabel(IWaypoint waypoint, String attribute) { return super.getAttributeLabel(waypoint, attribute); } @Override public Image getImage(IWaypoint waypoint) { IBreakpoint breakpoint = BreakpointUtil.findBreakpoint(waypoint); if(breakpoint!=null) return DebugUITools.newDebugModelPresentation().getImage(breakpoint); return super.getImage(waypoint); } @Override public String getLabel(IWaypoint waypoint) { IBreakpoint breakpoint = BreakpointUtil.findBreakpoint(waypoint); if(breakpoint!=null) return DebugUITools.newDebugModelPresentation().getText(breakpoint); return super.getLabel(waypoint); } public String getLocationString(IWaypoint waypoint) { IBreakpoint breakpoint = BreakpointUtil.findBreakpoint(waypoint); if (breakpoint != null) { IMarker marker = breakpoint.getMarker(); IResource resource = marker.getResource(); int line = marker.getAttribute(IMarker.LINE_NUMBER, -1); String result = resource.getName(); if (line != -1) { result = result + " line " + line; } return result; } return super.getLocationString(waypoint); } @Override public boolean canUIAddTag(IWaypoint waypoint) { return true; } @Override public boolean canUIMove(IWaypoint waypoint) { return false; } @Override public boolean canUIDeleteTag(IWaypoint waypoint) { return true; } }