105 lines
2.4 KiB
Java
105 lines
2.4 KiB
Java
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");
|
|
|
|
}
|
|
}
|