66 lines
2.0 KiB
Java
66 lines
2.0 KiB
Java
package com.andrewlalis.perfin.control;
|
|
|
|
import javafx.scene.Node;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.Alert;
|
|
import javafx.scene.control.ButtonType;
|
|
import javafx.stage.Modality;
|
|
import javafx.stage.Window;
|
|
|
|
/**
|
|
* Helper class for standardized popups and confirmation dialogs for the app.
|
|
*/
|
|
public class Popups {
|
|
public static boolean confirm(Window owner, String text) {
|
|
Alert alert = new Alert(Alert.AlertType.CONFIRMATION, text);
|
|
alert.initOwner(owner);
|
|
alert.initModality(Modality.APPLICATION_MODAL);
|
|
var result = alert.showAndWait();
|
|
return result.isPresent() && result.get() == ButtonType.OK;
|
|
}
|
|
|
|
public static boolean confirm(Node node, String text) {
|
|
return confirm(getWindowFromNode(node), text);
|
|
}
|
|
|
|
public static void message(Window owner, String text) {
|
|
Alert alert = new Alert(Alert.AlertType.NONE, text);
|
|
alert.initOwner(owner);
|
|
alert.initModality(Modality.APPLICATION_MODAL);
|
|
alert.getButtonTypes().setAll(ButtonType.OK);
|
|
alert.showAndWait();
|
|
}
|
|
|
|
public static void message(Node node, String text) {
|
|
message(getWindowFromNode(node), text);
|
|
}
|
|
|
|
public static void error(Window owner, String text) {
|
|
Alert alert = new Alert(Alert.AlertType.WARNING, text);
|
|
alert.initOwner(owner);
|
|
alert.initModality(Modality.APPLICATION_MODAL);
|
|
alert.showAndWait();
|
|
}
|
|
|
|
public static void error(Node node, String text) {
|
|
error(getWindowFromNode(node), text);
|
|
}
|
|
|
|
public static void error(Window owner, Exception e) {
|
|
error(owner, "An " + e.getClass().getSimpleName() + " occurred: " + e.getMessage());
|
|
}
|
|
|
|
public static void error(Node node, Exception e) {
|
|
error(getWindowFromNode(node), e);
|
|
}
|
|
|
|
private static Window getWindowFromNode(Node n) {
|
|
Window owner = null;
|
|
Scene scene = n.getScene();
|
|
if (scene != null) {
|
|
owner = scene.getWindow();
|
|
}
|
|
return owner;
|
|
}
|
|
}
|