private DebuggingModelController( Place currentPlace, AppContext appContext, DebuggingModel debuggingModel, Editor editor, EditorPopupController editorPopupController, DocumentManager documentManager) { this.appContext = appContext; this.editor = editor; this.currentPlace = currentPlace; this.debuggingModel = debuggingModel; this.leftGutterClickListenerRemover = editor.getLeftGutter().getClickListenerRegistrar().add(leftGutterClickListener); // Every time we enter workspace, we get a new debugging session id. String sessionId = BootstrapSession.getBootstrapSession().getActiveClientId() + ":" + System.currentTimeMillis(); this.debuggerState = DebuggerState.create(sessionId); this.debuggingSidebar = DebuggingSidebar.create(appContext.getResources(), debuggerState); this.debuggingModelRenderer = DebuggingModelRenderer.create(appContext, editor, debuggingSidebar, debuggerState); this.cssLiveEditController = new CssLiveEditController(debuggerState, documentManager); this.evaluationPopupController = EvaluationPopupController.create( appContext.getResources(), editor, editorPopupController, debuggerState); this.debuggingModel.addModelChangeListener(debuggingModelChangeListener); this.debuggerState.getDebuggerStateListenerRegistrar().add(debuggerStateListener); this.debuggingSidebar.getDebuggerCommandListenerRegistrar().add(userCommandListener); }
public void setDocument(Document document, PathUtil path, DocumentParser parser) { if (breakpoints != null) { breakpoints.teardown(); debuggingModelRenderer.handleDocumentChanged(); } this.path = path; breakpoints = new AnchoredBreakpoints(debuggingModel, document); anchorBreakpoints(); maybeAnchorExecutionLine(); evaluationPopupController.setDocument(document, path, parser); breakpoints.setBreakpointDescriptionListener(breakpointDescriptionListener); }