diff --git a/plugins/plugin-java/che-plugin-java-ext-debugger-java-client/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java b/plugins/plugin-java/che-plugin-java-ext-debugger-java-client/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java index 814b327267..b2d768cc8b 100644 --- a/plugins/plugin-java/che-plugin-java-ext-debugger-java-client/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java +++ b/plugins/plugin-java/che-plugin-java-ext-debugger-java-client/src/main/java/org/eclipse/che/ide/ext/java/jdi/client/debug/DebuggerPresenter.java @@ -19,7 +19,6 @@ import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.web.bindery.event.shared.EventBus; import com.google.web.bindery.event.shared.HandlerRegistration; - import org.eclipse.che.api.machine.gwt.client.events.ExtServerStateEvent; import org.eclipse.che.api.machine.gwt.client.events.ExtServerStateHandler; import org.eclipse.che.api.promises.client.Operation; @@ -69,6 +68,9 @@ import org.eclipse.che.ide.ext.java.jdi.shared.StepEvent; import org.eclipse.che.ide.ext.java.jdi.shared.Value; import org.eclipse.che.ide.ext.java.jdi.shared.Variable; import org.eclipse.che.ide.ext.java.shared.JarEntry; +import org.eclipse.che.ide.jseditor.client.document.Document; +import org.eclipse.che.ide.jseditor.client.text.TextPosition; +import org.eclipse.che.ide.jseditor.client.texteditor.EmbeddedTextEditorPresenter; import org.eclipse.che.ide.part.explorer.project.ProjectExplorerPresenter; import org.eclipse.che.ide.project.node.FileReferenceNode; import org.eclipse.che.ide.rest.AsyncRequestCallback; @@ -323,7 +325,7 @@ public class DebuggerPresenter extends BasePresenter implements DebuggerView.Act } VirtualFile activeFile = null; - EditorPartPresenter activeEditor = editorAgent.getActiveEditor(); + final EditorPartPresenter activeEditor = editorAgent.getActiveEditor(); if (activeEditor != null) { activeFile = activeEditor.getEditorInput().getFile(); } @@ -356,6 +358,7 @@ public class DebuggerPresenter extends BasePresenter implements DebuggerView.Act @Override public void onSuccess(VirtualFile result) { breakpointManager.setCurrentBreakpoint(finalLocation.getLineNumber() - 1); + scrollEditorToExecutionPoint((EmbeddedTextEditorPresenter) editorAgent.getActiveEditor()); } @Override @@ -365,7 +368,9 @@ public class DebuggerPresenter extends BasePresenter implements DebuggerView.Act }); } else { breakpointManager.setCurrentBreakpoint(location.getLineNumber() - 1); + scrollEditorToExecutionPoint((EmbeddedTextEditorPresenter) activeEditor); } + getStackFrameDump(); changeButtonsEnableState(true); } @@ -998,4 +1003,13 @@ public class DebuggerPresenter extends BasePresenter implements DebuggerView.Act private void invalidateDebugInfo() { debuggerInfo = EmptyDebuggerInfo.INSTANCE; } + + private void scrollEditorToExecutionPoint(EmbeddedTextEditorPresenter editor) { + Document document = editor.getDocument(); + + if (document != null) { + TextPosition newPosition = new TextPosition(executionPoint.getLineNumber(), 0); + document.setCursorPosition(newPosition); + } + } }