package com.kritsit.casetracker.client.domain.ui; import com.kritsit.casetracker.client.domain.factory.ServiceFactory; import com.kritsit.casetracker.client.domain.services.ILoginService; import com.kritsit.casetracker.client.domain.ui.controller.LoginController; import com.kritsit.casetracker.shared.domain.model.Staff; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; import java.io.IOException; public final class LoginDialog { private final Logger logger = LoggerFactory.getLogger(LoginDialog.class); public Staff run(Stage stage) throws IOException { logger.info("Starting the login interface"); logger.debug("Loading FXML"); FXMLLoader loader = new FXMLLoader(getClass().getResource("/ui/fxml/LoginDialog.fxml")); Parent root = loader.load(); logger.debug("FXML loaded"); LoginController controller = (LoginController) loader.getController(); ILoginService loginService = ServiceFactory.getLoginService(); controller.setLoginService(loginService); controller.setStage(stage); logger.debug("Login interface prepared"); stage.setTitle("CaseTracker - Login"); stage.setScene(new Scene(root, 300, 275)); stage.showAndWait(); return controller.getUser(); } }