mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
sm runner: scroll to source on manual selection only (IDEA-147403)
This commit is contained in:
+2
-24
@@ -15,16 +15,10 @@
|
||||
*/
|
||||
package com.intellij.execution.testframework.sm.runner.ui;
|
||||
|
||||
import com.intellij.execution.testframework.*;
|
||||
import com.intellij.execution.testframework.actions.ScrollToTestSourceAction;
|
||||
import com.intellij.execution.testframework.sm.SMRunnerUtil;
|
||||
import com.intellij.execution.testframework.AbstractTestProxy;
|
||||
import com.intellij.execution.testframework.TestConsoleProperties;
|
||||
import com.intellij.execution.testframework.sm.runner.ProxyFilters;
|
||||
import com.intellij.execution.testframework.sm.runner.SMTestProxy;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import com.intellij.util.OpenSourceUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -67,20 +61,4 @@ public class SMTRunnerUIActionsHandler extends TestResultsViewer.SMEventsAdapter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onSelected(@Nullable final SMTestProxy selectedTestProxy,
|
||||
@NotNull final TestResultsViewer viewer,
|
||||
@NotNull final TestFrameworkRunningModel model) {
|
||||
//TODO: tests o "onSelected"
|
||||
SMRunnerUtil.runInEventDispatchThread(new Runnable() {
|
||||
public void run() {
|
||||
if (ScrollToTestSourceAction.isScrollEnabled(model)) {
|
||||
final Navigatable descriptor = TestsUIUtil.getOpenFileDescriptor(selectedTestProxy, model);
|
||||
if (descriptor != null) {
|
||||
OpenSourceUtil.navigate(false, descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}, ModalityState.NON_MODAL);
|
||||
}
|
||||
}
|
||||
|
||||
+12
@@ -20,6 +20,7 @@ import com.intellij.execution.TestStateStorage;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.configurations.RunProfile;
|
||||
import com.intellij.execution.testframework.*;
|
||||
import com.intellij.execution.testframework.actions.ScrollToTestSourceAction;
|
||||
import com.intellij.execution.testframework.export.TestResultsXmlFormatter;
|
||||
import com.intellij.execution.testframework.sm.SMRunnerUtil;
|
||||
import com.intellij.execution.testframework.sm.TestHistoryConfiguration;
|
||||
@@ -47,8 +48,10 @@ import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.util.registry.Registry;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.wm.IdeFocusManager;
|
||||
import com.intellij.pom.Navigatable;
|
||||
import com.intellij.ui.JBColor;
|
||||
import com.intellij.util.Alarm;
|
||||
import com.intellij.util.OpenSourceUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.text.DateFormatUtil;
|
||||
@@ -197,6 +200,7 @@ public class SMTestRunnerResultsForm extends TestResultsPanel
|
||||
@Override
|
||||
public void pass(AbstractTestProxy testProxy) {
|
||||
if (testProxy == null) return;
|
||||
final AbstractTestProxy selectedProxy = testProxy;
|
||||
//drill to the first leaf
|
||||
while (!testProxy.isLeaf()) {
|
||||
final List<? extends AbstractTestProxy> children = testProxy.getChildren();
|
||||
@@ -213,6 +217,14 @@ public class SMTestRunnerResultsForm extends TestResultsPanel
|
||||
//pretend the selection on the first leaf
|
||||
//so if test would be run, tracking would be restarted
|
||||
myLastSelected = testProxy;
|
||||
|
||||
//ensure scroll to source on explicit selection only
|
||||
if (ScrollToTestSourceAction.isScrollEnabled(SMTestRunnerResultsForm.this)) {
|
||||
final Navigatable descriptor = TestsUIUtil.getOpenFileDescriptor(selectedProxy, SMTestRunnerResultsForm.this);
|
||||
if (descriptor != null) {
|
||||
OpenSourceUtil.navigate(false, descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user