JavaFX/controller/RootLayout.java

125 lines
2.8 KiB
Java
Raw Normal View History

2017-11-14 07:22:26 +00:00
package controller;
import java.io.IOException;
import java.util.HashMap;
2017-11-14 07:22:26 +00:00
import org.json.JSONObject;
import Classes.ApiCall;
2017-11-15 13:23:49 +00:00
import Classes.css.user.ContextBuilder;
import Classes.css.user.Header;
import Classes.css.user.MenuContainer;
import Interfaces.Callback;
import Interfaces.Event;
import Interfaces.EventObserver;
2017-11-14 07:22:26 +00:00
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;
public class RootLayout extends Application implements EventObserver {
2017-11-14 07:22:26 +00:00
private Stage root_stage;
private Scene root_scene;
private AnchorPane root_layout;
@Override
2017-11-15 13:23:49 +00:00
public void start(Stage primary_stage) throws Exception {
2017-11-14 07:22:26 +00:00
/* (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();
2017-11-14 07:22:26 +00:00
2017-11-15 13:23:49 +00:00
/* (3) Load the CSS CONTEXT */
ContextBuilder.createContext();
2017-11-14 07:22:26 +00:00
/* (1) HEADER
-------------------------------------*/
/* (1) Create header menu */
HeaderMenu hm = new HeaderMenu((FlowPane) this.root_scene.lookup("#header_menu"),this);
2017-11-14 07:22:26 +00:00
hm.addItem("notification", "/src/header-notif.png");
hm.addItem("mail", "/src/header-mail.png");
hm.addItem("search", "/src/header-search.png");
hm.addItem("menu", "/src/header-menu.png");
2017-11-14 07:22:26 +00:00
2017-11-15 13:23:49 +00:00
/* (2) CSS
-------------------------------------*/
/* (1) #header */
new Header( this.root_scene.lookup("#header") );
/* (2) #menu_container */
new MenuContainer( this.root_scene.lookup("#menu_container") );
2017-11-14 07:22:26 +00:00
}
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) {
HashMap<String,String> headers = new HashMap<String,String>();
headers.put("Referer", "http://www.wordreference.com");
ApiCall call = new ApiCall("http://api.wordreference.com/1/json/enfr/grin","GET",new Callback() {
@Override
public void call(String response) {
JSONObject json = new JSONObject(response);
System.out.println(json.toString());
}
});
call.addHeaders(headers);
call.send();
System.out.println("Object "+e.getObjectId()+" fired a "+e.getEventType()+" event");
}
2017-11-14 07:22:26 +00:00
}