/** * @param breakpoint * @return */ private String getJavaStratumLineBreakpointText(IJavaStratumLineBreakpoint breakpoint) throws CoreException { IMember member= BreakpointUtils.getMember(breakpoint); String sourceName = breakpoint.getSourceName(); if (sourceName == null) { sourceName = ""; //$NON-NLS-1$ IMarker marker = breakpoint.getMarker(); if (marker != null) { IResource resource = marker.getResource(); if (resource.getType() == IResource.FILE) { sourceName = resource.getName(); } } } StringBuffer label= new StringBuffer(sourceName); appendLineNumber(breakpoint, label); appendHitCount(breakpoint, label); appendSuspendPolicy(breakpoint,label); appendThreadFilter(breakpoint, label); if (member != null) { label.append(" - "); //$NON-NLS-1$ label.append(getJavaLabelProvider().getText(member)); } return label.toString(); }
final IMarker marker = breakpoint.getMarker(); final IWorkspace ws = marker.getResource().getWorkspace(); IResourceChangeListener listener = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) { if (!marker.exists()) ws.removeResourceChangeListener(this); IResourceDelta delta = event.getDelta(); if (delta == null) return; final IResourceDelta findMember = event.getDelta().findMember(marker.getResource().getFullPath()); if (findMember == null) return; IResource res = findMember.getResource(); if (res == null || !res.exists()) return; if (event.getType() == IResourceChangeEvent.PRE_DELETE) { ws.removeResourceChangeListener(this); } else if (event.getType() == IResourceChangeEvent.POST_CHANGE && (findMember.getFlags() & IResourceDelta.CONTENT) != 0) { String classNamePattern = getClassNamePattern(event.getResource()); try { breakpoint.getMarker().setAttribute("org.eclipse.jdt.debug.pattern", classNamePattern); } catch (CoreException e) { log.info(e.getMessage(), e); } } } };