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/DataFileToJsonEditDialogController.java |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 176 insertions(+), 0 deletions(-)

diff --git a/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/DataFileToJsonEditDialogController.java b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/DataFileToJsonEditDialogController.java
new file mode 100644
index 0000000..74ad132
--- /dev/null
+++ b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/DataFileToJsonEditDialogController.java
@@ -0,0 +1,176 @@
+/*
+ * 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.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.enums.Operateur;
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatimfx.components.customdialogs.AlertMessageUtil;
+import com.megatimfx.components.customdialogs.LoadinIndicatorDialogUtil;
+import com.megatimfx.components.dialogs.NotificationDialog;
+import com.megatimfx.components.dialogs.NotificationType;
+import com.megatim.fdxconvert.enums.DataType;
+import com.megatim.fdxconvert.exceptions.ConfigException;
+import com.megatim.fdxconvert.exceptions.ValidatorException;
+import com.megatim.fdxconvert.forms.DataFileToJsonFormController;
+import com.megatim.fdxconvert.model.Configuration;
+import com.megatim.fdxconvert.model.Validateur;
+import com.megatim.fdxconvert.pojo.ColumnDefinition;
+import com.megatim.fdxconvert.pojo.DataFileToJson;
+import com.megatim.fdxconvert.service.ConfigurationService;
+import com.megatim.fdxconvert.util.ExportToJson;
+import com.megatim.fdxconvert.pojo.FileToValidateDescription;
+import com.megatim.fdxconvert.service.ValidateurService;
+import com.megatim.typefichier.validator.utilities.ParserUtils;
+import com.megatim.fdxconvert.util.ValidateurParser;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.ResourceBundle;
+import javafx.concurrent.Task;
+import javafx.event.ActionEvent;
+import javafx.scene.Node;
+import javafx.scene.layout.Pane;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @author ASUS
+ */
+public class DataFileToJsonEditDialogController extends AbstractEditDialogController<DataFileToJson> {
+
+    org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(DataFileToJsonEditDialogController.class);
+    private DataFileToJsonFormController txtFileToJsonFormController;
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        txtFileToJsonFormController = new DataFileToJsonFormController();
+        super.initialize(url, rb);
+
+    }
+
+    @Override
+    public String getTitle() {
+        getEditButton().setText("Convertir");
+        return "Conversion d'un fichier de données en JSON";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(txtFileToJsonFormController.getClass().getResource("DataFileToJsonEditForm.fxml"), txtFileToJsonFormController);
+
+    }
+
+    @Override
+    public Object getContentFormController() {
+        return txtFileToJsonFormController;
+    }
+
+    @Override
+    public void afterSave(ActionEvent event) {
+        List<Validateur> validateurs = ValidateurService.getInstance().getAll(Arrays.asList(validateurCriterion(getCurrentObject().getTypeFichier().getCode())));
+        boolean proceed = !validateurs.isEmpty() || getCurrentObject().getValidateurPath() != null;
+        Task<Void> task = new Task<Void>() {
+
+            @Override
+            protected Void call() throws Exception {
+                parseFile();
+                return null;
+            }
+        };
+        task.setOnRunning(e -> LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show());
+        task.setOnSucceeded(e -> {
+
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            Node source = (Node) event.getSource();
+            Stage parentStage = (Stage) source.getScene().getWindow();
+
+            NotificationDialog notificationDialog = new NotificationDialog("Conversion en JSON reussie", NotificationType.SUCCESS, parentStage);
+            notificationDialog.showNotification();
+        });
+
+        task.setOnFailed(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            Throwable th = task.getException();
+
+            if (th instanceof ConfigException || th instanceof ValidatorException) {
+                Node source = (Node) event.getSource();
+                Stage parentStage = (Stage) source.getScene().getWindow();
+                NotificationDialog notificationDialog = new NotificationDialog(th.getMessage(), NotificationType.WARNING, parentStage);
+                logger.warn(th.getMessage());
+                notificationDialog.showNotification();
+
+            } else {
+                logger.error(th);
+                AlertMessageUtil.showAlertException(th, "Une exception s'est produite pendant la validation du fichier", "Erreur");
+            }
+        });
+        if (proceed) {
+            new Thread(task).start();
+        } else {
+            AlertMessageUtil.showAlertException(new Exception(""), "Validateur de " + getCurrentObject().getTypeFichier().getCode() + " introuvable", "Erreur");
+        }
+    }
+
+    private SearchCriteria validateurCriterion(String codeTypeFichier) {
+        SearchCriteria criterion = new SearchCriteria();
+        criterion.setFieldName("codeTypeFichier");
+        criterion.setFieldType(String.class);
+        criterion.setFieldValue(codeTypeFichier);
+        criterion.setOperateur(Operateur.EQUALS);
+
+        return criterion;
+    }
+
+    private void parseFile() throws Exception {
+        Configuration config = ConfigurationService.getInstance().getCurrentConfig();
+        List<ColumnDefinition> colDefs = new ArrayList<>();
+
+        if (getCurrentObject().getValidateurPath()!= null) {
+            colDefs = ValidateurParser.retrieveFieldsFromValidator(new File(getCurrentObject().getValidateurPath()), getCurrentObject().getTypeFichier().getCode());
+        } else {
+            ParserUtils.getValidateurElements(getCurrentObject().getValidateurBytes());
+        }
+        parseFile(getCurrentObject(), config, colDefs);
+    }
+
+    private void parseFile(DataFileToJson txtFileToJson, Configuration config, List<ColumnDefinition> colDefs) throws Exception {
+        String fileName = (new File(txtFileToJson.getFileToConvertPath())).getName();
+        int index = fileName.lastIndexOf(".");
+        fileName = fileName.substring(0, index);
+        File outputFile = new File(config.getDatasDir(), fileName + ".json");
+        FileToValidateDescription fileDesc = null;
+
+        if (!txtFileToJson.getDataType().equals(DataType.TXT)) {
+            fileDesc = new FileToValidateDescription(new File(txtFileToJson.getFileToConvertPath()),
+                    txtFileToJson.getDelimiteurLigne().getCode(),
+                    txtFileToJson.getDelimiteurColonne().getCode());
+        }
+
+        switch (txtFileToJson.getDataType()) {
+            case CSV:
+                ExportToJson.parseCsvFile(fileDesc, outputFile, colDefs, txtFileToJson.isHeaderPresent());
+                break;
+            case TXT:
+                ExportToJson.parseFileByColumnLength(
+                        new FileToValidateDescription(new File(txtFileToJson.getFileToConvertPath()), "", ""),
+                        outputFile, colDefs);
+                break;
+            case XLS:
+                ExportToJson.parseXlsFile(fileDesc, outputFile, colDefs, txtFileToJson.isHeaderPresent());
+                break;
+            case XLSX:
+                ExportToJson.parseXlsxFile(fileDesc, outputFile, colDefs, txtFileToJson.isHeaderPresent());
+                break;
+            default:
+                throw new Exception("Type de données non supporté");
+        }
+    }
+
+}

--
Gitblit v1.10.0