goto popup calculations should be cancellable even after Ctrl+Space (IDEA-123714 ?)

This commit is contained in:
peter
2014-04-18 22:37:33 +02:00
parent c6fcabfcc2
commit 3c769acbae
2 changed files with 7 additions and 12 deletions
@@ -184,7 +184,7 @@ class Intf {
List<Object> elements = ['empty']
def semaphore = new Semaphore()
semaphore.down()
popup.scheduleCalcElements(text, false, false, ModalityState.NON_MODAL, { set ->
popup.scheduleCalcElements(text, false, ModalityState.NON_MODAL, { set ->
elements = set as List
semaphore.up()
} as Consumer<Set<?>>)
@@ -949,7 +949,7 @@ public abstract class ChooseByNameBase {
final Runnable request = new Runnable() {
@Override
public void run() {
scheduleCalcElements(text, myCheckBox.isSelected(), postRunnable == null, modalityState, new Consumer<Set<?>>() {
scheduleCalcElements(text, myCheckBox.isSelected(), modalityState, new Consumer<Set<?>>() {
@Override
public void consume(Set<?> elements) {
synchronized (myRebuildMutex) {
@@ -986,10 +986,9 @@ public abstract class ChooseByNameBase {
public void scheduleCalcElements(String text,
boolean checkboxState,
boolean canCancel,
ModalityState modalityState,
Consumer<Set<?>> callback) {
scheduleCalcElements(new CalcElementsThread(text, checkboxState, callback, modalityState, canCancel, false));
scheduleCalcElements(new CalcElementsThread(text, checkboxState, callback, modalityState, false));
}
private void scheduleCalcElements(final CalcElementsThread thread) {
@@ -1471,25 +1470,23 @@ public abstract class ChooseByNameBase {
private final ModalityState myModalityState;
private final ProgressIndicator myCancelled = new ProgressIndicatorBase();
private final boolean myCanCancel;
CalcElementsThread(String pattern,
boolean checkboxState,
Consumer<Set<?>> callback,
@NotNull ModalityState modalityState,
boolean canCancel, boolean scopeExpanded) {
boolean scopeExpanded) {
myPattern = pattern;
myCheckboxState = checkboxState;
myCallback = callback;
myModalityState = modalityState;
myCanCancel = canCancel;
myScopeExpanded = scopeExpanded;
}
private final Alarm myShowCardAlarm = new Alarm();
private void scheduleRestart() {
scheduleCalcElements(new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState, myCanCancel, myScopeExpanded));
scheduleCalcElements(new CalcElementsThread(myPattern, myCheckboxState, myCallback, myModalityState, myScopeExpanded));
}
@Override
@@ -1608,9 +1605,7 @@ public abstract class ChooseByNameBase {
}
private void cancel() {
if (myCanCancel) {
myCancelled.cancel();
}
myCancelled.cancel();
}
}
@@ -1703,7 +1698,7 @@ public abstract class ChooseByNameBase {
@Override
public void run() {
final boolean[] overFlow = {false};
myCalcElementsThread = new CalcElementsThread(text, everywhere, null, ModalityState.NON_MODAL, true, false) {
myCalcElementsThread = new CalcElementsThread(text, everywhere, null, ModalityState.NON_MODAL, false) {
private final AtomicBoolean userAskedToAbort = new AtomicBoolean();
@Override
protected boolean isOverflow(@NotNull Set<Object> elementsArray) {