From 494d349fb67be74da49caae2794fda702f595fb4 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 16:29:11 +0000
Subject: [PATCH] rename packages

---
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierEditDialogController.java |  258 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 258 insertions(+), 0 deletions(-)

diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierEditDialogController.java
new file mode 100644
index 0000000..a8a9958
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierEditDialogController.java
@@ -0,0 +1,258 @@
+package com.megatim.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.customdialogs.LoadinIndicatorDialogUtil;
+import com.megatimfx.common.dialogs.NotificationDialog;
+import com.megatimfx.common.dialogs.NotificationType;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.App;
+import com.megatim.fdxgenerator.enums.DataType;
+import com.megatim.fdxgenerator.forms.StructureLigneEditFormController;
+import com.megatim.fdxgenerator.forms.ValidateurFichierEditFormController;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import com.megatim.fdxgenerator.service.ValidateurFichierService;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.collections.ListChangeListener;
+import javafx.event.ActionEvent;
+import javafx.scene.Node;
+import javafx.scene.layout.Pane;
+import javafx.stage.Stage;
+
+public class ValidateurFichierEditDialogController extends AbstractEditDialogController<ValidateurFichier> {
+
+    private ValidateurFichierEditFormController validateurFichierEditFormController;
+
+    private StructureLigneEditDialogController structureLigneEditDialogController;
+
+    private ValidateurFichierService validateurFichierService = ValidateurFichierService.getInstance();
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        validateurFichierEditFormController = new ValidateurFichierEditFormController();
+        structureLigneEditDialogController = new StructureLigneEditDialogController();
+        structureLigneEditDialogController.setStructureLigneEditFormController(new StructureLigneEditFormController());
+        super.initialize(url, rb);
+    }
+
+    @Override
+    public String getTitle() {
+        return "Edition d'un validateur de fichier";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(
+                validateurFichierEditFormController.getClass().getResource("ValidateurFichierEditForm.fxml"),
+                validateurFichierEditFormController
+        );
+    }
+
+    @Override
+    public Object getContentFormController() {
+        return validateurFichierEditFormController;
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(ValidateurFichier bindObject, Object formController, TypeOperation typeOperation) {
+
+        if (formController instanceof ValidateurFichierEditFormController) {
+            ValidateurFichierEditFormController controller = (ValidateurFichierEditFormController) formController;
+
+            if (typeOperation.equals(TypeOperation.VIEW) || typeOperation.equals(TypeOperation.UPDATE)) {
+
+                if (bindObject.getCodeDelimiteurColonne() != null) {
+                    bindObject.setDelimiteurColonne(App.DELIMITEURS_COLONNE.get(bindObject.getCodeDelimiteurColonne()));
+                }
+
+                if (bindObject.getCodeDelimiteurLigne() != null) {
+                    bindObject.setDelimiteurLigne(App.DELIMITEURS_LIGNE.get(bindObject.getCodeDelimiteurLigne()));
+                }
+
+            }
+
+            if (typeOperation.equals(TypeOperation.ADD) || typeOperation.equals(TypeOperation.UPDATE)) {
+
+                controller.getDelimiteurColonne().disableProperty()
+                        .bind(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isNull()
+                        .or(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isNotEqualTo(DataType.CSV))
+                );
+
+                controller.getDelimiteurLigne().disableProperty()
+                        .bind(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isNull()
+                        .or(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isNotEqualTo(DataType.CSV))
+                );
+
+                controller.getHeaderPresentCheckbox().disableProperty().bind(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isNull()
+                        .or(controller.getDataTypeComboBox().getSelectionModel().selectedItemProperty().isEqualTo(DataType.TXT))
+                );
+
+            }
+        }
+    }
+
+    @Override
+    protected void afterBindFormFieldWithCurrentObject(ValidateurFichier bindObject, Object formController,
+            TypeOperation typeOperation
+    ) {
+
+        if (formController instanceof ValidateurFichierEditFormController) {
+
+            ValidateurFichierEditFormController controller = (ValidateurFichierEditFormController) formController;
+
+            controller.getStructureLigneAbstractTable().setController(structureLigneEditDialogController);
+
+            controller.getStructureLigneAbstractTable().getElementObservableList().sort((o1, o2) -> {
+                return Integer.valueOf(o1.getPosition()).compareTo(o2.getPosition());
+            });
+
+            structureLigneEditDialogController.setSelectedStructureLignes(controller.getStructureLigneAbstractTable().getElementObservableList());
+
+            switch (typeOperation) {
+
+                case ADD:
+
+                    controller.getSaisieStructureLigneChecBox().setOnAction(event -> {
+
+                        if (controller.getSaisieStructureLigneChecBox().isSelected()) {
+                            int numberOfPosition = Integer.parseInt(controller.getNombrePositionTextField().getText());
+                            structureLigneEditDialogController.getStructureLigneEditFormController().populatePositionComboBox(numberOfPosition);
+                        }
+
+                    });
+                    controller.getTypeFichierAbstractSelectItem().selectedElementProperty().addListener((observable, oldValue, newValue) -> {
+
+                        if (newValue != null) {
+                            structureLigneEditDialogController.setTypeFichier(newValue);
+                        }
+
+                    });
+                    break;
+
+                case UPDATE:
+
+                    structureLigneEditDialogController.setTypeFichier(controller.getTypeFichierAbstractSelectItem().getSelectedElement());
+
+                    controller.getSaisieStructureLigneChecBox().setSelected(true);
+                    controller.getSaisieStructureLigneChecBox().setDisable(true);
+
+                    break;
+
+                default:
+
+                    controller.getSaisieStructureLigneChecBox().setSelected(true);
+                    controller.getSaisieStructureLigneChecBox().setDisable(true);
+
+                    break;
+            }
+
+            controller.getStructureLigneAbstractTable().getElementObservableList().addListener((ListChangeListener.Change<? extends StructureLigne> c) -> {
+
+                while (c.next()) {
+
+                    if (c.wasAdded()) {
+
+                        int start = c.getFrom();
+                        int end = c.getTo();
+
+                        for (int i = start; i < end; i++) {
+
+                            StructureLigne structLigne = c.getList().get(i);
+
+                            structLigne.setValidateurFichier(getCurrentObject());
+
+                            structureLigneEditDialogController.getStructureLigneEditFormController().getList().remove(new Integer(structLigne.getPosition()));
+
+                            structureLigneEditDialogController.getStructureLigneEditFormController().getList().sort((o1, o2) -> {
+                                return o1.compareTo(o2);
+                            });
+                        }
+
+                    } else if (c.wasRemoved()) {
+
+                        for (StructureLigne structLigne : c.getRemoved()) {
+
+                            structureLigneEditDialogController.getStructureLigneEditFormController().getList().add(structLigne.getPosition());
+
+                            structureLigneEditDialogController.getStructureLigneEditFormController().getList().sort((o1, o2) -> {
+                                return o1.compareTo(o2);
+                            });
+
+                        }
+                    }
+
+                }
+            });
+
+        }
+
+    }
+
+    @Override
+    protected void afterBindCurrentObjectWithFormField(ValidateurFichier bindObject, Object formController,
+            TypeOperation typeOperation
+    ) {
+        ValidateurFichierEditFormController controller = (ValidateurFichierEditFormController) formController;
+        controller.getStructureLigneAbstractTable().setController(structureLigneEditDialogController);
+        if (typeOperation.equals(TypeOperation.ADD)) {
+            if (bindObject.getTypeFichier() != null) {
+                bindObject.setId(bindObject.getTypeFichier().getCode());
+            }
+        }
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        Boolean proceed = super.beforeSave(event);
+        Delimiteur delimiteurColonne = getCurrentObject().getDelimiteurColonne();
+        Delimiteur delimiteurLigne = getCurrentObject().getDelimiteurLigne();
+
+        if (delimiteurColonne != null) {
+            getCurrentObject().setCodeDelimiteurColonne(delimiteurColonne.getCode());
+        }
+
+        if (delimiteurLigne != null) {
+            getCurrentObject().setCodeDelimiteurLigne(delimiteurLigne.getCode());
+        }
+
+        if (proceed) {
+            if (getTypeOperation().equals(TypeOperation.ADD) || getTypeOperation().equals(TypeOperation.UPDATE)) {
+                LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show();
+                proceed = getCurrentObject().getNombrePosition() == getCurrentObject().getStructureLignes().size();
+
+                if (!proceed) {
+                    LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+                    Node source = (Node) event.getSource();
+                    Stage parentStage = (Stage) source.getScene().getWindow();
+                    NotificationDialog notificationDialog = new NotificationDialog(
+                            "Vous devez remplir la structure de toutes les positions",
+                            NotificationType.ERROR,
+                            parentStage
+                    );
+                    notificationDialog.showNotification();
+                } else {
+                    proceed = validateurFichierService.find(getCurrentObject()) != null;
+
+                    if (!proceed) {
+                        LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+                        Node source = (Node) event.getSource();
+                        Stage parentStage = (Stage) source.getScene().getWindow();
+                        NotificationDialog notificationDialog = new NotificationDialog(
+                                "Il existe déjà un validateur de fichier associé à ce type de fichier",
+                                NotificationType.ERROR,
+                                parentStage
+                        );
+                        notificationDialog.showNotification();
+                    }
+                }
+                LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            }
+        }
+        return proceed;
+    }
+
+}

--
Gitblit v1.10.0