IDEX-4129: scroll document to execution point

Signed-off-by: Dmytro Nochevnov <dnochevnov@codenvy.com>
6.19.x
Dmytro Nochevnov 2016-02-13 16:14:12 +02:00
parent 13692dd38b
commit 2e46a699c6
1 changed files with 16 additions and 2 deletions

View File

@ -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);
}
}
}