sm runner: scroll to source on manual selection only (IDEA-147403)

This commit is contained in:
Anna Kozlova
2015-11-06 16:21:29 +01:00
parent 6fdc2d284e
commit eb46a9c5a2
2 changed files with 14 additions and 24 deletions
@@ -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);
}
}
@@ -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);
}
}
}
});