/*
* Copyright (c) 2015. , Beaufort 8
* released under MIT License
* http://opensource.org/licenses/MIT
*/
package de.elggconnect.elggconnectclient.util;
import de.elggconnect.elggconnectclient.controller.LoginController;
import de.elggconnect.elggconnectclient.controller.LogoutController;
import de.elggconnect.elggconnectclient.controller.MainController;
import javafx.scene.Node;
/**
* Utility class for controlling navigation between scenes.
* <p>
* All methods on the navigator are static to facilitate
* simple access from anywhere in the application.
*/
public class SceneNavigator {
// constants for fxml layouts managed by the navigator.
public static final String MAIN = "/fxml/main.fxml";
public static final String LOGIN = "/fxml/login.fxml";
public static final String LOGOUT = "/fxml/logout.fxml";
//Store scenes
private static Node loginScene;
private static Node logoutScene;
private static LoginController loginController;
private static LogoutController logoutController;
/**
* The main application layout controller.
*/
private static MainController mainController;
public static void setLoginScene(Node node, LoginController controller) {
loginScene = node;
loginController = controller;
}
//endregion
public static void setLogoutScene(Node node, LogoutController controller) {
logoutScene = node;
logoutController = controller;
}
/**
* Stores the main controller for later use in navigation tasks.
*
* @param mainController the main application layout controller.
*/
public static void setController(MainController mainController) {
SceneNavigator.mainController = mainController;
}
/**
* Loads the Login Scene
*/
public static void loadLoginScene() {
mainController.setScene(loginScene);
loginController.init();
}
/**
* Load the Logout Scene
*/
public static void loadLogoutScene() {
mainController.setScene(logoutScene);
logoutController.init();
}
}