/** * Constructor * * @param input the breakpoint manager input */ InputData(DefaultBreakpointsViewInput input) { fInput = input; fComparator = (ElementComparator) input.getContext().getProperty(IBreakpointUIConstants.PROP_BREAKPOINTS_ELEMENT_COMPARATOR); fOrganizers = (IBreakpointOrganizer[]) input.getContext().getProperty(IBreakpointUIConstants.PROP_BREAKPOINTS_ORGANIZERS); // Create the initial container. ModelDelta initialDelta = new ModelDelta(fInput, 0, IModelDelta.NO_CHANGE, -1); IBreakpoint[] breakpoints = filterBreakpoints( fInput, getSelectionFilter(fInput, getDebugContext()), fBpManager.getBreakpoints()); fContainer = createRootContainer(initialDelta, fInput, fOrganizers, breakpoints); registerOrganizersListener(null, fOrganizers); input.getContext().addPropertyChangeListener(fPresentationContextListener); IWorkbenchWindow window = fInput.getContext().getWindow(); if (window != null) { IDebugContextService debugContextService = DebugUITools.getDebugContextManager().getContextService(window); ISelection debugContext = debugContextService.getActiveContext(); if (debugContext instanceof IStructuredSelection) { synchronized(this) { fDebugContext = (IStructuredSelection)debugContext; } } debugContextService.addDebugContextListener(fDebugContextListener); } }
void dispose() { // Unregister listener to breakpoint organizers. IBreakpointOrganizer[] organizers; synchronized(this) { organizers = fOrganizers; fOrganizers = null; } registerOrganizersListener(organizers, null); // Unregister listener to presentation context. fInput.getContext().removePropertyChangeListener(fPresentationContextListener); // Unregister listener to debug context in window. IWorkbenchWindow window = fInput.getContext().getWindow(); if (window != null) { IDebugContextService debugContextService = DebugUITools.getDebugContextManager().getContextService(window); debugContextService.removeDebugContextListener(fDebugContextListener); } }
/** * Change the breakpoint organizers for the root container. * * @param organizers the new organizers. */ void setOrganizers(IBreakpointOrganizer[] organizers) { IBreakpointOrganizer[] oldOrganizers = null; synchronized(this) { oldOrganizers = fOrganizers; fOrganizers = organizers; } registerOrganizersListener(oldOrganizers, organizers); updateContainers(); }