46 lines
1.2 KiB
Java
46 lines
1.2 KiB
Java
package envoy.client.helper;
|
|
|
|
import javafx.application.Platform;
|
|
import javafx.scene.control.Alert;
|
|
import javafx.scene.control.Alert.AlertType;
|
|
|
|
import envoy.client.data.*;
|
|
import envoy.client.event.EnvoyCloseEvent;
|
|
|
|
import dev.kske.eventbus.EventBus;
|
|
|
|
/**
|
|
* Contains methods that have a direct impact on the user.
|
|
*
|
|
* @author Leon Hofmeister
|
|
* @since Envoy Client v0.2-beta
|
|
*/
|
|
public class ShutdownHelper {
|
|
|
|
private ShutdownHelper() {}
|
|
|
|
/**
|
|
* Exits Envoy or minimizes it, depending on the current state of
|
|
* {@link Settings#isHideOnClose()}.
|
|
*
|
|
* @since Envoy Client v0.2-beta
|
|
*/
|
|
public static void exit() { exit(Settings.getInstance().isHideOnClose(), true); }
|
|
|
|
/**
|
|
* Exits the currently open Envoy application or minimizes it.
|
|
* Does not necessarily shutdown VM.
|
|
*
|
|
* @param minimize whether Envoy should be minimized instead of closed
|
|
* @param shutdownVM whether the JVM should shutdown
|
|
* @since Envoy Client v0.2-beta
|
|
*/
|
|
public static void exit(boolean minimize, boolean shutdownVM) {
|
|
if (minimize) Context.getInstance().getStage().setIconified(true);
|
|
else {
|
|
EventBus.getInstance().dispatch(new EnvoyCloseEvent());
|
|
if (shutdownVM) System.exit(0);
|
|
}
|
|
}
|
|
}
|