Skip to content
Snippets Groups Projects
Select Git revision
  • ba685f92a3bb0167f6ccaa87557d0ab4918ea6e3
  • master default protected
  • jalon2
  • jalon1
4 results

AddDataView.java

Blame
  • AddDataView.java 2.57 KiB
    package fr.univlille.sae.classification.view;
    
    import fr.univlille.sae.classification.controller.AddDataController;
    import fr.univlille.sae.classification.model.ClassificationModel;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.control.Alert;
    import javafx.stage.Modality;
    import javafx.stage.Stage;
    
    import java.io.File;
    import java.io.IOException;
    import java.net.URL;
    
    /**
     * Classe responsable de la création et de l'affichage de la vue d'ajout de données.
     */
    public class AddDataView {
    
        /**
         * Modèle de classification utilisé pour gérer les données.
         */
        private ClassificationModel model;
    
        /**
         * Fenêtre parente de la vue.
         */
        private Stage owner;
    
        /**
         * La vue principale.
         */
        private MainStageView mainStageView;
    
        /**
         * Constructeur pour initialiser la vue d'ajout de données.
         * @param model Le modèle de classification utilisé pour gérer les données
         * @param owner La fenêtre parente de cette vue
         * @param mainStageView La vue principale associée
         */
        public AddDataView(ClassificationModel model, Stage owner, MainStageView mainStageView) {
            this.model = model;
            this.owner = owner;
            this.mainStageView = mainStageView;
        }
    
        /**
         * Charge le fichier FXML et initialise la scène.
         */
        public void show() {
            FXMLLoader loader = new FXMLLoader();
            URL fxmlFileUrl = getClass().getClassLoader().getResource("stages"+File.separator+"add-data-stage.fxml");
    
            if (fxmlFileUrl == null) {
                System.out.println("Impossible de charger le fichier fxml");
                System.exit(-1);
            }
    
            loader.setLocation(fxmlFileUrl);
    
            try {
                Stage root = loader.load();
                AddDataController controller = loader.getController();
                controller.setMainStageView(mainStageView);
    
                if (model.getDatas().isEmpty()) {
                    Alert alert = new Alert(Alert.AlertType.WARNING);
                    alert.setTitle("Erreur");
                    alert.setHeaderText(null);
                    alert.setContentText("Veuillez d'abord charger les données avant de pouvoir ajouter un point");
                    alert.showAndWait();
                    return;
                }
    
                root.setResizable(false);
                root.initOwner(owner);
                root.initModality(Modality.APPLICATION_MODAL);
                root.setTitle("Ajout de donnée");
    
                root.showAndWait();
            } catch (IOException e) {
                System.out.println("Erreur lors du chargement de la scène : " + e.getMessage());
            }
        }
    }