god bless edt

This commit is contained in:
Konstantin Bulenkov
2012-02-01 00:59:12 +01:00
parent 2007f9c8a3
commit 331c5a78f2
2 changed files with 36 additions and 44 deletions
@@ -380,7 +380,7 @@ public class AbstractTreeUi {
UIUtil.invokeLaterIfNeeded(actual);
}
}
return result;
}
@@ -836,14 +836,14 @@ public class AbstractTreeUi {
if (edt) {
final Ref<Boolean> changes = new Ref<Boolean>(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<Object> 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,
@@ -53,13 +53,13 @@ abstract class BaseTreeTestCase<StructureElement> extends FlyIdeaTestCase {
void doAndWaitForBuilder(final Runnable runnable, final Condition condition) throws Exception {
final Ref<Boolean> started = new Ref<Boolean>();
//invokeLaterIfNeeded(new Runnable() {
// @Override
// public void run() {
invokeLaterIfNeeded(new Runnable() {
@Override
public void run() {
started.set(true);
runnable.run();
// }
//});
}
});
waitBuilderToCome(new Condition() {
@Override