package controller; import java.io.IOException; import Classes.css.user.ContextBuilder; import Classes.css.user.Header; import Classes.css.user.MenuContainer; import Interfaces.Event; import Interfaces.EventObserver; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; import model.HeaderMenuItem; public class RootLayout extends Application implements EventObserver { private Stage root_stage; private Scene root_scene; private AnchorPane root_layout; @Override public void start(Stage primary_stage) throws Exception { /* (1) store primary stage + title it */ this.root_stage = primary_stage; this.root_stage.setTitle("Inifiny Mail Client"); /* (2) Load the root layout*/ this.loadRootLayout(); /* (3) Load the CSS CONTEXT */ ContextBuilder.createContext(); /* (1) HEADER -------------------------------------*/ /* (1) Create header menu */ HeaderMenu hm = new HeaderMenu((FlowPane) this.root_scene.lookup("#header_menu")); hm.addItem( new HeaderMenuItem("notification", "/src/header-notif.png",this) ); hm.addItem( new HeaderMenuItem("mail", "/src/header-mail.png",this) ); hm.addItem( new HeaderMenuItem("search", "/src/header-search.png",this) ); hm.addItem( new HeaderMenuItem("menu", "/src/header-menu.png",this) ); /* (2) CSS -------------------------------------*/ /* (1) #header */ new Header( this.root_scene.lookup("#header") ); /* (2) #menu_container */ new MenuContainer( this.root_scene.lookup("#menu_container") ); } public void loadRootLayout(){ try{ /* (1) Load the root_disp.fxml */ FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/fxml/model.fxml")); /* (2) Load the layout into the scene */ this.root_layout = (AnchorPane) loader.load(); this.root_scene = new Scene(this.root_layout); /* (3) Add the scene to the stage */ this.root_stage.setScene(this.root_scene); /* (4) Show the stage */ this.root_stage.show(); }catch(IOException e){ e.printStackTrace(); } } public static void main(String[] args) { launch(args); } @Override public void handleEvent(Event e) { System.out.println("Object "+e.getObjectId()+" fired a "+e.getEventType()+" event"); } }