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