Class ViewLoader

java.lang.Object
it.unisa.diem.wordageddon_g16.utility.ViewLoader

public class ViewLoader extends Object
Utility per il caricamento dinamico delle viste FXML nell'applicazione.

Gestisce l'associazione tra controller e viste, permette di impostare lo Stage principale, e fornisce metodi statici per cambiare scena visualizzata. Utilizza FXMLLoader per caricare le viste e una Callback per creare i controller corretti.

  • Field Details

    • controllerFactory

      private static javafx.util.Callback<Class<?>,Object> controllerFactory
    • stage

      private static javafx.stage.Stage stage
    • currentView

      private static ViewLoader.View currentView
    • currentController

      private static Object currentController
  • Constructor Details

    • ViewLoader

      public ViewLoader()
  • Method Details

    • getCurrentView

      public static ViewLoader.View getCurrentView()
    • getCurrentController

      public static Object getCurrentController()
    • setControllerFactory

      public static void setControllerFactory(javafx.util.Callback<Class<?>,Object> factory)
      Imposta la factory per la creazione dei controller.

      Utilizzata in WordageddonApp per istanziare correttamente i controller associati alle viste.

      Parameters:
      factory - callback responsabile della creazione dei controller
    • setStage

      public static void setStage(javafx.stage.Stage stage)
      Imposta lo Stage principale dell'applicazione su cui verranno caricate le viste.
      Parameters:
      stage - stage da utilizzare per il rendering delle scene
    • load

      public static void load(ViewLoader.View view)
      Carica la vista FXML indicata e la imposta come radice della scena corrente.

      Utilizza il FXMLLoader con la factory dei controller e aggiorna la scena dello Stage con il contenuto corrispondente alla vista richiesta.

      Invoca il metodo close() del controller corrente, se esiste, per permettere una corretta pulizia delle risorse prima di caricare la nuova vista.

      Parameters:
      view - vista da caricare (uno dei valori di ViewLoader.View)
      Throws:
      IllegalStateException - se stage o controllerFactory non sono inizializzati
      RuntimeException - se il file FXML non può essere caricato correttamente