package com.kodedu.terminalfx.helper;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.scene.control.TextInputDialog;
import javafx.scene.paint.Color;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
/**
* Created by usta on 26.09.2016.
*/
public class FxHelper {
public static String colorToHex(Color color) {
return String.format("#%02X%02X%02X",
(int) (color.getRed() * 255),
(int) (color.getGreen() * 255),
(int) (color.getBlue() * 255));
}
public static boolean askQuestion(String message) {
CompletableFuture<Boolean> completableFuture = new CompletableFuture<Boolean>();
completableFuture.runAsync(() -> {
ThreadHelper.runActionLater(() -> {
Alert alert = new Alert(Alert.AlertType.INFORMATION, message, ButtonType.YES, ButtonType.NO);
ButtonType buttonType = alert.showAndWait().orElse(ButtonType.NO);
completableFuture.complete(buttonType == ButtonType.YES);
});
});
return completableFuture.join();
}
public static String askInput(String message) {
CompletableFuture<String> completableFuture = new CompletableFuture<String>();
completableFuture.runAsync(() -> {
ThreadHelper.runActionLater(() -> {
TextInputDialog inputDialog = new TextInputDialog();
inputDialog.setContentText(message);
Optional<String> optional = inputDialog.showAndWait();
completableFuture.complete(optional.orElseGet(() -> null));
});
});
return completableFuture.join();
}
}