Class BusyIndicator
java.lang.Object
org.eclipse.swt.custom.BusyIndicator
Support for showing a Busy Cursor during a long running process.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final String(package private) static final Stringprivate static final AtomicInteger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static voidclearBusyCursor(Display display, Integer busyId) static <V, E extends Exception>
CompletableFuture<V> compute(SwtCallable<V, E> action) If called from aDisplaythread use the givenSwtCallableto produces aCompletableFutureproviding busy feedback using the busy indicator while computation is running.static <V, E extends Exception>
CompletableFuture<V> compute(SwtCallable<V, E> action, Executor executor) If called from aDisplaythread use the givenSwtCallableto compute aCompletableFutureproviding busy feedback using the busy indicator while computation is running.static <E extends Exception>
CompletableFuture<?> execute(SwtRunnable<E> action) If called from aDisplaythread use the givenSwtRunnableto produces aCompletableFutureproviding busy feedback using the busy indicator while execution is running.static <E extends Exception>
CompletableFuture<?> execute(SwtRunnable<E> action, Executor executor) If called from aDisplaythread use the givenSwtRunnableto produces aCompletableFutureproviding busy feedback using the busy indicator while execution is running.private static IntegersetBusyCursor(Display display) private static voidsetCursorAndId(Shell shell, Cursor cursor, Integer busyId) Paranoia code to make sure we don't break UI because of one shell disposed, see bug 532632 comment 20static voidIf called from aDisplaythread, waits for the givenFutureto complete and provides busy feedback using the busy indicator.static voidRuns the givenRunnablewhile providing busy feedback using this busy indicator.
-
Field Details
-
nextBusyId
-
BUSYID_NAME
- See Also:
-
BUSY_CURSOR
- See Also:
-
-
Constructor Details
-
BusyIndicator
public BusyIndicator()
-
-
Method Details
-
showWhile
Runs the givenRunnablewhile providing busy feedback using this busy indicator.- Parameters:
display- the display on which the busy feedback should be displayed. If the display is null, the Display for the current thread will be used. If there is no Display for the current thread, the runnable code will be executed and no busy feedback will be displayed.runnable- the runnable for which busy feedback is to be shown. Must not be null.- Throws:
IllegalArgumentException-- ERROR_NULL_ARGUMENT - if the runnable is null
-
showWhile
If called from aDisplaythread, waits for the givenFutureto complete and provides busy feedback using the busy indicator. While waiting for completion, pending UI events are processed to prevent UI freeze. If there is noDisplayfor the current thread, theFuture.get()will be executed ignoring anyExecutionExceptionand no busy feedback will be displayed.- Parameters:
future- theFuturefor which busy feedback is to be shown.- Since:
- 3.127
-
execute
If called from aDisplaythread use the givenSwtRunnableto produces aCompletableFutureproviding busy feedback using the busy indicator while execution is running. If called from a nonDisplaythe execution is performed in place and the result returned as aCompletableFuture. It is therefore safe to call this method from any thread and theSwtCallableis always evaluated outside the UI. TheForkJoinPool.commonPool()is used to execute the computation in case this is called from aDisplaythread- Parameters:
action- the action that should be executed and produces a result of theCompletableFuture- Since:
- 3.123
-
execute
public static <E extends Exception> CompletableFuture<?> execute(SwtRunnable<E> action, Executor executor) If called from aDisplaythread use the givenSwtRunnableto produces aCompletableFutureproviding busy feedback using the busy indicator while execution is running. If called from a nonDisplaythe execution is performed in place and the result returned as aCompletableFuture. It is therefore safe to call this method from any thread and theSwtCallableis always evaluated outside the UI.- Parameters:
action- the action that should be executed and produces a result of theCompletableFutureexecutor- the Executor to perform the computation in case this is called from aDisplaythread, passing aDisplaywill throw anIllegalArgumentExceptionas this will lead to a blocking UI and violates the contract of this method- Since:
- 3.123
-
compute
If called from aDisplaythread use the givenSwtCallableto produces aCompletableFutureproviding busy feedback using the busy indicator while computation is running. If called from a nonDisplaythe computation is performed in place and the result returned as aCompletableFuture. It is therefore safe to call this method from any thread and theSwtCallableis always evaluated outside the UI. TheForkJoinPool.commonPool()is used to execute the computation in case this is called from aDisplaythread- Parameters:
action- the action that should be executed and produces a result of theCompletableFuture- Since:
- 3.123
-
compute
public static <V, E extends Exception> CompletableFuture<V> compute(SwtCallable<V, E> action, Executor executor) If called from aDisplaythread use the givenSwtCallableto compute aCompletableFutureproviding busy feedback using the busy indicator while computation is running. If called from a nonDisplaythe computation is performed in place and the result returned as aCompletableFuture. It is therefore safe to call this method from any thread and theSwtCallableis always evaluated outside the UI.- Parameters:
action- the action that should be executed and produces a result of theCompletableFutureexecutor- the Executor to perform the computation in case this is called from aDisplaythread, passing aDisplaywill throw anIllegalArgumentExceptionas this will lead to a blocking UI and violates the contract of this method- Since:
- 3.123
-
clearBusyCursor
-
setBusyCursor
-
setCursorAndId
-