package control; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.PasswordField; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import model.persistance.Settings; import model.persistance.User; import view.Dashboard; public class LoginProvider implements EventHandler<ActionEvent> { private final TextField usernameField; private final PasswordField passwordField; private final RadioButton savePwd; private final Dashboard dashboard; public LoginProvider(Dashboard dashboard, TextField usernameField, PasswordField passwordField, RadioButton savePwd) { this.dashboard = dashboard; this.usernameField = usernameField; this.passwordField = passwordField; this.savePwd = savePwd; } @Override public void handle(ActionEvent event) { dashboard.setStatusText("", false); dashboard.showLoader(true); dashboard.setMenuTransparent(false); dashboard.setSigInTransparent(true); final String username = usernameField.getText(); final boolean validUsername = username.length() == 5 || username.startsWith("u"); if (!validUsername) { toggleDashboardLoginState("Ungültiger Benutzername"); return; } else { final String password = passwordField.getText(); if (password.length() < 1) { toggleDashboardLoginState("Ungültiges Passwort"); return; } User user = Settings.getInstance().getUser(); if (savePwd.isSelected()) { user.setName(username); user.setPassword(password); } else { user.setName(""); user.setPassword(""); } new Thread(new Runnable() { @Override public void run() { new IliasStarter(dashboard, username, password).login(); } }).start(); } } private void toggleDashboardLoginState(final String message) { Platform.runLater(new Runnable() { @Override public void run() { dashboard.setStatusText(message, true); usernameField.requestFocus(); usernameField.selectAll(); dashboard.fadeInLogin(); dashboard.showLoader(false); } }); } }