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

---
 fdx_convert/src/main/java/com/megatim/fdxconvert/controller/StructureChampJsonEditDialogController.java |  244 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 244 insertions(+), 0 deletions(-)

diff --git a/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/StructureChampJsonEditDialogController.java b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/StructureChampJsonEditDialogController.java
new file mode 100644
index 0000000..2c38c63
--- /dev/null
+++ b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/StructureChampJsonEditDialogController.java
@@ -0,0 +1,244 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.fdxconvert.controller;
+
+import com.megatim.dynamicjsonparser.enums.TypeDonnee;
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.components.dialogs.NotificationDialog;
+import com.megatimfx.components.dialogs.NotificationType;
+import com.megatim.fdxconvert.App;
+import com.megatim.fdxconvert.forms.ModeleJsonEditFormController;
+import com.megatim.fdxconvert.forms.StructureChampJsonEditFormController;
+import com.megatim.fdxconvert.forms.SubObjectEditFormController;
+import com.megatim.fdxconvert.model.StructureChampJson;
+import com.megatim.fdxconvert.model.SubObject;
+import com.megatim.fdxconvert.model.TypeFichier;
+import com.megatim.fdxconvert.util.Utilities;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+import java.util.ResourceBundle;
+import java.util.stream.Collectors;
+import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
+import javafx.scene.Node;
+import javafx.scene.layout.Pane;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @author ASUS
+ */
+public class StructureChampJsonEditDialogController extends AbstractEditDialogController<StructureChampJson> {
+
+    private StructureChampJsonEditFormController structureChampJsonEditFormController;
+
+    private SubObjectEditFormController subObjectEditFormController;
+
+    private ObservableList<SubObject> subObjectsList;
+
+    private ModeleJsonEditFormController modeleJsonEditFormController;
+
+    private TypeFichier typeFichier;
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+
+        if (subObjectEditFormController != null) {
+            structureChampJsonEditFormController = new StructureChampJsonEditFormController();
+        }
+        super.initialize(url, rb);
+    }
+
+    @Override
+    public String getTitle() {
+        return "Edition d'un champ du fichier JSON";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(
+                structureChampJsonEditFormController.getClass().getResource("StructureChampJsonEditForm.fxml"),
+                structureChampJsonEditFormController
+        );
+    }
+
+    @Override
+    public Object getContentFormController() {
+        return structureChampJsonEditFormController;
+    }
+
+    @Override
+    protected void afterBindFormFieldWithCurrentObject(StructureChampJson bindObject, Object formController, TypeOperation typeOperation) {
+        structureChampJsonEditFormController.getTypeObjetComboBox().setItems(subObjectsList);
+    }
+
+    public void setStructureChampJsonEditFormController(StructureChampJsonEditFormController structureChampJsonEditFormController) {
+        this.structureChampJsonEditFormController = structureChampJsonEditFormController;
+    }
+
+    public void setTypeFichier(TypeFichier typeFichier) {
+        this.typeFichier = typeFichier;
+    }
+
+    @Override
+    public StructureChampJson refreshObjectToUpdate(StructureChampJson objectToUpdate) {
+        StructureChampJson struct = new StructureChampJson();
+
+        struct.setDelimiteurDate(objectToUpdate.getDelimiteurDate());
+        struct.setFormatDate(objectToUpdate.getFormatDate());
+        struct.setLibelle(objectToUpdate.getLibelle());
+        struct.setListe(objectToUpdate.isListe());
+        struct.setTypeOfSubObject(objectToUpdate.getTypeOfSubObject());
+        struct.setFieldOfSubObject(objectToUpdate.getFieldOfSubObject());
+        struct.setTypeDonnee(objectToUpdate.getTypeDonnee());
+        struct.setDateCreation(objectToUpdate.getDateCreation());
+        struct.setId(objectToUpdate.getId());
+        struct.setModeleJson(objectToUpdate.getModeleJson());
+
+        return struct;
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(StructureChampJson bindObject, Object formController, TypeOperation typeOperation) {
+
+        if (formController instanceof StructureChampJsonEditFormController) {
+
+            if (typeOperation.equals(TypeOperation.UPDATE) || typeOperation.equals(TypeOperation.VIEW)) {
+
+                if (bindObject.getTypeDonnee().equals(TypeDonnee.DATE) && bindObject.getCodeDelimiteurDate() != null && !bindObject.getCodeDelimiteurDate().isEmpty()) {
+                    bindObject.setDelimiteurDate(App.SEPARATEURS_DATE.get(bindObject.getCodeDelimiteurDate()));
+                }
+            }
+        }
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        boolean proceed = super.beforeSave(event);
+        StringBuilder message = new StringBuilder("");
+
+        StructureChampJson currentObject = getCurrentObject();
+
+        if (currentObject != null) {
+
+            if (currentObject.getLibelle() == null || currentObject.getLibelle().isEmpty()) {
+
+                message.append("Le Libellé est obligatoire\n");
+                proceed = false;
+
+            } else {
+                getCurrentObject().setLibelle(getCurrentObject().getLibelle().trim());
+                StringBuilder subMessage = Utilities.validateName(getCurrentObject().getLibelle(), "Le libellé du champ");
+
+                if (subMessage.length() != 0) {
+
+                    message.append(subMessage);
+                    proceed = false;
+                }
+            }
+
+            if (currentObject.getTypeDonnee() == null) {
+
+                message.append("Le type de données est obligatoire\n");
+                proceed = false;
+
+            } else if (currentObject.getTypeDonnee().equals(TypeDonnee.DATE)) {
+
+                if (currentObject.getFormatDate() == null) {
+
+                    message.append("Le format de la date est obligatoire\n");
+                    proceed = false;
+                }
+                if (currentObject.getDelimiteurDate() == null) {
+
+                    message.append("Le séparateur de date est obligatoire\n");
+                    proceed = false;
+
+                } else {
+                    getCurrentObject().setCodeDelimiteurDate(getCurrentObject().getDelimiteurDate().getCode());
+                }
+            } else if (currentObject.getTypeDonnee().equals(TypeDonnee.OBJET) && currentObject.getTypeOfSubObject() == null) {
+
+                message.append("Le type de l'objet est obligatoire\n");
+                proceed = false;
+            }
+
+            if (!currentObject.getTypeDonnee().equals(TypeDonnee.DATE)) {
+                
+                getCurrentObject().setCodeDelimiteurDate(null);
+                getCurrentObject().setFormatDate(null);
+            }
+            
+            if(!currentObject.getTypeDonnee().equals(TypeDonnee.OBJET)) {
+                getCurrentObject().setTypeOfSubObject(null);
+            }
+            String subMessage = "";
+
+            if (subObjectEditFormController != null) {
+                subMessage = verifyIfCodeIsAlreadUsed(subObjectEditFormController.getSubStructureJsonListe());
+
+            } else {
+                subMessage = verifyIfCodeIsAlreadUsed(modeleJsonEditFormController.getStructureChampAbstractTable().getElementObservableList());
+            }
+
+            if (!subMessage.isEmpty()) {
+
+                message.append(subMessage);
+                proceed = false;
+            }
+        }
+
+        if (!proceed) {
+
+            Node source = (Node) event.getSource();
+            Stage parentStage = (Stage) source.getScene().getWindow();
+            NotificationDialog notificationDialog = new NotificationDialog(message.toString(), NotificationType.ERROR, parentStage);
+            notificationDialog.showNotification();
+
+        }
+
+        return proceed;
+    }
+
+    public void setSubObjectsList(ObservableList<SubObject> subObjectsList) {
+        this.subObjectsList = subObjectsList;
+    }
+
+    public void setSubObjectEditFormController(SubObjectEditFormController subObjectEditFormController) {
+        this.subObjectEditFormController = subObjectEditFormController;
+    }
+
+    public StructureChampJsonEditFormController getStructureChampJsonEditFormController() {
+        return structureChampJsonEditFormController;
+    }
+
+    public void setModeleJsonEditFormController(ModeleJsonEditFormController modeleJsonEditFormController) {
+        this.modeleJsonEditFormController = modeleJsonEditFormController;
+    }
+
+    private String verifyIfCodeIsAlreadUsed(List<StructureChampJson> observableList) {
+        String message = "";
+
+        List<StructureChampJson> foundListe = observableList.stream().filter(p
+                -> {
+            boolean testLibelle = p.getLibelle().equalsIgnoreCase(getCurrentObject().getLibelle());
+
+            return (testLibelle && getTypeOperation().equals(TypeOperation.ADD))
+                    || (getTypeOperation().equals(TypeOperation.UPDATE) && testLibelle && !p.equals(getCurrentObject()));
+
+        }
+        ).collect(Collectors.toList());
+
+        if (!foundListe.isEmpty()) {
+            message = "Le libellé \"" + getCurrentObject().getLibelle() + "\"" + " est déjà utilisé par un autre champ \n";
+        }
+
+        return message;
+    }
+
+}

--
Gitblit v1.10.0