From 331c5a78f27e35d8a07f48844e6bb7909d914dbe Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 1 Feb 2012 00:59:12 +0100 Subject: [PATCH] god bless edt --- .../ide/util/treeView/AbstractTreeUi.java | 70 ++++++++----------- .../ide/util/treeView/BaseTreeTestCase.java | 10 +-- 2 files changed, 36 insertions(+), 44 deletions(-) diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java index 4d39ef8cec91..2e21403db49b 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java @@ -380,7 +380,7 @@ public class AbstractTreeUi { UIUtil.invokeLaterIfNeeded(actual); } } - + return result; } @@ -836,14 +836,14 @@ public class AbstractTreeUi { if (edt) { final Ref changes = new Ref(false); queueToBackground(new Runnable() { - public void run() { - changes.set(_update(nodeDescriptor)); - } - }, new Runnable() { - public void run() { - result.setDone(changes.get()); - } - }, nodeDescriptor); + public void run() { + changes.set(_update(nodeDescriptor)); + } + }, new Runnable() { + public void run() { + result.setDone(changes.get()); + } + }, nodeDescriptor); } else { result.setDone(_update(nodeDescriptor)); @@ -1061,18 +1061,18 @@ public class AbstractTreeUi { if (descriptor != null) { DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent(); maybeYeild(new ActiveRunnable() { - @Override - public ActionCallback run() { - ActionCallback result = new ActionCallback(); - update(descriptor, false).doWhenDone(new Runnable() { - @Override - public void run() { - updateRow(row + 1, pass); - } - }).notify(result); - return result; - } - }, pass, node); + @Override + public ActionCallback run() { + ActionCallback result = new ActionCallback(); + update(descriptor, false).doWhenDone(new Runnable() { + @Override + public void run() { + updateRow(row + 1, pass); + } + }).notify(result); + return result; + } + }, pass, node); } } } @@ -1755,7 +1755,7 @@ public class AbstractTreeUi { if (!isReleased()) { setCancelRequested(true); resetToReady(); - } + } throw e; } } @@ -2121,8 +2121,8 @@ public class AbstractTreeUi { List children = preloadedChildren != null - ? preloadedChildren.getElements() - : Arrays.asList(getChildrenFor(element)); + ? preloadedChildren.getElements() + : Arrays.asList(getChildrenFor(element)); int index = 0; for (Object child : children) { if (!isValid(child)) continue; @@ -2362,7 +2362,7 @@ public class AbstractTreeUi { final ActionCallback done = new ActionCallback(); - final Runnable cancelUpdate = new Runnable() { + invokeLaterIfNeeded(new Runnable() { public void run() { if (isReleased()) { done.setRejected(); @@ -2371,29 +2371,21 @@ public class AbstractTreeUi { if (myResettingToReadyNow.get()) { _getReady().notify(done); - } - else if (isReady()) { + } else if (isReady()) { resetToReadyNow(); done.setDone(); - } - else { + } else { if (isIdle() && hasPendingWork()) { resetToReadyNow(); done.setDone(); - } - else { + } else { _getReady().notify(done); } } maybeReady(); } - }; - if (ApplicationManager.getApplication().isUnitTestMode() && isEdt()) { - cancelUpdate.run(); - } else { - invokeLaterIfNeeded(cancelUpdate, false); - } + }, false); if (isEdt() || isPassthroughMode()) { maybeReady(); @@ -3621,7 +3613,7 @@ public class AbstractTreeUi { } public boolean addSubtreeToUpdate(final DefaultMutableTreeNode root, final Runnable runAfterUpdate, final boolean updateStructure) { - Object element = getElementFor(root); + Object element = getElementFor(root); if (element != null && getTreeStructure().isAlwaysLeaf(element)) { removeFromUnbuilt(root); removeLoading(root, true); @@ -3688,7 +3680,7 @@ public class AbstractTreeUi { } public void userSelect(final Object[] elements, final Runnable onDone, final boolean addToSelection, boolean scroll) { - _select(elements, onDone, addToSelection, true, false, scroll, false, true, !ApplicationManager.getApplication().isUnitTestMode() && !isEdt()); + _select(elements, onDone, addToSelection, true, false, scroll, false, true, true); } void _select(final Object[] elements, diff --git a/platform/platform-tests/testSrc/com/intellij/ide/util/treeView/BaseTreeTestCase.java b/platform/platform-tests/testSrc/com/intellij/ide/util/treeView/BaseTreeTestCase.java index 2a232a725361..445b99e6bbdf 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/util/treeView/BaseTreeTestCase.java +++ b/platform/platform-tests/testSrc/com/intellij/ide/util/treeView/BaseTreeTestCase.java @@ -53,13 +53,13 @@ abstract class BaseTreeTestCase extends FlyIdeaTestCase { void doAndWaitForBuilder(final Runnable runnable, final Condition condition) throws Exception { final Ref started = new Ref(); - //invokeLaterIfNeeded(new Runnable() { - // @Override - // public void run() { + invokeLaterIfNeeded(new Runnable() { + @Override + public void run() { started.set(true); runnable.run(); - // } - //}); + } + }); waitBuilderToCome(new Condition() { @Override