Class ViewLoader
java.lang.Object
it.unisa.diem.wordageddon_g16.utility.ViewLoader
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnumerazione delle viste disponibili nell'applicazione. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static Objectprivate static ViewLoader.Viewprivate static javafx.stage.Stage -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Objectstatic ViewLoader.Viewstatic voidload(ViewLoader.View view) Carica la vista FXML indicata e la imposta come radice della scena corrente.static voidsetControllerFactory(javafx.util.Callback<Class<?>, Object> factory) Imposta la factory per la creazione dei controller.static voidsetStage(javafx.stage.Stage stage) Imposta loStageprincipale dell'applicazione su cui verranno caricate le viste.
-
Field Details
-
controllerFactory
-
stage
private static javafx.stage.Stage stage -
currentView
-
currentController
-
-
Constructor Details
-
ViewLoader
public ViewLoader()
-
-
Method Details
-
getCurrentView
-
getCurrentController
-
setControllerFactory
Imposta la factory per la creazione dei controller.Utilizzata in
WordageddonAppper 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 loStageprincipale dell'applicazione su cui verranno caricate le viste.- Parameters:
stage- stage da utilizzare per il rendering delle scene
-
load
Carica la vista FXML indicata e la imposta come radice della scena corrente.Utilizza il
FXMLLoadercon la factory dei controller e aggiorna la scena delloStagecon 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 diViewLoader.View)- Throws:
IllegalStateException- sestageocontrollerFactorynon sono inizializzatiRuntimeException- se il file FXML non può essere caricato correttamente
-