Skip to content

Instantly share code, notes, and snippets.

View hendrikebbers's full-sized avatar
:octocat:
Doing Java

Hendrik Ebbers hendrikebbers

:octocat:
Doing Java
View GitHub Profile
@hendrikebbers
hendrikebbers / gist:7a9eebbada9e5413d379
Last active August 29, 2015 14:13
UI Event Handling
button.setOnAction(event -> button.setEnabled(false));
@hendrikebbers
hendrikebbers / gist:1afa5a2d6f5ad19549a0
Last active August 29, 2015 14:13
ron on ui toolkit thread
void runOnUiToolkitThread(Runnable runnable);
void runOnUiToolkitThreadAndWait(Runnable runnable);
@hendrikebbers
hendrikebbers / gist:970d3867a5bcc4840f0e
Last active August 29, 2015 14:13
invokeAndWait as default
default void runOnUiToolkitThreadAndWait(Runnable runnable) throws InterruptedException, ExecutionException {
FutureTask<Void> future = new FutureTask<>(runnable, null);
runOnUiToolkitThread(future);
future.get();
}
@hendrikebbers
hendrikebbers / gist:88850a936fa3a91a1c23
Last active August 29, 2015 14:13
runningOnBackgroundThread
public void runningOnBackgroundThread() {
String userInput = runOnUiToolkitThreadAndWait(() -> textfield.getText());
callWebservice(userInput);
}
<T> T runOnUiToolkitThreadAndWait(Callable<T> callable);
<T> Provider<T> runOnUiToolkitThread(Callable<T> callable);
public interface UIThread {
void runOnUiToolkitThread(Runnable runnable);
<T> Provider<T> runOnUiToolkitThread(Callable<T> callable);
void runOnUiToolkitThreadAndWait(Runnable runnable);
<T> T runOnUiToolkitThreadAndWait(Callable<T> callable);
@hendrikebbers
hendrikebbers / gist:fa1cbd7a92a6841478c1
Last active August 29, 2015 14:13
UI Thread implementation
public interface UIThread {
void runOnUiToolkitThread(Runnable runnable);
default <T> Future<T> runOnUiToolkitThread(Callable<T> callable) {
FutureTask<T> future = new FutureTask<>(callable);
runOnUiToolkitThread(future);
return future;
}
@hendrikebbers
hendrikebbers / gist:9382366d6fa66ea2a456
Created January 21, 2015 07:05
How to use the flowActionHandler in DataFX
flowActionHandler.handle("actionId");
flowActionHandler.navigate(NextController.class);
flowActionHandler.navigateBack();