Class AuthController

java.lang.Object
it.unisa.diem.wordageddon_g16.controllers.AuthController
All Implemented Interfaces:
javafx.fxml.Initializable

public class AuthController extends Object implements javafx.fxml.Initializable
Controller per la schermata di autenticazione dell'applicazione Wordageddon.

Gestisce il login e la registrazione degli utenti, la visualizzazione dinamica della password, e la validazione dei campi tramite AuthService. Utilizza ViewLoader per la navigazione e Resources per applicare lo stile ai popup di dialogo.

  • Field Details

    • authService

      private final AuthService authService
    • loginBtn

      private javafx.scene.control.Button loginBtn
    • registerBtn

      private javafx.scene.control.Button registerBtn
    • passwordPF

      private javafx.scene.control.PasswordField passwordPF
    • passwordTF

      private javafx.scene.control.TextField passwordTF
    • usernameField

      private javafx.scene.control.TextField usernameField
    • oppureLabel

      private javafx.scene.control.Label oppureLabel
    • showPasswordCB

      private javafx.scene.control.CheckBox showPasswordCB
    • noUsers

      private boolean noUsers
  • Constructor Details

    • AuthController

      public AuthController(AppContext context)
      Costruisce il controller associando il servizio di autenticazione tramite AppContext.
      Parameters:
      context - contesto applicativo contenente l'istanza di AuthService
  • Method Details

    • initialize

      public void initialize(URL url, ResourceBundle resourceBundle)
      Inizializza la schermata di autenticazione.

      Mostra il pulsante di registrazione se non ci sono utenti, e nasconde il login. Configura anche il binding tra PasswordField e TextField per la visualizzazione della password.

      Specified by:
      initialize in interface javafx.fxml.Initializable
    • handleLogin

      private void handleLogin()
      Gestisce il clic sul pulsante di login.

      Verifica che i campi siano compilati, tenta l'autenticazione e reindirizza al menu se riuscita. Se fallisce, mostra un messaggio di errore tramite showDialog(Alert.AlertType, String, String).

    • handleRegistration

      private void handleRegistration()
      Gestisce la registrazione di un nuovo utente.

      Valida l'input rispetto ai vincoli definiti in Config, registra l'utente e carica il menu se riuscito. Altrimenti, mostra un messaggio di errore.

    • showDialog

      public void showDialog(javafx.scene.control.Alert.AlertType type, String titolo, String messaggio)
      Mostra una finestra di dialogo personalizzata con stile dinamico basato sul tipo di Alert.

      Se il tipo รจ INFORMATION, mostra un'icona di conferma.

      Parameters:
      type - tipo di alert da visualizzare
      titolo - titolo della finestra
      messaggio - contenuto testuale del messaggio