public void annotate(final FileObject fo) { synchronized (breakpointToAnnotations) { if (annotatedFiles.contains(fo)) { // Already annotated return; } Set<VisageLineBreakpoint> annotatedBreakpoints = breakpointToAnnotations.keySet(); for (Breakpoint breakpoint : DebuggerManager.getDebuggerManager().getBreakpoints()) { if (isAnnotatable(breakpoint)) { VisageLineBreakpoint b = (VisageLineBreakpoint) breakpoint; if (!annotatedBreakpoints.contains(b)) { b.addPropertyChangeListener(this); breakpointToAnnotations.put(b, new WeakSet<Annotation>()); LineTranslations.getTranslations().registerForLineUpdates(b); } addAnnotationTo(b, fo); } } annotatedFiles.add(fo); } if (attachManagerListener) { attachManagerListener = false; DebuggerManager.getDebuggerManager() .addDebuggerListener( WeakListeners.create( DebuggerManagerListener.class, this, DebuggerManager.getDebuggerManager())); } }
public void breakpointAdded(Breakpoint breakpoint) { if (isAnnotatable(breakpoint)) { VisageLineBreakpoint b = (VisageLineBreakpoint) breakpoint; // JPDABreakpoint b = (JPDABreakpoint) breakpoint; b.addPropertyChangeListener(this); RequestProcessor.getDefault().post(new AnnotationRefresh(b, false, true)); // if( b instanceof LineBreakpoint ) { VisageLineBreakpoint lb = (VisageLineBreakpoint) breakpoint; LineTranslations.getTranslations().registerForLineUpdates(lb); // } } }