package chatapp;

import chatapp.Controller.ChatApp;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

/**
 * Cette classe extends Application.
 * <br> Elle va permettre de faire le lien avec JavaFX.
 */
public class Main extends Application {

    /* Instance de ChatApp */
    ChatApp chatapp;

    /**
     * Permet de lancer la fenetre principale de l'application
     * @param primaryStage notre fenetre principale
     * @throws Exception
     */
    @Override
    public void start(Stage primaryStage) throws Exception {
        this.chatapp = ChatApp.getInstance("Null",1234,this);
        FXMLLoader fichier = new FXMLLoader(getClass().getResource("/fenetres/ConnexionScreen.fxml"));
        Scene scene1 = new Scene(fichier.load(),600,400);
        primaryStage.setScene(scene1);
        primaryStage.setTitle("ChatApp");
        primaryStage.setMinWidth(600);
        primaryStage.setMinHeight(400);
        primaryStage.show();
        primaryStage.centerOnScreen();
        chatapp.activerEcouteTCP();
        chatapp.activerEcouteUDP();
    }

    /**
     * <p> Handler associe a la fermeture de l'application</p>
     * @throws Exception
     */
    @Override
    public void stop() throws Exception {
        if(chatapp.isConnecte()){
            chatapp.deconnexion();
        } else {
            super.stop();
            Platform.exit();
            System.exit(0);
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}
