synchronous stacktrace folding when selecting tests (junit) or threads (analyze dump)

This commit is contained in:
peter
2010-07-12 20:12:14 +01:00
parent 556c151ce1
commit 681412f230
3 changed files with 14 additions and 7 deletions
@@ -148,6 +148,11 @@ public class ConsoleViewImpl extends JPanel implements ConsoleView, ObservableCo
public void foldImmediately() {
ApplicationManager.getApplication().assertIsDispatchThread();
if (myFlushAlarm.getActiveRequestCount() > 0) {
myFlushAlarm.cancelAllRequests();
myFlushDeferredRunnable.run();
}
myFoldingAlarm.cancelAllRequests();
myPendingFoldRegions.clear();
@@ -22,6 +22,7 @@ import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.execution.filters.Filter;
import com.intellij.execution.filters.TextConsoleBuilder;
import com.intellij.execution.filters.TextConsoleBuilderFactory;
import com.intellij.execution.impl.ConsoleViewImpl;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
import com.intellij.execution.ui.ExecutionConsole;
@@ -61,13 +62,10 @@ public class AnalyzeStacktraceUtil {
public static void printStacktrace(final ConsoleView consoleView, final String unscrambledTrace) {
consoleView.clear();
consoleView.print(unscrambledTrace+"\n", ConsoleViewContentType.ERROR_OUTPUT);
consoleView.performWhenNoDeferredOutput(
new Runnable() {
public void run() {
consoleView.scrollTo(0);
}
}
);
if (consoleView instanceof ConsoleViewImpl) {
((ConsoleViewImpl)consoleView).foldImmediately();
}
consoleView.scrollTo(0);
}
@Nullable
@@ -16,6 +16,7 @@
package com.intellij.execution.testframework.ui;
import com.intellij.execution.filters.HyperlinkInfo;
import com.intellij.execution.impl.ConsoleViewImpl;
import com.intellij.execution.testframework.*;
import com.intellij.execution.ui.ConsoleView;
import com.intellij.execution.ui.ConsoleViewContentType;
@@ -108,6 +109,9 @@ public class TestsOutputConsolePrinter implements Printer, Disposable {
}
myCurrentPrintable.printOn(this);
scrollToBeginning();
if (myConsole instanceof ConsoleViewImpl) {
((ConsoleViewImpl)myConsole).foldImmediately();
}
}
public void printHyperlink(final String text, final HyperlinkInfo info) {