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/ValidateurEditDialogController.java | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 202 insertions(+), 0 deletions(-)
diff --git a/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/ValidateurEditDialogController.java b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/ValidateurEditDialogController.java
new file mode 100644
index 0000000..96e40ba
--- /dev/null
+++ b/fdx_convert/src/main/java/com/megatim/fdxconvert/controller/ValidateurEditDialogController.java
@@ -0,0 +1,202 @@
+/*
+ * 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.module.compression.impl.JavaZipZip4Impl;
+import com.megatim.module.encryption.impl.AESImpl;
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatimfx.components.customdialogs.AlertMessageUtil;
+import com.megatimfx.components.dialogs.NotificationDialog;
+import com.megatimfx.components.dialogs.NotificationType;
+import com.megatim.fdxconvert.dao.ValidateurDAO;
+import com.megatim.fdxconvert.exceptions.ConfigException;
+import com.megatim.fdxconvert.forms.ValidateurEditFormController;
+import com.megatim.fdxconvert.model.Configuration;
+import com.megatim.fdxconvert.model.TypeFichier;
+import com.megatim.fdxconvert.model.Validateur;
+import com.megatim.fdxconvert.service.ConfigurationService;
+import com.megatim.fdxconvert.util.ParserUtils;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+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;
+import org.apache.commons.io.FileUtils;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurEditDialogController extends AbstractEditDialogController<Validateur> {
+
+ private ValidateurEditFormController validateurEditFormController;
+ private final String UNZIP_DIR = "UNZIP_DIR";
+ Boolean result;
+
+ @Override
+ public String getTitle() {
+ getEditButton().setText("Importer");
+ return "Importer le validateur d'un type fichier";
+ }
+
+ @Override
+ public Pane getContentFormPane() throws IOException {
+ return ViewLoaderUtil.getPaneFromFxmlFile(validateurEditFormController.getClass().getResource("ValidateurEditForm.fxml"), validateurEditFormController);
+
+ }
+
+ @Override
+ public Object getContentFormController() {
+ return validateurEditFormController;
+ }
+
+ @Override
+ public void initialize(URL url, ResourceBundle rb) {
+ validateurEditFormController = new ValidateurEditFormController();
+ super.initialize(url, rb);
+ }
+
+ @Override
+ public String getConfirmationMessage() {
+ return "Validateur du typefichier " + getCurrentObject().getCodeTypeFichier() + " importé avec succès !";
+ }
+
+ @Override
+ public boolean beforeSave(ActionEvent event) {
+ result = false;
+ boolean proceed = super.beforeSave(event);
+
+ if (validateurEditFormController.getProtegeCheckBox().isSelected()) {
+ proceed = proceed && validateurEditFormController.getKeyConfirmationField() != null
+ && validateurEditFormController.getKeyToDecryptField() != null;
+ }
+
+ if (proceed && getTypeOperation().equals(TypeOperation.ADD)) {
+ Node source = (Node) event.getSource();
+ Stage parentStage = (Stage) source.getScene().getWindow();
+
+ Validateur validateur = getCurrentObject();
+ Configuration config = ConfigurationService.getInstance().getCurrentConfig();
+ File decryptedFile = null;
+
+ try {
+ if (validateur.isProtege()) {
+ Optional<Validateur> exist = ValidateurDAO.findByCodeTypeFichier(validateur.getCodeTypeFichier());
+
+ if (!exist.isPresent()) {
+ File fileToUnzip = new File(validateur.getFilePath());
+ unzip(fileToUnzip, config);
+ decryptedFile = decrypt(validateur, config, fileToUnzip);
+ validateur.setFilePath(decryptedFile.getAbsolutePath());
+ setContent(validateur);
+
+ decryptedFile.deleteOnExit();
+ result = true;
+ } else {
+ NotificationDialog notificationDialog = new NotificationDialog(
+ "Validateur du typefichier " + validateur.getCodeTypeFichier() + " déjà enregistré. Bien vouloir supprimer l'existant avant d'effectuer cette action",
+ NotificationType.WARNING, parentStage);
+ notificationDialog.showNotification();
+ result = false;
+ }
+ } else {
+ setContent(validateur);
+ result = true;
+ }
+ } catch (Exception th) {
+
+ if (th instanceof javax.crypto.BadPaddingException || th instanceof java.security.spec.InvalidKeySpecException
+ || th instanceof java.security.InvalidKeyException) {
+
+ decryptedFile.deleteOnExit();
+
+ NotificationDialog notificationDialog = new NotificationDialog(
+ "Echec décryptage : La clé fournie n'est pas la bonne ",
+ NotificationType.ERROR,
+ parentStage
+ );
+ notificationDialog.showNotification();
+ } else if (th instanceof ConfigException) {
+ NotificationDialog notificationDialog = new NotificationDialog(
+ th.getMessage(), NotificationType.ERROR, parentStage);
+ notificationDialog.showNotification();
+ } else {
+ AlertMessageUtil.showAlertException(th, "Une exception s'est produite pendant le décryptage du fichier", "Erreur");
+ }
+ } finally {
+ if (config != null) {
+ File unzipDir = new File(config.getValidatorsDir(), UNZIP_DIR);
+
+ if (unzipDir.exists() && unzipDir.isDirectory()) {
+ List<File> liste = Arrays.asList(unzipDir.listFiles());
+ liste.forEach(f -> f.deleteOnExit());
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ private void unzip(File fileToUnzip, Configuration config) throws Exception {
+ JavaZipZip4Impl zip4Impl = new JavaZipZip4Impl();
+
+ if (config == null) {
+ throw new ConfigException("Bien vouloir configurer les répertoires avant avant d'effectuer cette action");
+ }
+
+ File unzipDir = new File(config.getValidatorsDir(), UNZIP_DIR);
+
+ if (!unzipDir.exists()) {
+ unzipDir.mkdir();
+ }
+
+ Arrays.asList(unzipDir.listFiles()).forEach(f -> f.deleteOnExit());
+ zip4Impl.unZipFile(fileToUnzip, unzipDir);
+ }
+
+ private File decrypt(Validateur val, Configuration config, File fileToUnzip) throws Exception {
+ AESImpl aes = new AESImpl();
+ File unzipDir = new File(config.getValidatorsDir(), UNZIP_DIR);
+ String fileName = fileNameWithoutExtension(fileToUnzip);
+ File inputFile = new File(unzipDir.getAbsolutePath(), fileName + ".xml");
+ File outputFile = new File(config.getValidatorsDir(), inputFile.getName());
+ aes.decryptFile(val.getKeyToDecrypt(), val.getKeyLength(), inputFile.getAbsolutePath(), outputFile.getAbsolutePath());
+
+ inputFile.deleteOnExit();
+
+ return outputFile;
+ }
+
+ private void setContent(Validateur validateur) throws Exception {
+ TypeFichier typeFichier = getCurrentObject().getTypeFichier();
+ getCurrentObject().setConvertDataBeforeValidation(ParserUtils.isConvertDataBeforeValidation(new File(validateur.getFilePath())));
+ byte[] content = FileUtils.readFileToByteArray(new File(validateur.getFilePath()));
+ getCurrentObject().setContent(content);
+ getCurrentObject().setCodeTypeFichier(typeFichier.getCode());
+ }
+
+ private String fileNameWithoutExtension(File file) {
+ String name = file.getName();
+ int index = name.lastIndexOf(".");
+ String fileName = name.substring(0, index);
+
+ return fileName;
+ }
+
+ @Override
+ public String getConfirmationDialogMessage() {
+ return "Le validateur du typefichier " + getCurrentObject().getCodeTypeFichier() + " a été importé avec succès.";
+ }
+}
--
Gitblit v1.10.0