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/ValidateurFichierListDialogController.java                                             |   94 
 fdx_generator/src/main/resources/styles/title-bar.css                                                                                                  |   44 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml                                                    |  107 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/AppUpdate.java                                                                                    |  178 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateValidator.java                                                        |   30 
 fdx_generator/src/main/resources/images/add.png                                                                                                        |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ValidateurFichier.java                                                                      |   88 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml                                                         |   71 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneSearchFormController.java                                         |   13 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml                                                 |   22 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml                                           |   26 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/StructureLigneEditFormController.java                                                       |  162 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/service/TypeFichierService.java                                                                   |  103 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/exceptions/ConfigException.java                                                                   |   24 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/FichierValidation.java                                                                      |   49 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneListDialogController.java                                                |   93 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/FichierValidationEditFormController.java                                                    |  216 +
 fdx_generator/src/main/resources/images/icone_ins.png                                                                                                  |    0 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml                                                                        |   46 
 fdx_generator/target/classes/images/generate.png                                                                                                       |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ValidateurFichierService.java                                                             |  100 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/TypeFichier.java                                                                            |   54 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ImportFile.java                                                                             |   37 
 fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml                                                        |  107 
 fdx_generator/target/classes/styles/title-bar.css                                                                                                      |   44 
 fdx_generator/src/main/resources/images/143-02.png                                                                                                     |    0 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml                                       |   22 
 fdx_generator/src/main/resources/images/min-icon.png                                                                                                   |    0 
 fdx_generator/target/classes/images/next.png                                                                                                           |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/ValidateurFichierDAO.java                                                               |   84 
 fdx_generator/target/classes/images/close-icon.png                                                                                                     |    0 
 fdx_generator/src/main/resources/styles/main-style.css                                                                                                 |  251 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptConstraint.java                                                           |   27 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/StructureLigneTable.java                                                         |   44 
 fdx_generator/target/classes/images/max-icon.png                                                                                                       |    0 
 fdx_generator/src/main/resources/images/next.png                                                                                                       |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/DataType.java                                                                               |   38 
 fdx_generator/target/classes/images/143-05.png                                                                                                         |    0 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml                                                            |  284 +
 fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Generator v.1.0.2.docx |    0 
 fdx_generator/target/classes/images/143-02.png                                                                                                         |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/TypeFichierDAO.java                                                                     |   45 
 fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml                                                                |  284 +
 fdx_generator/target/classes/update-description.txt                                                                                                    |    3 
 fdx_generator/target/test-classes/.netbeans_automatic_build                                                                                            |    0 
 fdx_generator/target/classes/images/add.png                                                                                                            |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/StructureLigne.java                                                                         |   94 
 fdx_generator/target/classes/images/min-icon.png                                                                                                       |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/TypeDonnee.java                                                                             |   46 
 fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Generator v.1.0.2.docx  |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/App.java                                                                                          |  108 
 fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml                                                                |  102 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ImportTypeFichierEditDialogController.java                                             |   75 
 fdx_generator/hibernate.cfg.xml                                                                                                                        |   23 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main_1.fxml                                                                       |   45 
 fdx_generator/src/main/resources/images/edit.png                                                                                                       |    0 
 fdx_generator/generateur.log                                                                                                                           |    0 
 fdx_generator/src/main/resources/images/generate.png                                                                                                   |    0 
 fdx_generator/nb-configuration.xml                                                                                                                     |   18 
 fdx_generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst                                                 |    0 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml                                   |   22 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml                                                             |  155 
 fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Convert v.1.0.2.docx   |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/pojo/Delimiteur.java                                                                              |   26 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml                                             |   35 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/HibernateUtil.java                                                                      |   48 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml                                         |   35 
 fdx_generator/src/main/resources/images/143-05.png                                                                                                     |    0 
 fdx_generator/src/main/resources/update-description.txt                                                                                                |    3 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/MainController.java                                                                    |  288 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateConstraint.java                                                       |   27 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ConfigEditFormController.java                                                               |   51 
 fdx_generator/src/main/resources/images/Fichier.png                                                                                                    |    0 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml                                                               |   60 
 fdx_generator/target/classes/log4j.properties                                                                                                          |   12 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierListDialogController.java                                                   |  102 
 fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst                                                       |   70 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main.fxml                                                                         |  107 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml                                                                |   88 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameValidator.java                                                                |   24 
 fdx_generator/target/classes/images/Motif.png                                                                                                          |    0 
 fdx_generator/target/maven-archiver/pom.properties                                                                                                     |    5 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierSearchFormController.java                                            |   31 
 fdx_generator/src/main/resources/log4j.properties                                                                                                      |   12 
 fdx_generator/src/main/resources/images/oeil.png                                                                                                       |    0 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main.fxml                                                                             |  107 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigConstraint.java                                                                 |   27 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/TypeFichierTable.java                                                            |   39 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptValidator.java                                                            |   25 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml                                                                   |   60 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/ImportData.java                                                                         |  178 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchFormController.java                              |   32 
 fdx_generator/target/classes/images/Reset.png                                                                                                          |    0 
 fdx_generator/src/main/resources/images/143-03.png                                                                                                     |    0 
 fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Convert v.1.0.2.docx    |    0 
 fdx_generator/src/main/resources/styles/main_screen.css                                                                                                |  246 +
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main2.fxml                                                                            |  103 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/TypeFichierEditFormController.java                                                          |   35 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main_1.fxml                                                                           |   45 
 fdx_generator/target/classes/images/143-04.png                                                                                                         |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneAdvancedSearchFormController.java                                 |   13 
 fdx_generator/src/main/resources/images/trash.png                                                                                                      |    0 
 fdx_generator/dependency-reduced-pom.xml                                                                                                               |  177 +
 fdx_generator/src/main/resources/images/Reset.png                                                                                                      |    0 
 fdx_generator/target/classes/images/oeil.png                                                                                                           |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ValidateurFichierEditFormController.java                                                    |  230 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateConstraint.java                                                             |   27 
 fdx_generator/pom.xml                                                                                                                                  |  196 +
 fdx_generator/src/main/resources/images/Accuueil_Generator.jpg                                                                                         |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchFormController.java                                    |   38 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml                                                         |   88 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main2.fxml                                                                        |  103 
 fdx_generator/src/main/resources/images/max-icon.png                                                                                                   |    0 
 fdx_generator/target/classes/images/trash.png                                                                                                          |    0 
 fdx_generator/target/classes/.netbeans_automatic_build                                                                                                 |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/AttributeFormatException.java                                                           |   23 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml                                                            |  102 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml                                                         |  155 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml                                                                    |   46 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchFormController.java                                      |   87 
 fdx_generator/src/main/resources/images/143-01.png                                                                                                     |    0 
 fdx_generator/target/classes/styles/style.css                                                                                                          |   18 
 fdx_generator/target/classes/styles/main_screen.css                                                                                                    |  246 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/FichierValidationEditDialogController.java                                             |  439 ++
 fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/DataToImport.java                                                                       |   36 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/ValidateurFichierTable.java                                                      |   32 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ConfigurationService.java                                                                 |   63 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/PaginationElts.java                                                                     |   49 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml                                                             |   71 
 fdx_generator/guide_d'installation_fdx_generator.docx                                                                                                  |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ImportFileService.java                                                                    |   90 
 fdx_generator/src/main/resources/images/143-04.png                                                                                                     |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/StructureLigneDAO.java                                                                  |   31 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneEditDialogController.java                                                |  204 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/AbstractDAO.java                                                                        |  281 +
 fdx_generator/target/classes/images/previous.png                                                                                                       |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateValidator.java                                                              |   31 
 fdx_generator/target/classes/images/143-03.png                                                                                                         |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierEditDialogController.java                                             |  258 +
 fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst                                                         |   62 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml                                               |   26 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/service/StructureLigneService.java                                                                |   93 
 fdx_generator/target/classes/images/icone_ins.png                                                                                                      |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/model/Configuration.java                                                                          |   28 
 fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml                                                            |   88 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/BriefLogFormatter.java                                                                            |   62 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierEditDialogController.java                                                   |   74 
 fdx_generator/src/main/resources/images/previous.png                                                                                                   |    0 
 fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml                                                             |   88 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameConstraint.java                                                               |   27 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ConfigEditDialogController.java                                                        |   52 
 fdx_generator/src/main/resources/images/close-icon.png                                                                                                 |    0 
 fdx_generator/target/classes/images/143-01.png                                                                                                         |    0 
 fdx_generator/target/classes/images/edit.png                                                                                                           |    0 
 fdx_generator/target/classes/styles/main-style.css                                                                                                     |  251 +
 fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ImportTypeFichierEditFormController.java                                                    |   74 
 fdx_generator/src/main/resources/images/Motif.png                                                                                                      |    0 
 fdx_generator/src/main/resources/styles/style.css                                                                                                      |   18 
 fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml                                                     |   22 
 fdx_generator/target/classes/images/Fichier.png                                                                                                        |    0 
 fdx_generator/target/classes/images/Accuueil_Generator.jpg                                                                                             |    0 
 fdx_generator/target/classes/images/Recherche.png                                                                                                      |    0 
 fdx_generator/src/main/resources/images/Recherche.png                                                                                                  |    0 
 fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigValidator.java                                                                  |   28 
 fdx_generator/documentation_generateur.rar                                                                                                             |    0 
 165 files changed, 9,526 insertions(+), 0 deletions(-)

diff --git a/fdx_generator/dependency-reduced-pom.xml b/fdx_generator/dependency-reduced-pom.xml
new file mode 100644
index 0000000..58f3035
--- /dev/null
+++ b/fdx_generator/dependency-reduced-pom.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <artifactId>spring-boot-starter-parent</artifactId>
+    <groupId>org.springframework.boot</groupId>
+    <version>2.7.2</version>
+    <relativePath>pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>com.megatim.generation.validateur.typefichier</groupId>
+  <artifactId>generation-validateur-typefichier</artifactId>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>
+              <groupId>org.projectlombok</groupId>
+              <artifactId>lombok</artifactId>
+            </exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.1</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+          <showDeprecation>false</showDeprecation>
+        </configuration>
+      </plugin>
+      <plugin>
+        <artifactId>maven-shade-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <minimizeJar>true</minimizeJar>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <transformers>
+                <transformer>
+                  <resource>META-INF/spring.handlers</resource>
+                </transformer>
+                <transformer>
+                  <resource>META-INF/spring.factories</resource>
+                </transformer>
+                <transformer>
+                  <resource>META-INF/spring.schemas</resource>
+                </transformer>
+              </transformers>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+      <version>2.7.2</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>2.1.214</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.projectlombok</groupId>
+      <artifactId>lombok</artifactId>
+      <version>1.18.20</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate</groupId>
+      <artifactId>hibernate-core</artifactId>
+      <version>5.3.0.Final</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>javax.validation</groupId>
+      <artifactId>validation-api</artifactId>
+      <version>2.0.0.Final</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hibernate.validator</groupId>
+      <artifactId>hibernate-validator</artifactId>
+      <version>6.0.13.Final</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.glassfish</groupId>
+      <artifactId>javax.el</artifactId>
+      <version>3.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.megatimfx.common</groupId>
+      <artifactId>megatimfx-common</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.megatimfx.security</groupId>
+      <artifactId>megatimfx-security</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.11.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.17</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>it.sauronsoftware</groupId>
+      <artifactId>junique</artifactId>
+      <version>1.04</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.megatim</groupId>
+      <artifactId>module-compression</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.megatim</groupId>
+      <artifactId>module.encryption</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.vinumeris</groupId>
+      <artifactId>updatefx</artifactId>
+      <version>1.5</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-jdk14</artifactId>
+      <version>1.7.10</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+  <properties>
+    <exec.mainClass>generation.validateur.typefichier.App</exec.mainClass>
+    <maven.compiler.source>1.8</maven.compiler.source>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.target>1.8</maven.compiler.target>
+  </properties>
+</project>
diff --git a/fdx_generator/documentation_generateur.rar b/fdx_generator/documentation_generateur.rar
new file mode 100644
index 0000000..f162374
--- /dev/null
+++ b/fdx_generator/documentation_generateur.rar
Binary files differ
diff --git a/fdx_generator/generateur.log b/fdx_generator/generateur.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fdx_generator/generateur.log
diff --git "a/fdx_generator/guide_d\047installation_fdx_generator.docx" "b/fdx_generator/guide_d\047installation_fdx_generator.docx"
new file mode 100644
index 0000000..cf2fc3f
--- /dev/null
+++ "b/fdx_generator/guide_d\047installation_fdx_generator.docx"
Binary files differ
diff --git a/fdx_generator/hibernate.cfg.xml b/fdx_generator/hibernate.cfg.xml
new file mode 100644
index 0000000..dcd5d27
--- /dev/null
+++ b/fdx_generator/hibernate.cfg.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+Click nbfs://nbhost/SystemFileSystem/Templates/XML/XMLDocument.xml to edit this template
+-->
+
+<hibernate-configuration>
+  <session-factory>
+    <property name="hibernate.connection.driver_class">org.h2.Driver</property>
+    <property name="hibernate.connection.url">jdbc:h2:file:C:/h2/generateur/generateur</property>
+    <property name="hibernate.connection.username">sa</property>
+    <property name="hibernate.connection.password"></property>
+    <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
+    <property name="show_sql">true</property>
+    <property name="hbm2ddl.auto">update</property>
+    
+    <mapping class="com.megatim.fdxgenerator.model.TypeFichier"></mapping>
+    <mapping class="com.megatim.fdxgenerator.model.ValidateurFichier"></mapping>
+    <mapping class="com.megatim.fdxgenerator.model.StructureLigne"></mapping>
+	<mapping class="com.megatim.fdxgenerator.model.Configuration"></mapping>
+  </session-factory>
+</hibernate-configuration>
+
diff --git a/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Convert v.1.0.2.docx b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Convert v.1.0.2.docx
new file mode 100644
index 0000000..f52d4e9
--- /dev/null
+++ b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Convert v.1.0.2.docx
Binary files differ
diff --git a/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Generator v.1.0.2.docx b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Generator v.1.0.2.docx
new file mode 100644
index 0000000..ae2255b
--- /dev/null
+++ b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide installation Fdx-Generator v.1.0.2.docx
Binary files differ
diff --git a/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Convert v.1.0.2.docx b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Convert v.1.0.2.docx
new file mode 100644
index 0000000..bb8baa0
--- /dev/null
+++ b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Convert v.1.0.2.docx
Binary files differ
diff --git a/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Generator v.1.0.2.docx b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Generator v.1.0.2.docx
new file mode 100644
index 0000000..4c19cca
--- /dev/null
+++ b/fdx_generator/manuels_installation_&_utilisation_fdxconvert_&_fdxgenerator/MGTCM-MINFI-Projet Fdx - FO - Guide utilisation Fdx-Generator v.1.0.2.docx
Binary files differ
diff --git a/fdx_generator/nb-configuration.xml b/fdx_generator/nb-configuration.xml
new file mode 100644
index 0000000..a65c451
--- /dev/null
+++ b/fdx_generator/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+    <!--
+This file contains additional configuration written by modules in the NetBeans IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be limited or fail altogether.
+-->
+    <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+        <!--
+Properties that influence various parts of the IDE, especially code formatting and the like. 
+You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting rules for example).
+Any value defined here will override the pom.xml file value but is only applicable to the current project.
+-->
+        <netbeans.hint.jdkPlatform>JDK_1.8</netbeans.hint.jdkPlatform>
+    </properties>
+</project-shared-configuration>
diff --git a/fdx_generator/pom.xml b/fdx_generator/pom.xml
new file mode 100644
index 0000000..2484032
--- /dev/null
+++ b/fdx_generator/pom.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.megatim.com.megatim.fdxgenerator</groupId>
+    <artifactId>fdx-generator</artifactId>
+    <version>1.0</version>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <exec.mainClass>com.megatim.fdxgenerator.App</exec.mainClass>
+    </properties>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                    <showDeprecation>false</showDeprecation>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>2.4</version>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <mainClass>com.megatim.fdxgenerator.App</mainClass>
+                            <classpathPrefix>lib/</classpathPrefix>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>2.8</version>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>                            
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>com.megatim.fdxgenerator.App</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id> <!-- this is used for inheritance merges -->
+                        <phase>package</phase> <!-- bind to the packaging phase -->
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            
+            <!--<plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <version>3.0.0</version>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                                <mainClass>com.megatim.fdxgenerator.App</mainClass>
+                        </manifest>
+                    </archive>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    </configuration>
+                <executions>
+                    <execution>
+                        <id>make-my-jar-with-dependencies</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin> 
+            !-->
+            
+        </plugins>
+    
+    </build>
+    
+    <dependencies>
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <scope>runtime</scope>
+            <version>2.1.214</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>1.18.20</version>
+            <scope>provided</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-core</artifactId>
+            <version>5.3.0.Final</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+            <version>2.0.0.Final</version>
+        </dependency>
+
+        
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.0.13.Final</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.glassfish</groupId>
+            <artifactId>javax.el</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.megatimfx.common</groupId>
+            <artifactId>megatimfx-common</artifactId>
+            <version>1.0</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>com.megatimfx.security</groupId>
+            <artifactId>megatimfx-security</artifactId>
+            <version>1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.11.0</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+            <version>1.2.17</version>
+        </dependency>
+
+        <!--        <dependency>
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-core</artifactId>
+    <version>2.19.0</version>
+</dependency>
+<dependency>
+    <groupId>it.sauronsoftware</groupId>
+    <artifactId>junique</artifactId>
+    <version>1.04</version>
+</dependency>
+        -->
+        
+        <dependency>
+            <groupId>com.megatim</groupId> 
+            <artifactId>module-compression</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+        </dependency>
+        
+        <dependency>
+            <groupId>com.megatim</groupId>
+            <artifactId>module.encryption</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/App.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/App.java
new file mode 100644
index 0000000..fde1b8c
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/App.java
@@ -0,0 +1,108 @@
+/*
+ * 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.fdxgenerator;
+
+import com.megatimfx.common.abstracts.context.AbstractViewContext;
+import com.megatim.fdxgenerator.controller.MainController;
+import com.megatim.fdxgenerator.model.dao.HibernateUtil;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javafx.application.Application;
+import static javafx.application.Application.launch;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.image.Image;
+import javafx.stage.Stage;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class App extends Application {
+
+    public static final Map<String, Delimiteur> SEPARATEURS_DATE = new HashMap<>();
+    public static final Map<String, Delimiteur> SEPARATEURS_DECIMAUX = new HashMap<>();
+    public static final List<String> FORMATS_DATE = new ArrayList<>();
+    public static final Map<String, Delimiteur> DELIMITEURS_COLONNE = new HashMap<>();
+    public static final Map<String, Delimiteur> DELIMITEURS_LIGNE = new HashMap<>();
+
+    static {
+        SEPARATEURS_DATE.put("", new Delimiteur("", "Aucun"));
+        SEPARATEURS_DATE.put("-", new Delimiteur("-", "Tiret ( - )"));
+        SEPARATEURS_DATE.put("/", new Delimiteur("/", "Slash ( / )"));
+        // SEPARATEURS_DATE.put("\\", new Delimiteur("\\", "Anti-Slash ( \\ )"));
+
+        SEPARATEURS_DECIMAUX.put(".", new Delimiteur(".", "Point ( . )"));
+        SEPARATEURS_DECIMAUX.put(",", new Delimiteur(",", "Virgule ( , )"));
+
+        DELIMITEURS_COLONNE.put("", new Delimiteur("", "Aucun"));
+        DELIMITEURS_COLONNE.put(";", new Delimiteur(";", "Point-virgule ( ; )"));
+        DELIMITEURS_COLONNE.put("|", new Delimiteur("|", "Barre verticale ( | )"));
+        DELIMITEURS_COLONNE.put("\\t", new Delimiteur("\\t", "Tabulation ( \\t )"));
+
+        DELIMITEURS_LIGNE.put("\\n", new Delimiteur("\\n", "Retour Charriot ( \\n )"));
+
+        FORMATS_DATE.add("ddMMyyyy");
+        FORMATS_DATE.add("yyyyMMdd");
+        FORMATS_DATE.add("yyyyddMM");
+        FORMATS_DATE.add("MMyyyydd");
+        FORMATS_DATE.add("MMddyyy");
+        FORMATS_DATE.add("yyyy");
+        FORMATS_DATE.add("MMyyyy");
+        FORMATS_DATE.add("yyyyMMddHHmmss");
+        FORMATS_DATE.add("yyyyMMdd HH:mm:ss");
+        FORMATS_DATE.add("yyyyddMMHHmmss");
+        FORMATS_DATE.add("ddMMyyyyHHmmss");
+//        FORMATS_DATE.add("MMddyyyHHmmss");
+    }
+
+    @Override
+    public void start(Stage primaryStage) throws FileNotFoundException, MalformedURLException, IOException {
+
+        AbstractViewContext.getInstance().setAbstractEditDialogControllerURL(App.class.getResource("/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml"));
+
+        FXMLLoader loader = new FXMLLoader();
+        loader.setLocation(MainController.class.getResource("main.fxml"));
+        Parent root = loader.load();
+
+        Scene scene = new Scene(root, 1100, 600);
+
+        primaryStage.setTitle("Générateur de fichiers de validation v1.0.2");
+        primaryStage.getIcons().add(new Image("images/icone_ins.png"));
+        primaryStage.setScene(scene);
+        primaryStage.setOnCloseRequest(e -> {
+            HibernateUtil.shutdown();
+            System.exit(0);
+        });
+        primaryStage.show();
+    }
+
+    /**
+     * @param args the command line arguments
+     */
+    public static void main(String[] args) {
+        String appId = "com.megatim.fdxgenerator.App";
+        boolean alreadyRunning;
+        /*try {
+            JUnique.acquireLock(appId);
+            alreadyRunning = false;
+        } catch (AlreadyLockedException e) {
+            alreadyRunning = true;
+        }
+        if (!alreadyRunning) {
+            launch(args);
+        } else {
+            System.exit(1);
+        }*/
+        launch(args);
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/AppUpdate.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/AppUpdate.java
new file mode 100644
index 0000000..1ec8444
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/AppUpdate.java
@@ -0,0 +1,178 @@
+/*
+ * 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.fdxgenerator;
+
+/**
+ * https://github.com/vinumeris/updatefx
+ * @author STEPHANIE
+ */
+public class AppUpdate {
+//    
+//    private static java.util.logging.Logger logger;
+//    private static final Logger log = LoggerFactory.getLogger(App.class);
+//    public static int VERSION = 1;
+//    private static final String APP_NAME = "generateur";
+//    
+//    @Override
+//    public void start(Stage primaryStage) throws FileNotFoundException, MalformedURLException, IOException {
+//         // For some reason the JavaFX launch process results in us losing the thread context class loader: reset it.
+//        Thread.currentThread().setContextClassLoader(App.class.getClassLoader());
+//        // Must be done twice for the times when we come here via realMain.
+//        AppDirectory.initAppDir(APP_NAME);
+//
+//        log.info("Hello World! This is version " + VERSION);
+//
+//       // ProgressIndicator indicator = showGiantProgressWheel(primaryStage);
+//
+//        List<ECPoint> pubkeys = Crypto.decode();
+//        
+//        Updater updater = new Updater(URI.create("http://localhost:8080/generateur-updates/index"), "generation-typefichier-" + VERSION,
+//                AppDirectory.dir(), UpdateFX.findCodePath(App.class), pubkeys, 0) {
+//            @Override
+//            protected void updateProgress(long workDone, long max) {
+//                super.updateProgress(workDone, max);
+//                // Give UI a chance to show.
+//                Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
+//            }
+//        };
+//        
+//        FXMLLoader loader = new FXMLLoader();
+//        loader.setLocation(MainController.class.getResource("main.fxml"));
+//        Parent root = loader.load();
+//        MainController controller = loader.getController();
+//        
+//       ProgressIndicator indicator = controller.getIndicator();
+//        indicator.progressProperty().bind(updater.progressProperty());
+//        Label label = controller.getLabelVersion();
+//       
+//
+//        log.info("Checking for updates!");
+//        updater.setOnRunning(event -> {
+//            label.setText("Mise à jour en cours");
+//        });
+//        updater.setOnSucceeded(event -> {
+//            try {
+//                UpdateSummary summary = updater.get();
+//               Updates updates = summary.updates;
+//               int count = updates.getUpdatesCount();
+//               
+//                if (!summary.descriptions.isEmpty()) {
+//                    log.info("One liner: {}", summary.descriptions.get(0).getOneLiner());
+//                    log.info("{}", summary.descriptions.get(0).getDescription());
+//                }
+//                if (summary.highestVersion > VERSION) {
+//                    int nb = summary.highestVersion - VERSION;
+//                    log.info("Restarting to get version " + summary.highestVersion);
+//                    label.setText("Nombre de mise à jour trouvé : " + nb);
+//                    if (UpdateFX.getVersionPin(AppDirectory.dir()) == 0) {
+//                        log.info("before restartApp()");
+//                        UpdateFX.restartApp();
+//                    }
+//                } else {
+//                    label.setVisible(false);
+//                    indicator.setVisible(false);
+//                }
+//            } catch (Throwable e) {
+//                log.error("oops", e);
+//            }
+//        });
+//        updater.setOnFailed(event -> {
+//            label.setVisible(false);
+//            indicator.setVisible(false);
+//            
+//            log.error("Update error: {}", updater.getException());
+//            updater.getException().getMessage();
+//            updater.getException().printStackTrace();
+//        });
+//
+//        indicator.setOnMouseClicked(ev -> UpdateFX.restartApp());
+//
+//        new Thread(updater, "UpdateFX Thread").start();
+//        
+//        AbstractViewContext.getInstance().setAbstractEditDialogControllerURL(App.class.getResource("/generation/validateur/typefichier/abstracts/AbstractEditDialog.fxml"));
+//        
+//        
+//
+//        Scene scene = new Scene(root, 1100, 600);
+//
+//        primaryStage.setTitle("Générateur de fichiers de validation");
+//        primaryStage.getIcons().add(new Image("images/icone_ins.png"));
+//        primaryStage.setScene(scene);
+//        primaryStage.setOnCloseRequest(e -> {
+//            HibernateUtil.shutdown();
+//           System.exit(0);
+//        });
+//        primaryStage.show();
+//    }
+//
+//    /**
+//     * @param args the command line arguments
+//     */
+//     public static void main(String[] args) throws IOException {
+//        // We want to store updates in our app dir so must init that here.
+//        AppDirectory.initAppDir(APP_NAME);
+//        setupLogging();
+//        // re-enter at realMain, but possibly running a newer version of the software i.e. after this point the
+//        // rest of this code may be ignored.
+//        UpdateFX.bootstrap(App.class, AppDirectory.dir(), args);
+//        
+//        String appId = "generation.validateur.typefichier.App";
+//        boolean alreadyRunning;
+//        try {
+//            JUnique.acquireLock(appId);
+//            alreadyRunning = false;
+//        } catch (AlreadyLockedException e) {
+//            alreadyRunning = true;
+//        }
+//        if (!alreadyRunning) {
+//            launch(args);
+//        } else {
+//            System.exit(1);
+//        }
+//    }
+//    
+//    public static void realMain(String[] args) {
+//        launch(args);
+//    }
+//     
+//    private static void setupLogging() throws IOException {
+//        logger = java.util.logging.Logger.getLogger("");
+//        logger.getHandlers()[0].setFormatter(new BriefLogFormatter());
+//        FileHandler handler = new FileHandler(AppDirectory.dir().resolve("log.txt").toString(), true);
+//        handler.setFormatter(new BriefLogFormatter());
+//        logger.addHandler(handler);
+//    }
+//    
+//    private ProgressIndicator showGiantProgressWheel(Stage stage) {
+//        ProgressIndicator indicator = new ProgressIndicator();
+//        BorderPane borderPane = new BorderPane(indicator);
+//        borderPane.setMinWidth(640);
+//        borderPane.setMinHeight(480);
+//        Button pinButton = new Button();
+//        pinButton.setText("Pin to version "+VERSION);
+//        pinButton.setOnAction(event -> {
+//            UpdateFX.pinToVersion(AppDirectory.dir(), VERSION);
+//            UpdateFX.restartApp();
+//        });
+//        HBox box = new HBox(new Label("Version " + VERSION), pinButton);
+//        box.setSpacing(10);
+//        box.setAlignment(Pos.CENTER_LEFT);
+//        box.setPadding(new Insets(10));
+//        borderPane.setTop(box);
+//        Scene scene = new Scene(borderPane);
+//        stage.setScene(scene);
+//        
+//        return indicator;
+//    }
+//    
+//    private ProgressIndicator showGiantProgressWheel(MainController controller) {
+//        ProgressIndicator indicator = controller.getIndicator();
+//        
+//        Label label = controller.getLabelVersion();
+//        label.setText("Version "+VERSION);
+//        
+//        return indicator;
+//    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/BriefLogFormatter.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/BriefLogFormatter.java
new file mode 100644
index 0000000..59abdfb
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/BriefLogFormatter.java
@@ -0,0 +1,62 @@
+/*
+ * 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.fdxgenerator;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.text.MessageFormat;
+import java.util.Date;
+import java.util.logging.*;
+
+/**
+ *
+ * @author STEPHANIE
+ * A Java logging formatter that writes more compact output than the default.
+ */
+public class BriefLogFormatter extends Formatter {
+     private static final MessageFormat messageFormat = new MessageFormat("{3,date,hh:mm:ss} {0} {1}.{2}: {4}\n{5}");
+
+    // OpenJDK made a questionable, backwards incompatible change to the Logger implementation. It internally uses
+    // weak references now which means simply fetching the logger and changing its configuration won't work. We must
+    // keep a reference to our custom logger around.
+    private static Logger logger;
+
+    /** Configures JDK logging to use this class for everything. */
+    public static void init() {
+        logger = Logger.getLogger("");
+        final Handler[] handlers = logger.getHandlers();
+        // In regular Java there is always a handler. Avian doesn't install one however.
+        if (handlers.length > 0)
+            handlers[0].setFormatter(new BriefLogFormatter());
+    }
+
+    public static void initVerbose() {
+        init();
+        logger.setLevel(Level.ALL);
+        logger.log(Level.FINE, "test");
+    }
+
+    @Override
+    public String format(LogRecord logRecord) {
+        Object[] arguments = new Object[6];
+        arguments[0] = logRecord.getThreadID();
+        String fullClassName = logRecord.getSourceClassName();
+        int lastDot = fullClassName.lastIndexOf('.');
+        String className = fullClassName.substring(lastDot + 1);
+        arguments[1] = className;
+        arguments[2] = logRecord.getSourceMethodName();
+        arguments[3] = new Date(logRecord.getMillis());
+        arguments[4] = logRecord.getMessage();
+        if (logRecord.getThrown() != null) {
+            Writer result = new StringWriter();
+            logRecord.getThrown().printStackTrace(new PrintWriter(result));
+            arguments[5] = result.toString();
+        } else {
+            arguments[5] = "";
+        }
+        return messageFormat.format(arguments);
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigConstraint.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigConstraint.java
new file mode 100644
index 0000000..1adb99a
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigConstraint.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/AnnotationType.java to edit this template
+ */
+package com.megatim.fdxgenerator.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Documented
+@Constraint(validatedBy = ConfigValidator.class)
+@Target( { ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ConfigConstraint {
+    String message() default "Configurer d'abord le repertoire de dépôt des fichiers de validation avant de procéder à la génération";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigValidator.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigValidator.java
new file mode 100644
index 0000000..5db0373
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/ConfigValidator.java
@@ -0,0 +1,28 @@
+/*
+ * 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.fdxgenerator.annotations;
+
+import com.megatim.fdxgenerator.model.Configuration;
+import com.megatim.fdxgenerator.model.FichierValidation;
+import com.megatim.fdxgenerator.service.ConfigurationService;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ConfigValidator implements  ConstraintValidator<ConfigConstraint, FichierValidation> {
+    
+    @Override
+    public void initialize(ConfigConstraint cons) {
+    }
+    
+    @Override
+    public boolean isValid(FichierValidation fichVal, ConstraintValidatorContext cxt) {
+        Configuration config = ConfigurationService.getInstance().getCurrentConfig();
+        return config != null;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameConstraint.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameConstraint.java
new file mode 100644
index 0000000..48fb307
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameConstraint.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.fdxgenerator.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Documented
+@Constraint(validatedBy = FileNameValidator.class)
+@Target( { ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface FileNameConstraint {
+    String message() default "Le format de la date est obligatoire";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameValidator.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameValidator.java
new file mode 100644
index 0000000..f1a923b
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FileNameValidator.java
@@ -0,0 +1,24 @@
+/*
+ * 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.fdxgenerator.annotations;
+
+import com.megatim.fdxgenerator.model.FichierValidation;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class FileNameValidator implements  ConstraintValidator<FileNameConstraint, FichierValidation> {
+
+    @Override
+    public boolean isValid(FichierValidation t, ConstraintValidatorContext cvc) {
+        if(t.isValidateFileName())
+            return t.getFormatDate() != null ;
+        else return true;
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateConstraint.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateConstraint.java
new file mode 100644
index 0000000..9cc9d97
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateConstraint.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/AnnotationType.java to edit this template
+ */
+package com.megatim.fdxgenerator.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Documented
+@Constraint(validatedBy = FormatDateValidator.class)
+@Target( { ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface FormatDateConstraint {
+    String message() default "Format Date yyyy : Année, MM : Mois, dd : Jour , HH : Heure, mm: Minute, ss : Seconde";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateValidator.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateValidator.java
new file mode 100644
index 0000000..2ebdad5
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/FormatDateValidator.java
@@ -0,0 +1,31 @@
+/*
+ * 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.fdxgenerator.annotations;
+
+import com.megatim.fdxgenerator.enums.TypeDonnee;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class FormatDateValidator implements  ConstraintValidator<FormatDateConstraint, StructureLigne> {
+    @Override
+    public void initialize(FormatDateConstraint cons) {
+    }
+    
+    @Override
+    public boolean isValid(StructureLigne structLigne, ConstraintValidatorContext cxt) {
+         if(structLigne.getTypeDonnee().getValue().equals(TypeDonnee.DATE.getValue())){
+             return structLigne.getFormatDate().matches(
+                     "y{4}((M{2}){0,1})((d{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "y{4}((d{2}){0,1})((M{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "M{2}((y{4}){0,1})((d{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "M{2}((d{2}){0,1})((y{4}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})");
+         } else return true;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptConstraint.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptConstraint.java
new file mode 100644
index 0000000..3cd25b2
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptConstraint.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/AnnotationType.java to edit this template
+ */
+package com.megatim.fdxgenerator.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Documented
+@Constraint(validatedBy = KeyToDecryptValidator.class)
+@Target( { ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface KeyToDecryptConstraint {
+    String message() default "La clé est sa confirmation sont obligatoires et  doivent avoir la même valeur";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptValidator.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptValidator.java
new file mode 100644
index 0000000..715e574
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/KeyToDecryptValidator.java
@@ -0,0 +1,25 @@
+/*
+ * 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.fdxgenerator.annotations;
+
+import com.megatim.fdxgenerator.model.FichierValidation;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class KeyToDecryptValidator implements  ConstraintValidator<KeyToDecryptConstraint, FichierValidation>{
+
+    @Override
+    public boolean isValid(FichierValidation t, ConstraintValidatorContext cvc) {
+        if(t.isProtege())
+            return t.getKeyToEncrypt() != null && !t.getKeyToEncrypt().isEmpty() &&
+                    t.getKeyToEncrypt().equals(t.getKeyConfirmation());
+        else return true;
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateConstraint.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateConstraint.java
new file mode 100644
index 0000000..480a0bd
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateConstraint.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/AnnotationType.java to edit this template
+ */
+package com.megatim.fdxgenerator.annotations;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.validation.Constraint;
+import javax.validation.Payload;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Documented
+@Constraint(validatedBy = TailleFormatDateValidator.class)
+@Target( { ElementType.TYPE })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface TailleFormatDateConstraint {
+    String message() default "Le format est obligatoire et sa taille doit être égale à la taille du champ";
+    Class<?>[] groups() default {};
+    Class<? extends Payload>[] payload() default {};
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateValidator.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateValidator.java
new file mode 100644
index 0000000..4f4d509
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/annotations/TailleFormatDateValidator.java
@@ -0,0 +1,30 @@
+/*
+ * 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.fdxgenerator.annotations;
+
+import com.megatim.fdxgenerator.enums.TypeDonnee;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TailleFormatDateValidator implements  ConstraintValidator<TailleFormatDateConstraint, StructureLigne> {
+    @Override
+    public void initialize(TailleFormatDateConstraint cons) {
+    }
+
+    @Override
+    public boolean isValid(StructureLigne structLigne, ConstraintValidatorContext cxt) {
+        
+         if(structLigne.getTypeDonnee() != null && structLigne.getTypeDonnee().getValue().equals(TypeDonnee.DATE.getValue())) {
+             System.out.println("formatDate = "+structLigne.getFormatDate());
+             return  structLigne.getFormatDate() != null &&
+              structLigne.getTaille() == structLigne.getFormatDate().length();
+         } else return true;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ConfigEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ConfigEditDialogController.java
new file mode 100644
index 0000000..e2b2e44
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ConfigEditDialogController.java
@@ -0,0 +1,52 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.forms.ConfigEditFormController;
+import com.megatim.fdxgenerator.model.Configuration;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.scene.layout.Pane;
+
+/**
+ *
+ * @author mela
+ */
+public class ConfigEditDialogController extends AbstractEditDialogController<Configuration> {
+    private ConfigEditFormController configEditFormController;
+    
+    @Override
+    public String getTitle() {
+        getEditButton().setText("Configurer");
+        return "Configuration des repertoires";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(configEditFormController.getClass().getResource("ConfigEditForm.fxml"), configEditFormController);
+    }
+    
+     @Override
+    public Object getContentFormController() {
+        return configEditFormController;
+    }
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        configEditFormController = new ConfigEditFormController();
+        super.initialize(url, rb); 
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(Configuration bindObject, Object formController, TypeOperation typeOperation) {
+        super.beforeBindFormFieldWithCurrentObject(bindObject, formController, typeOperation); 
+    }
+    
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/FichierValidationEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/FichierValidationEditDialogController.java
new file mode 100644
index 0000000..347a709
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/FichierValidationEditDialogController.java
@@ -0,0 +1,439 @@
+package com.megatim.fdxgenerator.controller;
+
+import com.megatim.module.compression.impl.JavaZipZip4Impl;
+import com.megatim.module.encryption.ifaces.EncryptionFace;
+import com.megatim.module.encryption.impl.AESImpl;
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+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.fdxgenerator.enums.DataType;
+import com.megatim.fdxgenerator.enums.TypeDonnee;
+import com.megatim.fdxgenerator.exceptions.ConfigException;
+import com.megatim.fdxgenerator.forms.FichierValidationEditFormController;
+import com.megatim.fdxgenerator.model.Configuration;
+import com.megatim.fdxgenerator.model.FichierValidation;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.model.dao.StructureLigneDAO;
+import com.megatim.fdxgenerator.model.dao.ValidateurFichierDAO;
+import com.megatim.fdxgenerator.service.ConfigurationService;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Collections;
+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 javax.activation.UnsupportedDataTypeException;
+import org.apache.commons.io.FileUtils;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class FichierValidationEditDialogController extends AbstractEditDialogController<FichierValidation> {
+
+    private FichierValidationEditFormController fichierValidationEditFormController;
+
+    private int index;
+
+    Boolean result = true;
+
+    private final String ENCRYPT_DIR = "ENCRYPT_DIR";
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        fichierValidationEditFormController = new FichierValidationEditFormController();
+        super.initialize(url, rb);
+    }
+
+    @Override
+    public String getTitle() {
+        getEditButton().setText("Générer");
+        return "Génération du fichier de validation d'un type fichier";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(fichierValidationEditFormController.getClass().getResource("FichierValidationEditForm.fxml"), fichierValidationEditFormController);
+
+    }
+
+    @Override
+    public Object getContentFormController() {
+        return fichierValidationEditFormController;
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        boolean bool = super.beforeSave(event);
+
+        if (fichierValidationEditFormController.getIsProtegeCheckBox().isSelected()) {
+            return bool && fichierValidationEditFormController.getKeyConfirmationField() != null && fichierValidationEditFormController.getKeyToEncryptField() != null;
+        } else {
+            return bool;
+        }
+    }
+
+    private Boolean generateFichierValidation(FichierValidation f, Configuration config) throws Exception {
+        final String charset = "UTF-8";
+        String fileExtension = ".xml";
+        String fileNamePrefix = "Fdx-Validator";
+        index = 0;
+        result = true;
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss");
+
+        if (config == null) {
+            throw new ConfigException("Génération impossible, le répertoire de dépôt des fichiers de validation n'est pas configuré");
+        }
+        try {
+            Optional<ValidateurFichier> validateurFichier = ValidateurFichierDAO.findByTypeFichier(f.getTypeFichier().getCode());
+            File file = new File(config.getOutputDir(), fileNamePrefix + f.getTypeFichier().getCode() + "-" + dateTimeFormatter.format(LocalDateTime.now()) + fileExtension);
+
+            if (validateurFichier.isPresent()) {
+                ValidateurFichier vf = validateurFichier.get();
+
+                openTags(file, charset);
+                FileUtils.writeStringToFile(file, "\t\t<entity name=\"com.megatim.typefichier.validator.model.GenericTypeFichier\" error-report-field=\"codeErreur\" activate=\"true\"> \n\n", charset, true);
+                fileNameValidation(f, file, charset);
+
+                //vérifie si le fichier est vide
+                emptyFileValidation(file, charset);
+                FileUtils.writeStringToFile(file, "\t\t</entity>\n\n", charset, true);
+
+                //validation des lignes de données
+                String csvClass = "ExcelFileLine";
+                String txtClass = "FileLine";
+                String entityTagPart1 = "\t\t<entity name=\"com.megatim.typefichier.validator.model.";
+                String entityTagPart2 = " error-report-field=\"codeErreur\" activate=\"true\"";
+                String newLine = ">  \n \n";
+
+                String extension = "\" extension=\"" + vf.getDataType().name().toLowerCase() + "\" ";
+                String headerPresent = " header-present=\"" + vf.isHeaderPresent() + "\"";
+
+                switch (vf.getDataType()) {
+                    case CSV:
+                        String lineDelimiter = " line-delimiter=\"" + vf.getCodeDelimiteurLigne() + "\"";
+                        String columnDelimiter = " column-delimiter=\"" + vf.getCodeDelimiteurColonne() + "\"";
+                        FileUtils.writeStringToFile(file, entityTagPart1 + csvClass + extension + entityTagPart2 + headerPresent + lineDelimiter + columnDelimiter + newLine, charset, true);
+                        break;
+                    case XLS:
+                    case XLSX:
+                        FileUtils.writeStringToFile(file, entityTagPart1 + csvClass + extension + entityTagPart2 + headerPresent + newLine, charset, true);
+                        break;
+                    case TXT:
+                        FileUtils.writeStringToFile(file, entityTagPart1 + txtClass + extension + entityTagPart2 + newLine, charset, true);
+                        break;
+                    default:
+                        throw new UnsupportedDataTypeException("'" + vf.getDataType() + "' : format inconnu");
+                }
+                columnsValidation(vf, file, charset);
+
+                if (vf.getDataType().equals(DataType.TXT)) {
+                    lineLengthValidation(f, file, charset);
+                }
+                closeTags(file, charset);
+
+            } else {
+                FileUtils.writeStringToFile(file, "Le type fichier " + f.getTypeFichier().getCode() + " n'a pas de validateur enregistré ", "UTF-8", false);
+            }
+            if (fichierValidationEditFormController.getIsProtegeCheckBox().isSelected()) {
+                result = encryptAndZipFile(file, config, f.getKeyToEncrypt());
+            }
+        } catch (Exception ex) {
+            result = false;
+        }
+        return result;
+    }
+
+    private void openTags(File file, final String charset) throws IOException {
+        FileUtils.writeStringToFile(file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n", charset, false);
+        FileUtils.writeStringToFile(file, "<predicate-config xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n", charset, true);
+        FileUtils.writeStringToFile(file, "xsi:schemaLocation=\"http://www.leadware.net/predicatelogic-config ../xsd/predicatelogic-config.xsd\" \n", charset, true);
+        FileUtils.writeStringToFile(file, "xmlns=\"http://www.leadware.net/predicatelogic-config\"> \n \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t<entities> \n", charset, true);
+    }
+
+    private void fileNameValidation(FichierValidation f, File file, final String charset) throws IOException {
+        int fileNameIndex = 0;
+
+        if (f.isValidateFileName()) {
+
+            //validation du code participant dans le nom du fichier
+            FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"CodeParticipant\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"ifCodeAgentOrCodeParticipant\" error-code=\"CodeParticipant\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"code\" value=\"" + f.getTypeFichier().getCodeParticipant() + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"fileName\" field=\"fileName\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"index\" value=\"" + fileNameIndex + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"taille\" value=\"" + f.getTypeFichier().getCodeParticipant().length() + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t</assertion>\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t</validation>\n\n", charset, true);
+
+            fileNameIndex += f.getTypeFichier().getCode().length();
+
+            //validation de la date dans le nom du fichier
+            FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"Date\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"ifDate\" error-code=\"Date\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"format\" value=\"" + f.getFormatDate() + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"fileName\" field=\"fileName\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"index\" value=\"" + fileNameIndex + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t</assertion>\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t</validation>\n\n", charset, true);
+            fileNameIndex += f.getFormatDate().length();
+
+            //validation des tierces
+            if (f.getMaxValueTierce() > 0) {
+                FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"Tierce\" activate=\"true\">\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"ifTierce\" error-code=\"Tierce\" activate=\"true\">\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"minValue\" value=\"0\" />\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"maxValue\" value=\"" + f.getMaxValueTierce() + "\" />\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"index\" value=\"" + fileNameIndex + "\" />\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"fileName\" field=\"fileName\" />\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t</assertion>\n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t</validation>\n\n", charset, true);
+            }
+
+            //validation de l'extension du fichier
+            FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"Extension\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"equal\" error-code=\"Extension\" activate=\"true\">\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalValue\" value=\"" + f.getExtension() + "\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalParam\" field=\"extension\" />\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t</assertion>\n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t</validation>\n\n", charset, true);
+        }
+    }
+
+    private void emptyFileValidation(File file, final String charset) throws IOException {
+        FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"FichierVide\" activate=\"true\">\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<assertion assert-name=\"notEqual\" error-code=\"FichierVide\" activate=\"true\">\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"notEqualValue\" value=\"0\" />\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"notEqualParam\" field=\"nbOfLines\" />\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t</assertion>\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t</validation>\n\n", charset, true);
+    }
+
+    private void lineLengthValidation(FichierValidation f, File file, final String charset) throws IOException {
+        FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"validation" + f.getTypeFichier().getCode() + "Taille\" activate=\"true\"> \n \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"equal\" error-code=\"" + f.getTypeFichier().getCode() + "Taille\" activate=\"true\"> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalValue\" value=\"" + index + "\" /> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalParam\" field=\"taille\" /> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t</assertion> \n \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t</validation> \n", charset, true);
+    }
+
+    private void closeTags(File file, final String charset) throws IOException {
+        FileUtils.writeStringToFile(file, "\t\t</entity> \n\n", charset, true);
+        FileUtils.writeStringToFile(file, "\t</entities> \n", charset, true);
+        FileUtils.writeStringToFile(file, "</predicate-config>", charset, true);
+    }
+
+    private void columnsValidation(ValidateurFichier vf, File file, final String charset) throws IOException {
+        List<StructureLigne> structureLignes = StructureLigneDAO.findByValidateurFichierId(vf.getId());
+        Collections.sort(structureLignes, (StructureLigne s1, StructureLigne s2) -> new Integer(s1.getPosition()).compareTo(s2.getPosition()));
+
+        switch (vf.getDataType()) {
+            case TXT:
+                txtColumns(structureLignes, file, charset);
+                break;
+            case CSV:
+            case XLS:
+            case XLSX:
+                csvColumns(structureLignes, file, charset);
+                break;
+            default:
+                throw new UnsupportedDataTypeException("Format de données inconnu");
+        }
+    }
+
+    private void txtColumns(List<StructureLigne> structureLignes, File file, final String charset) throws IOException {
+
+        for (StructureLigne s : structureLignes) {
+            FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"" + s.getCode() + "\" activate=\"true\"> \n \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"ifTypeFichier\" error-code=\"" + s.getCode() + "\" activate=\"true\"> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"position\" value=\"" + s.getPosition() + "\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"index\" value=\"" + index + "\" /> \n", charset, true);
+
+            if (s.getTypeDonnee().getValue().equals(TypeDonnee.DATE.getValue()) && s.getSeparateurDate() != null && !s.getSeparateurDate().isEmpty()) {
+                structureLigneNewLength(s);
+            }
+
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"taille\" value=\"" + s.getTaille() + "\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"typeDonnee\" value=\"" + s.getTypeDonnee() + "\" /> \n", charset, true);
+
+            if (s.getTypeDonnee().getValue().equals(TypeDonnee.DATE.getValue())) {
+
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"formatDate\" value=\"" + s.getFormatDate() + "\" /> \n", charset, true);
+
+                if (s.getSeparateurDate() != null && !s.getSeparateurDate().isEmpty()) {
+                    FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"separateurDate\" value=\"" + s.getSeparateurDate() + "\" /> \n", charset, true);
+                }
+            }
+
+            if (s.getTypeDonnee().equals(TypeDonnee.DECIMAL)) {
+                index += s.getTaillePartieDecimal() + s.getSeparateurDecimal().length();
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"taillePartieDecimale\" value=\"" + s.getTaillePartieDecimal() + "\" /> \n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"separateurDecimal\" value=\"" + s.getSeparateurDecimal() + "\" /> \n", charset, true);
+            }
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"ligne\" field=\"ligne\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t</assertion> \n \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t</validation> \n \n", charset, true);
+
+            index += s.getTaille();
+        }
+    }
+
+    //SI on suppose que les dates sont au format yyyy-MM-dd où le tiret (-) est le séparateur dans cet exemple 
+    //on aura donc 2 séparateurs par date et dans dans ce cas, on ajoute 2, à l'index de fin de la date
+    private void structureLigneNewLength(StructureLigne s) {
+        //Si la date contient le mois, ajouter 1 à la taille pour le séparateur(-)
+        if (s.getFormatDate().contains("MM")) {
+            s.setTaille(s.getTaille() + 1);
+        }
+
+        //Si la date contient le jour, ajouter 1 à la taille pour le séparateur(-)
+        if (s.getFormatDate().contains("dd")) {
+            s.setTaille(s.getTaille() + 1);
+        }
+
+        //Si la date contient l'heure, ajouter 1 à la taille pour le séparateur (L'espace ou T) 
+        if (s.getFormatDate().contains("HH")) {
+            s.setTaille(s.getTaille() + 1);
+        }
+
+        //Si la date contient la minute, ajouter 1 à la taille pour le séparateur (:) 
+        if (s.getFormatDate().contains("mm")) {
+            s.setTaille(s.getTaille() + 1);
+        }
+
+        //Si la date contient la seconde, ajouter 1 à la taille pour le séparateur (:) 
+        if (s.getFormatDate().contains("ss")) {
+            s.setTaille(s.getTaille() + 1);
+        }
+    }
+
+    private void csvColumns(List<StructureLigne> structureLignes, File file, final String charset) throws IOException {
+        for (StructureLigne s : structureLignes) {
+            FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"" + s.getCode() + "\" activate=\"true\"> \n \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"ifTypeFichierCsv\" error-code=\"" + s.getCode() + "\" activate=\"true\"> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"position\" value=\"" + s.getPosition() + "\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"typeDonnee\" value=\"" + s.getTypeDonnee() + "\" /> \n", charset, true);
+
+            if (s.getTypeDonnee().getValue().equals(TypeDonnee.DATE.getValue())) {
+
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"formatDate\" value=\"" + s.getFormatDate() + "\" /> \n", charset, true);
+
+                if (s.getSeparateurDate() != null && !s.getSeparateurDate().isEmpty()) {
+                    structureLigneNewLength(s);
+                    FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"separateurDate\" value=\"" + s.getSeparateurDate() + "\" /> \n", charset, true);
+                }
+            } else if (s.getTypeDonnee().equals(TypeDonnee.DECIMAL)) {
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"taillePartieDecimale\" value=\"" + s.getTaillePartieDecimal() + "\" /> \n", charset, true);
+                FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"separateurDecimal\" value=\"" + s.getSeparateurDecimal() + "\" /> \n", charset, true);
+
+            }
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"taille\" value=\"" + s.getTaille() + "\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"ligne\" field=\"columns\" /> \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t\t</assertion> \n \n", charset, true);
+            FileUtils.writeStringToFile(file, "\t\t\t</validation> \n \n", charset, true);
+        }
+        FileUtils.writeStringToFile(file, "\t\t\t<validation field-name=\"NBRE_COLONNES\" activate=\"true\"> \n \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t<assertion assert-name=\"equal\" error-code=\"NBRE_COLONNES\" activate=\"true\"> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalValue\" value=\"" + structureLignes.size() + "\" /> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t\t<param-value name=\"equalParam\" field=\"nbreColonnes\" /> \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t\t</assertion> \n \n", charset, true);
+        FileUtils.writeStringToFile(file, "\t\t\t</validation> \n \n", charset, true);
+
+    }
+
+    private Boolean encryptAndZipFile(File file, Configuration config, String keyToEncrypt) throws Exception {
+        Boolean res = false;
+        Boolean bool = encryptFile(file, config, keyToEncrypt);
+
+        if (bool) {
+            JavaZipZip4Impl zip4Impl = new JavaZipZip4Impl();
+            String destinationPath = config.getOutputDir();
+            File encryptDir = new File(config.getOutputDir(), ENCRYPT_DIR);
+            File encryptFile = new File(encryptDir.getAbsolutePath(), file.getName());
+
+            zip4Impl.zipFile(encryptFile, new File(destinationPath));
+            res = true;
+
+            file.delete();
+            encryptFile.delete();
+        }
+
+        return res;
+    }
+
+    private Boolean encryptFile(File file, Configuration config, String keyToEncrypt) throws Exception {
+        File encryptDir = new File(config.getOutputDir(), ENCRYPT_DIR);
+
+        if (!encryptDir.exists()) {
+            encryptDir.mkdir();
+        }
+
+        EncryptionFace aes = new AESImpl();
+        aes.encryptFile(keyToEncrypt, 128, file.getAbsolutePath(), new File(encryptDir.getAbsolutePath(), file.getName()).getAbsolutePath());
+
+        return true;
+    }
+
+    @Override
+    public void afterSave(ActionEvent event) {
+        Configuration config = ConfigurationService.getInstance().getCurrentConfig();
+        Task<Boolean> task = new Task<Boolean>() {
+            @Override
+            protected Boolean call() throws Exception {
+                FichierValidation f = getCurrentObject();
+                return generateFichierValidation(f, config);
+            }
+        };
+        Node source = (Node) event.getSource();
+        Stage parentStage = (Stage) source.getScene().getWindow();
+
+        task.setOnRunning(e -> LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show());
+        task.setOnFailed(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            Throwable th = task.getException();
+
+            if (th instanceof ConfigException) {
+                NotificationDialog notificationDialog = new NotificationDialog(
+                        th.getMessage(), NotificationType.WARNING, parentStage);
+                notificationDialog.showNotification();
+            } else {
+                AlertMessageUtil.showAlertException(th, "Une exception s'est produite pendant la génération du fichier de validation", "Erreur");
+            }
+        });
+        task.setOnSucceeded(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            Boolean taskResult = task.getValue();
+
+            if (taskResult) {
+                NotificationDialog notificationDialog = new NotificationDialog(
+                        "Génération du fichier de validation réussie",
+                        NotificationType.SUCCESS,
+                        parentStage
+                );
+                notificationDialog.showNotification();
+            } else {
+                NotificationDialog notificationDialog = new NotificationDialog(
+                        "Echec Génération du fichier de validation. Une erreur est survenue lors du traitement",
+                        NotificationType.ERROR,
+                        parentStage
+                );
+                notificationDialog.showNotification();
+            }
+        });
+        new Thread(task).start();
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ImportTypeFichierEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ImportTypeFichierEditDialogController.java
new file mode 100644
index 0000000..b912b15
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ImportTypeFichierEditDialogController.java
@@ -0,0 +1,75 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.forms.ImportTypeFichierEditFormController;
+import com.megatim.fdxgenerator.model.ImportFile;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.event.ActionEvent;
+import javafx.scene.layout.Pane;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ImportTypeFichierEditDialogController extends AbstractEditDialogController<ImportFile> {
+
+    private ImportTypeFichierEditFormController importFileEditFormController;
+    
+    @Override
+    public String getTitle() {
+        getEditButton().setText("Importer");
+        return "Importation des type fichiers";
+    }
+
+   @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(importFileEditFormController.getClass().getResource("ImportTypeFichierEditForm.fxml"), importFileEditFormController);
+    
+    }
+
+     @Override
+    public Object getContentFormController() {
+        return importFileEditFormController;
+    }
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        importFileEditFormController = new ImportTypeFichierEditFormController();
+        super.initialize(url, rb); 
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        getCurrentObject();
+        return super.beforeSave(event);
+    }
+
+    @Override
+    protected void afterBindCurrentObjectWithFormField(ImportFile bindObject, Object formController, TypeOperation typeOperation) {
+        super.afterBindCurrentObjectWithFormField(bindObject, formController, typeOperation); 
+    }
+
+    @Override
+    protected void beforeBindCurrentObjectWithFormField(ImportFile bindObject, Object formController, TypeOperation typeOperation) {
+        super.beforeBindCurrentObjectWithFormField(bindObject, formController, typeOperation);
+    }
+
+    @Override
+    protected void afterBindFormFieldWithCurrentObject(ImportFile bindObject, Object formController, TypeOperation typeOperation) {
+        super.afterBindFormFieldWithCurrentObject(bindObject, formController, typeOperation); 
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(ImportFile bindObject, Object formController, TypeOperation typeOperation) {
+        super.beforeBindFormFieldWithCurrentObject(bindObject, formController, typeOperation); 
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/MainController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/MainController.java
new file mode 100644
index 0000000..9eeae2c
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/MainController.java
@@ -0,0 +1,288 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMLController.java to edit this template
+ */
+package com.megatim.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.abstracts.AbstractMainDialogController;
+import com.megatimfx.common.abstracts.context.AbstractViewContext;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatim.fdxgenerator.model.Configuration;
+import com.megatim.fdxgenerator.model.FichierValidation;
+import com.megatim.fdxgenerator.model.ImportFile;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.model.dao.HibernateUtil;
+import com.megatim.fdxgenerator.service.ConfigurationService;
+import com.megatim.fdxgenerator.service.ImportFileService;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javafx.concurrent.Task;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.MenuItem;
+import javafx.scene.control.ProgressIndicator;
+import javafx.scene.control.Tooltip;
+import javafx.scene.layout.VBox;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import javafx.stage.StageStyle;
+
+/**
+ * FXML Controller class
+ *
+ * @author mela
+ */
+public class MainController implements Initializable {
+
+    @FXML
+    private VBox mainContainer;
+
+    @FXML
+    public MenuItem configMenuItem;
+
+    private Stage parent;
+
+    @FXML
+    ProgressIndicator indicator;
+
+    @FXML
+    Label labelVersion;
+
+    @FXML
+    Button pinButton;
+
+    ConfigEditDialogController configEditDialogController;
+    
+   
+    @FXML
+    private Button btnGenValidateur;
+
+    /**
+     * Initializes the controller class.
+     *
+     * @param url
+     * @param rb
+     */
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+    }
+
+    private void setStage(Parent root) {
+        Scene scene = new Scene(root);
+        Stage stage = new Stage();
+
+        stage.setScene(scene);
+        stage.initStyle(StageStyle.UNDECORATED);
+        stage.initModality(Modality.APPLICATION_MODAL);
+        
+        //On ajoute les tooltips aux boutons
+        addToolTipBoutons();
+        
+        stage.show();
+    }
+
+    @FXML
+    public void openTypeFichierDialog(ActionEvent event) {
+        try {
+
+            FXMLLoader loader = new FXMLLoader(
+                    (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null)
+                    ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml")
+                    : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL()
+            );
+            loader.setControllerFactory(param -> new TypeFichierListDialogController());
+            Parent root = loader.load();
+
+            setStage(root);
+        } catch (IOException ex) {
+            Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+        }
+    }
+
+    @FXML
+    public void openValidateurFichierDialog(ActionEvent event) {
+        try {
+
+            FXMLLoader loader = new FXMLLoader(
+                    (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null)
+                    ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml")
+                    : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL()
+            );
+            loader.setControllerFactory(param -> new ValidateurFichierListDialogController());
+            Parent root = loader.load();
+            setStage(root);
+        } catch (IOException ex) {
+            Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+        }
+    }
+
+    @FXML
+    public void openStructureLigneDialog(ActionEvent event) {
+        try {
+
+            FXMLLoader loader = new FXMLLoader(
+                    (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null)
+                    ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml")
+                    : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL()
+            );
+            loader.setControllerFactory(param -> new StructureLigneListDialogController());
+            Parent root = loader.load();
+            setStage(root);
+        } catch (IOException ex) {
+            Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+        }
+    }
+
+    @FXML
+    public void openFichierValidationDialog(ActionEvent event) {
+
+        try {
+
+            FXMLLoader loader = new FXMLLoader(
+                    (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null)
+                    ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml")
+                    : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL()
+            );
+
+            FichierValidationEditDialogController controller = new FichierValidationEditDialogController();
+
+            loader.setControllerFactory(param -> controller);
+
+            Parent root = loader.load();
+            Stage stage = (Stage) mainContainer.getScene().getWindow();
+
+            controller.initData(stage, TypeOperation.ADD, new FichierValidation(), null, null, true);
+
+            setStage(root);
+
+        } catch (IOException ex) {
+
+            Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+
+        }
+
+    }
+
+    @FXML
+    public void openImportTypeFichierDialog(ActionEvent event) {
+        try {
+
+            FXMLLoader loader = new FXMLLoader(
+                    (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null)
+                    ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml")
+                    : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL()
+            );
+            ImportTypeFichierEditDialogController controller = new ImportTypeFichierEditDialogController();
+            loader.setControllerFactory(param -> controller);
+
+            Parent root = loader.load();
+            Stage stage = (Stage) mainContainer.getScene().getWindow();
+
+            ImportFile imp = new ImportFile();
+            imp.setType(TypeFichier.class);
+            controller.initData(stage, TypeOperation.ADD, imp, ImportFileService.getInstance(), null, false);
+
+            setStage(root);
+        } catch (IOException ex) {
+            Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+        }
+    }
+
+    @FXML
+    public void openConfigDialog(ActionEvent event) {
+        Task<Configuration> task = new Task() {
+
+            @Override
+            protected Object call() throws Exception {
+                return ConfigurationService.getInstance().getCurrentConfig();
+            }
+        };
+        Thread th = new Thread(task);
+        th.setDaemon(true);
+        th.start();
+
+        task.setOnSucceeded(e -> {
+            try {
+
+                FXMLLoader loader = new FXMLLoader(
+                        (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null)
+                        ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml")
+                        : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL()
+                );
+
+                configEditDialogController = new ConfigEditDialogController();
+
+                loader.setControllerFactory(param -> configEditDialogController);
+                Parent root = loader.load();
+                parent = (Stage) mainContainer.getScene().getWindow();
+
+                Configuration config = task.getValue();
+                if (config == null) {
+                    configEditDialogController.initData(parent, TypeOperation.ADD, new Configuration(), ConfigurationService.getInstance(), null, false);
+                } else {
+                    configEditDialogController.initData(parent, TypeOperation.UPDATE, config, ConfigurationService.getInstance(), null, false);
+                }
+                configMenuItem.setDisable(false);
+
+                setStage(root);
+            } catch (IOException ex) {
+                Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, null, ex);
+            }
+
+        });
+        task.setOnRunning(e -> configMenuItem.setDisable(true));
+    }
+
+    @FXML
+    public void quit(ActionEvent event) {
+        HibernateUtil.shutdown();
+        System.exit(0);
+    }
+
+    public ProgressIndicator getIndicator() {
+        return indicator;
+    }
+
+    public void setIndicator(ProgressIndicator indicator) {
+        this.indicator = indicator;
+    }
+
+    public Label getLabelVersion() {
+        return labelVersion;
+    }
+
+    public void setLabelVersion(Label labelVersion) {
+        this.labelVersion = labelVersion;
+    }
+
+    public Button getPinButton() {
+        return pinButton;
+    }
+
+    public void setPinButton(Button pinButton) {
+        this.pinButton = pinButton;
+    }
+
+    private void addToolTipBoutons() {
+
+        //Variables
+        Tooltip tooltipGenValidateur = new Tooltip("Importation des formats de validation");
+
+        //On set le styles
+        tooltipGenValidateur.setStyle("-fx-background-color: rgba(216, 215, 208, 1); -fx-text-fill: black;");
+
+        //On set les toolTips
+        btnGenValidateur.setTooltip(tooltipGenValidateur);
+
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneEditDialogController.java
new file mode 100644
index 0000000..2e22aa2
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneEditDialogController.java
@@ -0,0 +1,204 @@
+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.TypeDonnee;
+import com.megatim.fdxgenerator.forms.StructureLigneEditFormController;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.event.ActionEvent;
+import javafx.scene.Node;
+import javafx.scene.layout.Pane;
+import javafx.stage.Stage;
+
+public class StructureLigneEditDialogController extends AbstractEditDialogController<StructureLigne> {
+
+    private StructureLigneEditFormController structureLigneEditFormController;
+
+    private ObservableList<StructureLigne> selectedStructureLignes = FXCollections.observableArrayList();
+
+    private TypeFichier typeFichier;
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        super.initialize(url, rb);
+    }
+
+    @Override
+    public String getTitle() {
+        return "Editer une structure de ligne";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(
+                structureLigneEditFormController.getClass().getResource("StructureLigneEditForm.fxml"),
+                structureLigneEditFormController
+        );
+    }
+
+    @Override
+    public Object getContentFormController() {
+        return structureLigneEditFormController;
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(StructureLigne bindObject, Object formController, TypeOperation typeOperation) {
+
+        if (formController instanceof StructureLigneEditFormController) {
+
+            if (typeOperation.equals(TypeOperation.UPDATE) || typeOperation.equals(TypeOperation.VIEW)) {
+                
+                if (bindObject.getTypeDonnee().equals(TypeDonnee.DATE) && App.SEPARATEURS_DATE.containsKey(bindObject.getSeparateurDate())) {
+                   
+                    bindObject.setDelimiteurDate(App.SEPARATEURS_DATE.get(bindObject.getSeparateurDate()));
+                }
+                if (bindObject.getTypeDonnee().equals(TypeDonnee.DECIMAL) && App.SEPARATEURS_DECIMAUX.containsKey(bindObject.getSeparateurDecimal())) {
+                   
+                    bindObject.setDelimiteurDecimal(App.SEPARATEURS_DECIMAUX.get(bindObject.getSeparateurDecimal()));
+                }
+            }
+
+        }
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        Boolean proceed = super.beforeSave(event);
+        StringBuilder message = new StringBuilder(0);
+
+        if (proceed) {
+
+            if (getCurrentObject().getTypeDonnee().equals(TypeDonnee.DATE)) {
+
+                boolean proceed1 = getCurrentObject().getFormatDate() != null
+                        && getCurrentObject().getTaille() == getCurrentObject().getFormatDate().length();
+
+                proceed = proceed && proceed1;
+
+                if (!proceed1) {
+                    message.append("Le format de la date est obligatoire et sa taille doit être égale à la taille du champ\n");
+                }
+
+                boolean proceedSeparateurDate = getCurrentObject().getDelimiteurDate() != null;
+                proceed = proceed && proceedSeparateurDate;
+
+                if (proceedSeparateurDate) {
+                    getCurrentObject().setSeparateurDate(getCurrentObject().getDelimiteurDate().getCode());
+                } else {
+                    message.append("Le séparateur de date est obligatoire\n");
+                }
+
+            }
+
+            if (getCurrentObject().getTypeDonnee().equals(TypeDonnee.DECIMAL)) {
+
+                boolean proceedSeparateurDecimal = getCurrentObject().getDelimiteurDecimal() != null;
+                proceed = proceed && proceedSeparateurDecimal;
+
+                if (proceedSeparateurDecimal) {
+                    getCurrentObject().setSeparateurDecimal(getCurrentObject().getDelimiteurDecimal().getCode());
+                } else {
+                    message.append("Le séparateur de décimal est obligatoire\n");
+                }
+
+                boolean proceedTailleDecimal = getCurrentObject().getTaillePartieDecimal() > 1;
+                proceed = proceed && proceedTailleDecimal;
+
+                if (!proceedTailleDecimal) {
+                    message.append("La taille de la partie entière doit être supérieure à 0");
+                }
+            }
+        }
+
+        if (!proceed && !message.toString().isEmpty()) {
+
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            Node source = (Node) event.getSource();
+            Stage parentStage = (Stage) source.getScene().getWindow();
+            NotificationDialog notificationDialog = new NotificationDialog(
+                    message.toString(),
+                    NotificationType.ERROR,
+                    parentStage
+            );
+
+            notificationDialog.showNotification();
+        }
+
+        return proceed;
+    }
+
+    @Override
+    protected void afterBindCurrentObjectWithFormField(StructureLigne bindObject, Object formController, TypeOperation typeOperation) {
+        if (formController instanceof StructureLigneEditFormController) {
+            if (typeFichier != null) {
+                bindObject.setId(typeFichier + "" + bindObject.getPosition());
+            }
+        }
+    }
+
+    public StructureLigneEditFormController getStructureLigneEditFormController() {
+        return structureLigneEditFormController;
+    }
+
+    public void setStructureLigneEditFormController(StructureLigneEditFormController structureLigneEditFormController) {
+        this.structureLigneEditFormController = structureLigneEditFormController;
+    }
+
+    public void setTypeFichier(TypeFichier typeFichier) {
+        this.typeFichier = typeFichier;
+    }
+
+    public void setSelectedStructureLignes(ObservableList<StructureLigne> selectedStructureLignes) {
+        this.selectedStructureLignes = selectedStructureLignes;
+    }
+
+    @Override
+    public void afterSave(ActionEvent event, Object formController, TypeOperation typeOperation) {
+
+        StructureLigneEditFormController controller = (StructureLigneEditFormController) formController;
+
+        if (getTypeOperation().equals(TypeOperation.UPDATE)) {
+
+            boolean exists = false;
+
+            ObservableList<Integer> liste = controller.getList();
+
+            for (Integer i : liste) {
+
+                if (i.equals(controller.getInitialUpdateSelection())) {
+
+                    exists = true;
+
+                    break;
+                }
+            }
+
+            if (!exists) {
+
+                liste.add(controller.getInitialUpdateSelection());
+            }
+        }
+    }
+
+    @Override
+    protected void afterBindFormFieldWithCurrentObject(StructureLigne bindObject, Object formController, TypeOperation typeOperation) {
+        StructureLigneEditFormController controller = (StructureLigneEditFormController) formController;
+
+        if (typeOperation.equals(TypeOperation.UPDATE)) {
+            controller.setInitialUpateSelection();
+
+        }
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneListDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneListDialogController.java
new file mode 100644
index 0000000..b4761ee
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/StructureLigneListDialogController.java
@@ -0,0 +1,93 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.abstracts.AbstractMainDialogController;
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.controller.table.StructureLigneTable;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.service.StructureLigneService;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.ResourceBundle;
+import javafx.scene.control.TableColumn;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneListDialogController extends AbstractMainDialogController<StructureLigne,StructureLigne>  {
+    
+//    private StructureLigneSearchFormController structureLigneSearchFormController;
+//    private StructureLigneAdvancedSearchFormController structureLigneAdvancedSearchFormController;
+    
+    @Override
+    public GenericCrudService<StructureLigne> getGenericCrudService() {
+        return StructureLigneService.getInstance();
+    }
+
+    @Override
+    public String getTitle() {
+        return "Liste des structures lignes";
+    }
+
+    @Override
+    public Class<StructureLigne> getElementClazz() {
+        return StructureLigne.class;
+    }
+
+    @Override
+    public List<TableColumn> getElementTableColumns() {
+        return Arrays.asList(StructureLigneTable.codeColumn(),StructureLigneTable.positionColumn(),StructureLigneTable.tailleColumn(),StructureLigneTable.typeDonneeColumn());
+    }
+
+    @Override
+    public AbstractEditDialogController<StructureLigne> getAbstractEditDialogController() {
+        return new StructureLigneEditDialogController();
+    }
+
+    @Override
+    public List<SearchCriteria> getPermanentSearchCriterias() {
+        List<SearchCriteria> liste = new ArrayList<>();
+        
+        return liste;
+    }
+
+//    @Override
+//    public Object getSearchFormController() {
+//        return structureLigneSearchFormController;
+//    }
+//
+//    @Override
+//    public Pane getSearchFormPane() throws IOException {
+//        return ViewLoaderUtil.getPaneFromFxmlFile(structureLigneSearchFormController.getClass().getResource("structureLigneSearchForm.fxml"), structureLigneSearchFormController);
+//    }
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        setAddButtonDisable(true);
+        setDeleteButtonDisable(true);
+        setEditButtonDisable(true);
+        setPrintButtonDisable(true);
+//        structureLigneSearchFormController = new StructureLigneSearchFormController();
+//        structureLigneAdvancedSearchFormController = new StructureLigneAdvancedSearchFormController();
+        super.initialize(location, resources);
+    }
+
+//    @Override
+//    public Object getAdvancedSearchFormController() {
+//        return structureLigneAdvancedSearchFormController;
+//    }
+//
+//    @Override
+//    public Pane getAdvancedSearchFormPane() throws IOException {
+//        return ViewLoaderUtil.getPaneFromFxmlFile(structureLigneAdvancedSearchFormController.getClass().getResource("StructureLigneAdvancedSearchForm.fxml"), structureLigneAdvancedSearchFormController);
+//    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierEditDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierEditDialogController.java
new file mode 100644
index 0000000..5d63d99
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierEditDialogController.java
@@ -0,0 +1,74 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.enums.TypeOperation;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.forms.TypeFichierEditFormController;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.event.ActionEvent;
+import javafx.scene.layout.Pane;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierEditDialogController extends AbstractEditDialogController<TypeFichier>{
+    private TypeFichierEditFormController typeFichierEditFormController;
+
+    @Override
+    public String getTitle() {
+        return "Edition d'un type fichier";
+    }
+
+    @Override
+    public Pane getContentFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(typeFichierEditFormController.getClass().getResource("TypeFichierEditForm.fxml"), typeFichierEditFormController);
+    
+    }
+
+     @Override
+    public Object getContentFormController() {
+        return typeFichierEditFormController;
+    }
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        typeFichierEditFormController = new TypeFichierEditFormController();
+        super.initialize(url, rb); 
+    }
+
+    @Override
+    public boolean beforeSave(ActionEvent event) {
+        getCurrentObject();
+        return super.beforeSave(event);
+    }
+
+    @Override
+    protected void afterBindCurrentObjectWithFormField(TypeFichier bindObject, Object formController, TypeOperation typeOperation) {
+        super.afterBindCurrentObjectWithFormField(bindObject, formController, typeOperation); 
+    }
+
+    @Override
+    protected void beforeBindCurrentObjectWithFormField(TypeFichier bindObject, Object formController, TypeOperation typeOperation) {
+        super.beforeBindCurrentObjectWithFormField(bindObject, formController, typeOperation);
+    }
+
+    @Override
+    protected void afterBindFormFieldWithCurrentObject(TypeFichier bindObject, Object formController, TypeOperation typeOperation) {
+        super.afterBindFormFieldWithCurrentObject(bindObject, formController, typeOperation); 
+    }
+
+    @Override
+    protected void beforeBindFormFieldWithCurrentObject(TypeFichier bindObject, Object formController, TypeOperation typeOperation) {
+        super.beforeBindFormFieldWithCurrentObject(bindObject, formController, typeOperation); 
+    }
+    
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierListDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierListDialogController.java
new file mode 100644
index 0000000..805205d
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/TypeFichierListDialogController.java
@@ -0,0 +1,102 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.abstracts.AbstractMainDialogController;
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.controller.search.TypeFichierAdvancedSearchFormController;
+import com.megatim.fdxgenerator.controller.search.TypeFichierSearchFormController;
+import com.megatim.fdxgenerator.controller.table.TypeFichierTable;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.service.TypeFichierService;
+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.scene.control.TableColumn;
+import javafx.scene.layout.Pane;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierListDialogController extends AbstractMainDialogController<TypeFichier, TypeFichier> {
+
+    private TypeFichierSearchFormController typeFichierSearchFormController;
+    private TypeFichierAdvancedSearchFormController typeFichierAdvancedSearchFormController;
+
+    @Override
+    public GenericCrudService<TypeFichier> getGenericCrudService() {
+        return TypeFichierService.getInstance();
+    }
+
+    @Override
+    public String getTitle() {
+        return "Liste des type de fichiers";
+    }
+
+    @Override
+    public Class<TypeFichier> getElementClazz() {
+        return TypeFichier.class;
+    }
+
+    @Override
+    public List<TableColumn> getElementTableColumns() {
+        return Arrays.asList(TypeFichierTable.codeColumn(), TypeFichierTable.libelleColumn(), TypeFichierTable.participantColumn());
+    }
+
+    @Override
+    public AbstractEditDialogController<TypeFichier> getAbstractEditDialogController() {
+        return new TypeFichierEditDialogController();
+    }
+
+    @Override
+    public List<SearchCriteria> getPermanentSearchCriterias() {
+        List<SearchCriteria> liste = new ArrayList<>();
+
+        return liste;
+    }
+
+    @Override
+    public Object getSearchFormController() {
+        return typeFichierSearchFormController;
+    }
+
+    @Override
+    public Pane getSearchFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(typeFichierSearchFormController.getClass().getResource("TypeFichierSearchForm.fxml"), typeFichierSearchFormController);
+    }
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        
+        typeFichierSearchFormController = new TypeFichierSearchFormController();
+        typeFichierAdvancedSearchFormController = new TypeFichierAdvancedSearchFormController();
+        
+        //setDeleteButtonDisable(true);
+        setEditButtonDisable(true);
+        setPrintButtonDisable(true);
+        setDeleteButtonDisable(true);
+        setPrintButtonDisable(true);
+
+        super.initialize(location, resources);
+    }
+
+    @Override
+    public Object getAdvancedSearchFormController() {
+        return typeFichierAdvancedSearchFormController;
+    }
+
+    @Override
+    public Pane getAdvancedSearchFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(typeFichierAdvancedSearchFormController.getClass().getResource("TypeFichierAdvancedSearchForm.fxml"), typeFichierAdvancedSearchFormController);
+    }
+
+}
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;
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierListDialogController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierListDialogController.java
new file mode 100644
index 0000000..b5bfce1
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/ValidateurFichierListDialogController.java
@@ -0,0 +1,94 @@
+/*
+ * 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.fdxgenerator.controller;
+
+import com.megatimfx.common.abstracts.AbstractEditDialogController;
+import com.megatimfx.common.abstracts.AbstractMainDialogController;
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatimfx.common.utils.ViewLoaderUtil;
+import com.megatim.fdxgenerator.controller.search.ValidateurFichierAdvancedSearchFormController;
+import com.megatim.fdxgenerator.controller.search.ValidateurFichierSearchFormController;
+import com.megatim.fdxgenerator.controller.table.ValidateurFichierTable;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.service.ValidateurFichierService;
+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.scene.control.TableColumn;
+import javafx.scene.layout.Pane;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierListDialogController extends AbstractMainDialogController<ValidateurFichier,ValidateurFichier> {
+    
+    private ValidateurFichierSearchFormController validateurFichierSearchFormController;
+    private ValidateurFichierAdvancedSearchFormController validateurFichierAdvancedSearchFormController;
+    
+    @Override
+    public GenericCrudService<ValidateurFichier> getGenericCrudService() {
+        return ValidateurFichierService.getInstance();
+    }
+
+    @Override
+    public String getTitle() {
+        return "Liste des validateurs fichiers";
+    }
+
+    @Override
+    public Class<ValidateurFichier> getElementClazz() {
+        return ValidateurFichier.class;
+    }
+
+    @Override
+    public List<TableColumn> getElementTableColumns() {
+        return Arrays.asList(ValidateurFichierTable.typeFichierColumn(),ValidateurFichierTable.nombrePositionColumn());
+    }
+
+    @Override
+    public AbstractEditDialogController<ValidateurFichier> getAbstractEditDialogController() {
+        return new ValidateurFichierEditDialogController();
+    }
+
+    @Override
+    public List<SearchCriteria> getPermanentSearchCriterias() {
+        List<SearchCriteria> liste = new ArrayList<>();
+        
+        return liste;
+    }
+
+    @Override
+    public Object getSearchFormController() {
+        return validateurFichierSearchFormController;
+    }
+
+    @Override
+    public Pane getSearchFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(validateurFichierSearchFormController.getClass().getResource("ValidateurFichierSearchForm.fxml"), validateurFichierSearchFormController);
+    }
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        validateurFichierSearchFormController = new ValidateurFichierSearchFormController();
+        validateurFichierAdvancedSearchFormController = new ValidateurFichierAdvancedSearchFormController();
+        super.initialize(location, resources); 
+    }
+
+    @Override
+    public Object getAdvancedSearchFormController() {
+        return validateurFichierAdvancedSearchFormController;
+    }
+
+    @Override
+    public Pane getAdvancedSearchFormPane() throws IOException {
+        return ViewLoaderUtil.getPaneFromFxmlFile(validateurFichierAdvancedSearchFormController.getClass().getResource("ValidateurFichierAdvancedSearchForm.fxml"), validateurFichierAdvancedSearchFormController);
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneAdvancedSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneAdvancedSearchFormController.java
new file mode 100644
index 0000000..8617941
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneAdvancedSearchFormController.java
@@ -0,0 +1,13 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneAdvancedSearchFormController {
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneSearchFormController.java
new file mode 100644
index 0000000..bea0d5d
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/StructureLigneSearchFormController.java
@@ -0,0 +1,13 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneSearchFormController {
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchFormController.java
new file mode 100644
index 0000000..3f42341
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchFormController.java
@@ -0,0 +1,38 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+import com.megatimfx.common.annontations.Search;
+import com.megatimfx.common.enums.Operateur;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.TextField;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierAdvancedSearchFormController  implements Initializable {
+
+    
+    @Search(fieldName = "libelle", operateur = Operateur.LIKE, editable = false)
+    @FXML
+    private TextField libelle;
+    
+    @Search(fieldName = "codeParticipant", operateur = Operateur.LIKE, editable = false)
+    @FXML
+    private TextField participant;
+    
+    /**
+     * Initializes the controller class.
+     */
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        // TODO
+    }    
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierSearchFormController.java
new file mode 100644
index 0000000..32f15a3
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/TypeFichierSearchFormController.java
@@ -0,0 +1,31 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+import com.megatimfx.common.annontations.Search;
+import com.megatimfx.common.enums.Operateur;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.TextField;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierSearchFormController implements Initializable{
+    @Search(fieldName = "code", operateur = Operateur.LIKE)
+    @FXML
+    private TextField code;
+    
+    /**
+     * Initializes the controller class.
+     */
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        // TODO
+    }    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchFormController.java
new file mode 100644
index 0000000..654aa92
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchFormController.java
@@ -0,0 +1,32 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+import com.megatimfx.common.annontations.Search;
+import com.megatimfx.common.enums.Operateur;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.TextField;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierAdvancedSearchFormController implements Initializable {
+    
+    @Search(fieldName = "nombrePosition", operateur = Operateur.EQUALS)
+    @FXML
+    private TextField nombrePosition;
+    
+    /**
+     * Initializes the controller class.
+     */
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        // TODO
+    }    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchFormController.java
new file mode 100644
index 0000000..432eeb9
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchFormController.java
@@ -0,0 +1,87 @@
+/*
+ * 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.fdxgenerator.controller.search;
+
+import com.megatimfx.common.annontations.Search;
+import com.megatimfx.common.customcontrols.AbstractSelectionItem;
+import com.megatimfx.common.enums.Operateur;
+import com.megatimfx.components.customdialogs.AlertMessageUtil;
+import com.megatimfx.components.customdialogs.LoadinIndicatorDialogUtil;
+import com.megatim.fdxgenerator.controller.table.TypeFichierTable;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.service.TypeFichierService;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.ResourceBundle;
+import java.util.Set;
+import javafx.concurrent.Task;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.util.Pair;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierSearchFormController implements Initializable {
+
+    @Search(fieldName = "typeFichier", operateur = Operateur.EQUALS)
+    @FXML
+    private AbstractSelectionItem typeFichierAbstractSelectItem;
+    
+    private TypeFichierService typeFichierService = TypeFichierService.getInstance();
+    
+       //ELEMENTS DE CHARGEMENT
+    private final Set<TypeFichier> typeFichierSet = new HashSet<>();
+    
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        typeFichierAbstractSelectItem.setTitle("Choix du type de fichier");
+        typeFichierAbstractSelectItem.setColumns(Arrays.asList(
+                TypeFichierTable.codeColumn(),
+                TypeFichierTable.libelleColumn()
+        ));
+        typeFichierAbstractSelectItem.setSearchFieldPairs(Arrays.asList(
+                new Pair<>("code", "Code"),
+                new Pair<>("libelle", "Libellé")
+        ));
+        initElements();
+    }
+    
+     private void initElements() {
+        Task<Void> task = new Task() {
+            @Override
+            protected Object call() throws Exception {
+                typeFichierSet.clear();
+                typeFichierSet.addAll(typeFichierService.getAll());
+                //typeFichierSet.addAll(typeFichierService.findAllByCategorieFichierAndTypeExtension(CategorieFichier.STRUCTURE, TypeExtension.TEXTE));
+                return null;
+            }
+        };
+        task.setOnRunning(e -> LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show());
+        task.setOnSucceeded(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            typeFichierAbstractSelectItem.setElements(typeFichierSet);
+        });
+        task.setOnFailed(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            AlertMessageUtil.showAlertException(task.getException(),
+                    "Une exception s'est produite pendant le traitement", "Erreur");
+        });
+        Thread thread = new Thread(task);
+        thread.setDaemon(true);
+        thread.start();
+    }
+     
+     public AbstractSelectionItem<TypeFichier> getTypeFichierAbstractSelectItem() {
+        return typeFichierAbstractSelectItem;
+    }
+
+    public void setTypeFichierAbstractSelectItem(AbstractSelectionItem<TypeFichier> typeFichierAbstractSelectItem) {
+        this.typeFichierAbstractSelectItem = typeFichierAbstractSelectItem;
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/StructureLigneTable.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/StructureLigneTable.java
new file mode 100644
index 0000000..3136ac4
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/StructureLigneTable.java
@@ -0,0 +1,44 @@
+/*
+ * 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.fdxgenerator.controller.table;
+
+import com.megatim.fdxgenerator.model.StructureLigne;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.cell.PropertyValueFactory;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneTable {
+    
+    public StructureLigneTable() {
+        
+    }
+    
+    public static TableColumn<StructureLigne, String> positionColumn() {
+        TableColumn<StructureLigne, String> column = new TableColumn("Position");
+        column.setCellValueFactory(new PropertyValueFactory("position"));
+        return column;
+    }
+    
+     public static TableColumn<StructureLigne, String> codeColumn() {
+        TableColumn<StructureLigne, String> column = new TableColumn("Code");
+        column.setCellValueFactory(new PropertyValueFactory("code"));
+        return column;
+    }
+      public static TableColumn<StructureLigne, String> typeDonneeColumn() {
+        TableColumn<StructureLigne, String> column = new TableColumn("Type de données");
+        column.setCellValueFactory(new PropertyValueFactory("typeDonnee"));
+        return column;
+    }
+       public static TableColumn<StructureLigne, String> tailleColumn() {
+        TableColumn<StructureLigne, String> column = new TableColumn("Taille");
+        column.setCellValueFactory(new PropertyValueFactory("taille"));
+        return column;
+    }
+       
+       
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/TypeFichierTable.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/TypeFichierTable.java
new file mode 100644
index 0000000..2bf756b
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/TypeFichierTable.java
@@ -0,0 +1,39 @@
+/*
+ * 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.fdxgenerator.controller.table;
+
+import com.megatim.fdxgenerator.model.TypeFichier;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.cell.PropertyValueFactory;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierTable {
+    
+     private TypeFichierTable() {
+
+    }
+
+    public static TableColumn<TypeFichier, String> codeColumn() {
+        TableColumn<TypeFichier, String> column = new TableColumn("Code");
+        column.setCellValueFactory(new PropertyValueFactory("code"));
+        return column;
+    }
+
+    public static TableColumn<TypeFichier, String> libelleColumn() {
+        TableColumn<TypeFichier, String> column = new TableColumn("Libellé");
+        column.setCellValueFactory(new PropertyValueFactory("libelle"));
+        return column;
+    }
+    
+    public static TableColumn<TypeFichier, String> participantColumn() {
+        TableColumn<TypeFichier, String> column = new TableColumn("Participant");
+        column.setCellValueFactory(new PropertyValueFactory("codeParticipant"));
+        return column;
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/ValidateurFichierTable.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/ValidateurFichierTable.java
new file mode 100644
index 0000000..4224497
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/controller/table/ValidateurFichierTable.java
@@ -0,0 +1,32 @@
+/*
+ * 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.fdxgenerator.controller.table;
+
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.cell.PropertyValueFactory;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierTable {
+    
+    public ValidateurFichierTable() {
+        
+    }
+    
+     public static TableColumn<ValidateurFichier, String> typeFichierColumn() {
+        TableColumn<ValidateurFichier, String> column = new TableColumn("TypeFichier");
+        column.setCellValueFactory(new PropertyValueFactory("typeFichier"));
+        return column;
+    }
+     
+     public static TableColumn<ValidateurFichier, String> nombrePositionColumn() {
+        TableColumn<ValidateurFichier, String> column = new TableColumn("Nombre Position");
+        column.setCellValueFactory(new PropertyValueFactory("nombrePosition"));
+        return column;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/DataType.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/DataType.java
new file mode 100644
index 0000000..feaf8f0
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/DataType.java
@@ -0,0 +1,38 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.fdxgenerator.enums;
+
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public enum DataType {
+
+    CSV("CSV"), TXT("Texte(TXT)"), XLS("XLS"), XLSX("XLSX");
+
+    private final String dataType;
+
+    private DataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public static DataType of(String dataType) {
+        return Stream.of(DataType.values())
+                .filter(p -> p.getDataType().equals(dataType))
+                .findFirst()
+                .orElseThrow(IllegalArgumentException::new);
+    }
+
+    public String getDataType() {
+        return dataType;
+    }
+
+    @Override
+    public String toString() {
+        return dataType;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/TypeDonnee.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/TypeDonnee.java
new file mode 100644
index 0000000..925a657
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/enums/TypeDonnee.java
@@ -0,0 +1,46 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.fdxgenerator.enums;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public enum TypeDonnee {
+    ALPHANUMERIQUE("ALPHANUMERIQUE"),
+    NUMERIQUE("NUMERIQUE"),
+    DECIMAL("DECIMAL"),
+    DATE("DATE");
+
+    private final String value;
+
+    private TypeDonnee(String value) {
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public static TypeDonnee fromValeur(String value) {
+        switch (value) {
+            case "ALPHANUMERIQUE":
+                return TypeDonnee.ALPHANUMERIQUE;
+            case "DATE":
+                return TypeDonnee.DATE;
+            case "NUMERIQUE":
+                return TypeDonnee.NUMERIQUE;
+            case "DECIMAL" :
+                return TypeDonnee.DECIMAL;
+            default:
+                return null;
+        }
+    }
+
+    @Override
+    public String toString() {
+        return value;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/exceptions/ConfigException.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/exceptions/ConfigException.java
new file mode 100644
index 0000000..14f7800
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/exceptions/ConfigException.java
@@ -0,0 +1,24 @@
+/*
+ * 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.fdxgenerator.exceptions;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ConfigException extends RuntimeException {
+    public ConfigException(String message) {
+        super(message);
+    }
+    
+    public ConfigException(String message, Throwable cause) {
+        super(message, cause);
+    }
+    
+    public ConfigException(Throwable cause) {
+        super(cause);
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ConfigEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ConfigEditFormController.java
new file mode 100644
index 0000000..14784bf
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ConfigEditFormController.java
@@ -0,0 +1,51 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMLController.java to edit this template
+ */
+package com.megatim.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import java.io.File;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.scene.input.MouseEvent;
+import javafx.stage.DirectoryChooser;
+import javafx.stage.Stage;
+
+/**
+ * FXML Controller class
+ *
+ * @author mela
+ */
+public class ConfigEditFormController implements Initializable {
+
+    @Champ(mappedBy = "outputDir")
+    @FXML
+    private TextField outputDir;
+    
+    @FXML
+    private  Button outButton;
+    
+    /**
+     * Initializes the controller class.
+     */
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        outputDir.setEditable(Boolean.FALSE);
+    }    
+    
+     
+    @FXML
+     void outButtonOnClicked(MouseEvent evt){
+        DirectoryChooser directoryChooser = new DirectoryChooser();
+        Stage stage = (Stage)outButton.getScene().getWindow();
+        
+        File selectedDirectory = directoryChooser.showDialog(stage);
+        outputDir.setText(selectedDirectory.getAbsolutePath());
+    }
+     
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/FichierValidationEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/FichierValidationEditFormController.java
new file mode 100644
index 0000000..5427c18
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/FichierValidationEditFormController.java
@@ -0,0 +1,216 @@
+/*
+ * 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.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import com.megatimfx.common.customcontrols.AbstractSelectionItem;
+import com.megatimfx.components.customdialogs.AlertMessageUtil;
+import com.megatimfx.components.customdialogs.LoadinIndicatorDialogUtil;
+import com.megatim.fdxgenerator.controller.table.TypeFichierTable;
+import com.megatim.fdxgenerator.enums.DataType;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.service.TypeFichierService;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.ResourceBundle;
+import java.util.Set;
+import javafx.beans.value.ObservableValue;
+import javafx.collections.FXCollections;
+import javafx.concurrent.Task;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.PasswordField;
+import javafx.scene.control.TextField;
+import javafx.scene.control.TitledPane;
+import javafx.scene.image.ImageView;
+import javafx.scene.input.MouseEvent;
+import javafx.util.Pair;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class FichierValidationEditFormController implements Initializable {
+
+    @FXML
+    @Champ(mappedBy = "typeFichier", type = TypeFichier.class, update = false)
+    private AbstractSelectionItem<TypeFichier> typeFichierAbstractSelectItem;
+
+    @FXML
+    private TextField showKeyToEncrypt;
+
+    @FXML
+    @Champ(mappedBy = "formatDate")
+    private ComboBox<String> formatDate;
+
+//    @FXML
+//    @Champ(mappedBy = "extension")
+//    private ComboBox<DataType> extensionFichier;
+
+    @FXML
+    @Champ(mappedBy = "maxValueTierce", type = Integer.class)
+    private TextField MaxValueTierceTextField;
+
+    @FXML
+    @Champ(mappedBy = "protege", type = Boolean.class)
+    private CheckBox isProtegeCheckBox;
+
+    @FXML
+    @Champ(mappedBy = "validateFileName", type = Boolean.class)
+    private CheckBox validateFileNameCheckBox;
+
+    @FXML
+    private TitledPane fileNameTitledPane;
+
+    @FXML
+    private ImageView imageView;
+
+    @FXML
+    @Champ(mappedBy = "keyToEncrypt")
+    private PasswordField keyToEncryptField;
+
+    @FXML
+    @Champ(mappedBy = "keyConfirmation")
+    private PasswordField keyConfirmationField;
+
+    private final TypeFichierService typeFichierService = TypeFichierService.getInstance();
+
+    //ELEMENTS DE CHARGEMENT
+    private final Set<TypeFichier> typeFichierSet = new HashSet<>();
+
+    private boolean passwordVisible;
+
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        keyToEncryptField.setDisable(true);
+        keyConfirmationField.setDisable(true);
+        showKeyToEncrypt.setDisable(true);
+        fileNameTitledPane.setDisable(true);
+        
+        keyToDecryptWithEye();
+
+        formatDate.setPromptText("Selectionnez un format");
+        formatDate.setItems(FXCollections.observableArrayList(
+                "yyyyMMddHHmmss", "yyyyMMdd",
+                "yyyyddMMHHmmss", "yyyyddMM",
+                "MMyyyyddHHmmss", "MMyyyydd",
+                "MMddyyyHHmmss", "MMddyyy"
+        ));
+//        extensionFichier.setPromptText("Selectionnez un format");
+//        extensionFichier.setItems(FXCollections.observableArrayList(
+//                DataType.values()
+//        ));
+        typeFichierAbstractSelectItem.setTitle("Choix du type de fichier");
+        typeFichierAbstractSelectItem.setColumns(Arrays.asList(
+                TypeFichierTable.codeColumn(),
+                TypeFichierTable.libelleColumn()
+        ));
+        typeFichierAbstractSelectItem.setSearchFieldPairs(Arrays.asList(
+                new Pair<>("code", "Code"),
+                new Pair<>("libelle", "Libellé")
+        ));
+
+        MaxValueTierceTextField.textProperty().addListener((ObservableValue<? extends String> observable, String oldValue, String newValue) -> {
+            if (!newValue.matches("\\d{1,9}")) {
+                MaxValueTierceTextField.setText(newValue.replaceAll("[^\\d]", ""));
+            }
+        });
+
+        isProtegeCheckBox.selectedProperty().addListener(l -> {
+            if (isProtegeCheckBox.isSelected()) {
+                keyToEncryptField.setDisable(false);
+                keyConfirmationField.setDisable(false);
+                showKeyToEncrypt.setDisable(false);
+            }
+
+            if (!isProtegeCheckBox.isSelected()) {
+                keyToEncryptField.setDisable(true);
+                keyConfirmationField.setDisable(true);
+                showKeyToEncrypt.setDisable(true);
+            }
+        });
+        
+        validateFileNameCheckBox.selectedProperty().addListener(l -> {
+            
+            if (validateFileNameCheckBox.isSelected()) {
+                fileNameTitledPane.setDisable(false);
+            }
+
+            if (!validateFileNameCheckBox.isSelected()) {
+                fileNameTitledPane.setDisable(true);
+            }
+        });
+        
+        initElements();
+    }
+
+    private void initElements() {
+        Task<Void> task = new Task() {
+            @Override
+            protected Object call() throws Exception {
+                typeFichierSet.clear();
+                typeFichierSet.addAll(typeFichierService.getAllTypeFichWithValidateur());
+                return null;
+            }
+        };
+        task.setOnRunning(e -> LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show());
+        task.setOnSucceeded(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            typeFichierAbstractSelectItem.setElements(typeFichierSet);
+        });
+        task.setOnFailed(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            AlertMessageUtil.showAlertException(task.getException(),
+                    "Une exception s'est produite pendant le traitement", "Erreur");
+        });
+        Thread thread = new Thread(task);
+        thread.setDaemon(true);
+        thread.start();
+    }
+
+    public AbstractSelectionItem<TypeFichier> getTypeFichierAbstractSelectItem() {
+        return typeFichierAbstractSelectItem;
+    }
+
+    public void setTypeFichierAbstractSelectItem(AbstractSelectionItem<TypeFichier> typeFichierAbstractSelectItem) {
+        this.typeFichierAbstractSelectItem = typeFichierAbstractSelectItem;
+    }
+
+    public CheckBox getIsProtegeCheckBox() {
+        return isProtegeCheckBox;
+    }
+
+    public PasswordField getKeyToEncryptField() {
+        return keyToEncryptField;
+    }
+
+    public PasswordField getKeyConfirmationField() {
+        return keyConfirmationField;
+    }
+
+    @FXML
+    void eyeOnMousePressed(MouseEvent event) {
+        if (passwordVisible) {
+            showKeyToEncrypt.setVisible(false);
+            keyToEncryptField.setVisible(true);
+            passwordVisible = false;
+        } else {
+            keyToEncryptField.setVisible(false);
+            showKeyToEncrypt.setVisible(true);
+            passwordVisible = true;
+        }
+    }
+
+    private void keyToDecryptWithEye() {
+        passwordVisible = false;
+        keyToEncryptField.textProperty().bindBidirectional(showKeyToEncrypt.textProperty());
+        showKeyToEncrypt.setVisible(false);
+        keyToEncryptField.setVisible(true);
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ImportTypeFichierEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ImportTypeFichierEditFormController.java
new file mode 100644
index 0000000..5bf80aa
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ImportTypeFichierEditFormController.java
@@ -0,0 +1,74 @@
+/*
+ * 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.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import java.io.File;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.collections.FXCollections;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.TextField;
+import javafx.scene.input.MouseEvent;
+import javafx.stage.FileChooser;
+import javafx.stage.Window;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ImportTypeFichierEditFormController implements Initializable {
+    
+//    @FXML
+//    @Champ(mappedBy = "formatFichier")
+//    private ComboBox formatFichier;
+    
+    @FXML
+    @Champ(mappedBy = "delimiteurLigne")
+    private ComboBox<Delimiteur> delimiteurLigne;
+    
+    @FXML
+    @Champ(mappedBy = "delimiteurColonne")
+    private ComboBox<Delimiteur> delimiteurColonne;
+    
+    @FXML
+    @Champ(mappedBy = "filePath")
+    private TextField fileToImportTextField;
+    
+    @FXML
+    private  Button importButton;
+    
+    
+    @Override
+    public void initialize(URL location, ResourceBundle resources) {
+        delimiteurColonne.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurColonne.setItems(FXCollections.observableArrayList(
+                new Delimiteur(";", "Point-virgule ( ; )"),
+                new Delimiteur("|", "Barre verticale ( | )"),
+                new Delimiteur("\\t", "Tabulation ( \\t )")
+        ));
+        
+        delimiteurLigne.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurLigne.setItems(FXCollections.observableArrayList(
+                new Delimiteur("\\n", "Retour Charriot ( \\n )")
+        ));
+        
+        fileToImportTextField.setEditable(Boolean.FALSE);
+        fileToImportTextField.setPromptText("Selectionnez un fichier csv");
+    }
+     
+      @FXML
+     void importButtonOnClicked(MouseEvent evt){
+         FileChooser fileChooser = new FileChooser();
+        Window window = importButton.getScene().getWindow();
+        
+        File selectedFile = fileChooser.showOpenDialog(window);
+        fileToImportTextField.setText(selectedFile.getAbsolutePath());
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/StructureLigneEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/StructureLigneEditFormController.java
new file mode 100644
index 0000000..6e7a764
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/StructureLigneEditFormController.java
@@ -0,0 +1,162 @@
+package com.megatim.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import com.megatim.fdxgenerator.App;
+import static com.megatim.fdxgenerator.App.FORMATS_DATE;
+import com.megatim.fdxgenerator.enums.TypeDonnee;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.TextField;
+
+public class StructureLigneEditFormController implements Initializable {
+
+    private ObservableList<Integer> list = FXCollections.observableArrayList();
+
+//    @FXML
+//    private VBox formFieldContainer;
+//
+//    @FXML
+//    private HBox dateFormatContainer;
+
+    @FXML
+    @Champ(mappedBy = "position", type = Integer.class)
+    private ComboBox<Integer> positionComboBox;
+
+    @FXML
+    @Champ(mappedBy = "typeDonnee", type = TypeDonnee.class)
+    private ComboBox<TypeDonnee> typeDonneeComboBox;
+
+    @FXML
+    @Champ(mappedBy = "code", type = String.class)
+    private TextField codeTextField;
+
+    @FXML
+    @Champ(mappedBy = "designation", type = String.class)
+    private TextField designationTextField;
+
+    @FXML
+    @Champ(mappedBy = "taille", type = Integer.class)
+    private TextField tailleTextField;
+
+    @FXML
+    @Champ(mappedBy = "taillePartieDecimal", type = Integer.class)
+    private TextField taillePartieDecimalTextField;
+
+    @FXML
+    @Champ(mappedBy = "formatDate", type = String.class)
+    private ComboBox<String> formatDateComboBox;
+
+    @FXML
+    @Champ(mappedBy = "delimiteurDate",type = Delimiteur.class)
+    private ComboBox<Delimiteur> delimiteurDateComboBox;
+
+    @FXML
+    @Champ(mappedBy = "delimiteurDecimal",type = Delimiteur.class)
+    private ComboBox<Delimiteur> delimiteurDecimalComboBox;
+
+    private Integer initialUpdateSelection;
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+
+        formatDateComboBox.setDisable(true);
+        formatDateComboBox.setPromptText("Sélectionnez un élément dans la liste");
+        formatDateComboBox.setItems(FXCollections.observableArrayList(
+                FORMATS_DATE
+        ));
+
+        delimiteurDateComboBox.setDisable(true);
+        delimiteurDateComboBox.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurDateComboBox.setItems(FXCollections.observableArrayList(
+                App.SEPARATEURS_DATE.values()
+        ));
+        
+        taillePartieDecimalTextField.setDisable(true);
+
+        delimiteurDecimalComboBox.setDisable(true);
+        delimiteurDecimalComboBox.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurDecimalComboBox.setItems(FXCollections.observableArrayList(
+                App.SEPARATEURS_DECIMAUX.values()
+        ));
+
+        positionComboBox.setItems(list);
+        typeDonneeComboBox.setItems(FXCollections.observableArrayList(TypeDonnee.values()));
+        typeDonneeComboBox.getSelectionModel().selectFirst();
+
+        tailleTextField.textProperty().addListener((observable, oldValue, newValue) -> {
+            if (!newValue.matches("\\d*")) {
+                tailleTextField.setText(oldValue);
+            }
+        });
+
+        typeDonneeComboBox.setOnAction(event -> {
+
+            if (typeDonneeComboBox.getValue().equals(TypeDonnee.DATE)) {
+                formatDateComboBox.setDisable(false);
+                delimiteurDateComboBox.setDisable(false);
+            } else {
+                formatDateComboBox.setDisable(true);
+                delimiteurDateComboBox.setDisable(true);
+            }
+            
+             if (typeDonneeComboBox.getValue().equals(TypeDonnee.DECIMAL)) {
+                 taillePartieDecimalTextField.setDisable(false);
+                 delimiteurDecimalComboBox.setDisable(false);
+             } else {
+                  taillePartieDecimalTextField.setDisable(true);
+                 delimiteurDecimalComboBox.setDisable(true);
+             }
+
+        });
+        
+    }
+
+    public void populatePositionComboBox(int positionNumber) {
+        list.clear();
+        for (int i = 1; i <= positionNumber; i++) {
+            list.add(i);
+        }
+
+    }
+
+    public ComboBox getFormatDateComboBox() {
+        return formatDateComboBox;
+    }
+
+    public ComboBox<TypeDonnee> getTypeDonneeComboBox() {
+        return typeDonneeComboBox;
+    }
+
+    public ObservableList<Integer> getList() {
+        return list;
+    }
+
+    public ComboBox<Integer> getPositionComboBox() {
+        return positionComboBox;
+    }
+
+    public void setInitialUpateSelection() {
+
+        initialUpdateSelection = positionComboBox.getSelectionModel().getSelectedItem();
+
+    }
+
+    public Integer getInitialUpdateSelection() {
+        return initialUpdateSelection;
+    }
+
+    public ComboBox<Delimiteur> getDelimiteurDateComboBox() {
+        return delimiteurDateComboBox;
+    }
+
+    public ComboBox<Delimiteur> getDelimiteurDecimalComboBox() {
+        return delimiteurDecimalComboBox;
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/TypeFichierEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/TypeFichierEditFormController.java
new file mode 100644
index 0000000..147b30e
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/TypeFichierEditFormController.java
@@ -0,0 +1,35 @@
+/*
+ * 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.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import java.net.URL;
+import java.util.ResourceBundle;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.TextField;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierEditFormController  implements Initializable{
+    @Champ(mappedBy = "code", type = String.class)
+    @FXML
+    private TextField codeTextField;
+    
+    @Champ(mappedBy = "libelle")
+    @FXML
+    private TextField libelleTextField;
+    
+    @Champ(mappedBy = "codeParticipant")
+    @FXML
+    private TextField codeParticipantTextField;
+    
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+        // TODO
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ValidateurFichierEditFormController.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ValidateurFichierEditFormController.java
new file mode 100644
index 0000000..89045b3
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/forms/ValidateurFichierEditFormController.java
@@ -0,0 +1,230 @@
+package com.megatim.fdxgenerator.forms;
+
+import com.megatimfx.common.annontations.Champ;
+import com.megatimfx.common.customcontrols.AbstractNestedEntityTable;
+import com.megatimfx.common.customcontrols.AbstractSelectionItem;
+import com.megatimfx.components.customdialogs.AlertMessageUtil;
+import com.megatimfx.components.customdialogs.LoadinIndicatorDialogUtil;
+import com.megatim.fdxgenerator.App;
+import com.megatim.fdxgenerator.controller.table.StructureLigneTable;
+import com.megatim.fdxgenerator.controller.table.TypeFichierTable;
+import com.megatim.fdxgenerator.enums.DataType;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import com.megatim.fdxgenerator.service.StructureLigneService;
+import com.megatim.fdxgenerator.service.TypeFichierService;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.ResourceBundle;
+import java.util.Set;
+import javafx.collections.FXCollections;
+import javafx.concurrent.Task;
+import javafx.fxml.FXML;
+import javafx.fxml.Initializable;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.ComboBox;
+import javafx.scene.control.TextField;
+import javafx.util.Pair;
+
+public class ValidateurFichierEditFormController implements Initializable {
+
+    @FXML
+    @Champ(mappedBy = "typeFichier", type = TypeFichier.class, update = false)
+    private AbstractSelectionItem<TypeFichier> typeFichierAbstractSelectItem;
+
+    @FXML
+    @Champ(mappedBy = "nombrePosition", type = Integer.class, update = false)
+    private TextField nombrePositionTextField;
+
+    @FXML
+    private CheckBox saisieStructureLigneChecBox;
+
+    @FXML
+    @Champ(mappedBy = "delimiteurLigne", type = Delimiteur.class)
+    private ComboBox<Delimiteur> delimiteurLigne;
+
+    @FXML
+    @Champ(mappedBy = "delimiteurColonne", type = Delimiteur.class)
+    private ComboBox<Delimiteur> delimiteurColonne;
+
+    @FXML
+    @Champ(mappedBy = "dataType", type = DataType.class)
+    private ComboBox<DataType> dataTypeComboBox;
+
+    @FXML
+    @Champ(mappedBy = "headerPresent", type = Boolean.class)
+    private CheckBox headerPresentCheckbox;
+
+    @FXML
+    @Champ(mappedBy = "structureLignes", type = StructureLigne.class, update = true)
+    private AbstractNestedEntityTable<StructureLigne, ValidateurFichier> structureLigneAbstractTable;
+
+    private TypeFichierService typeFichierService = TypeFichierService.getInstance();
+
+    private StructureLigneService structureLigneService = StructureLigneService.getInstance();
+
+    //ELEMENTS DE CHARGEMENT
+    private final Set<TypeFichier> typeFichierSet = new HashSet<>();
+
+    @Override
+    public void initialize(URL url, ResourceBundle rb) {
+
+        saisieStructureLigneChecBox.setDisable(true);
+
+        nombrePositionTextField.setText("");
+
+        typeFichierAbstractSelectItem.setTitle("Choix du type de fichier");
+        typeFichierAbstractSelectItem.setColumns(Arrays.asList(
+                TypeFichierTable.codeColumn(),
+                TypeFichierTable.libelleColumn()
+        ));
+        typeFichierAbstractSelectItem.setSearchFieldPairs(Arrays.asList(
+                new Pair<>("code", "Code"),
+                new Pair<>("libelle", "Libellé")
+        ));
+
+        structureLigneAbstractTable.setClazz(StructureLigne.class);
+        structureLigneAbstractTable.setColums(Arrays.asList(
+                StructureLigneTable.positionColumn(),
+                StructureLigneTable.codeColumn(),
+                StructureLigneTable.typeDonneeColumn(),
+                StructureLigneTable.tailleColumn()
+        ));
+        structureLigneAbstractTable.setGenericCrudService(structureLigneService);
+
+        saisieStructureLigneChecBox.setOnAction(event -> {
+            typeFichierAbstractSelectItem.setDisable(saisieStructureLigneChecBox.isSelected());
+            nombrePositionTextField.setDisable(saisieStructureLigneChecBox.isSelected());
+        });
+
+        saisieStructureLigneChecBox.selectedProperty().addListener((observable, oldValue, newValue) -> {
+            if (newValue) {
+                typeFichierAbstractSelectItem.setDisable(true);
+                nombrePositionTextField.setDisable(true);
+                saisieStructureLigneChecBox.setDisable(true);
+            }
+        });
+
+        typeFichierAbstractSelectItem.selectedElementProperty().addListener((observable, oldValue, newValue) -> {
+            if (newValue != null) {
+                enableCheckBox();
+            }
+        });
+
+        nombrePositionTextField.textProperty().addListener((observable, oldValue, newValue) -> {
+            if (newValue.matches("\\d*")) {
+                if (!newValue.isEmpty()) {
+                    enableCheckBox();
+                } else {
+                    saisieStructureLigneChecBox.setDisable(true);
+                }
+            } else {
+                nombrePositionTextField.setText(oldValue);
+            }
+        });
+
+        delimiteurColonne.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurColonne.setItems(FXCollections.observableArrayList(
+                App.DELIMITEURS_COLONNE.values()
+        ));
+        delimiteurColonne.setDisable(true);
+
+        delimiteurLigne.setPromptText("Sélectionnez un élément dans la liste");
+        delimiteurLigne.setItems(FXCollections.observableArrayList(
+                App.DELIMITEURS_LIGNE.values()
+        ));
+        delimiteurLigne.setDisable(true);
+
+        dataTypeComboBox.setPromptText("Sélectionnez un élément dans la liste");
+
+        dataTypeComboBox.setItems(FXCollections.observableArrayList(
+                DataType.values()
+        ));
+
+        initElements();
+    }
+
+    private void initElements() {
+        Task<Void> task = new Task() {
+            @Override
+            protected Object call() throws Exception {
+                typeFichierSet.clear();
+                typeFichierSet.addAll(typeFichierService.getAllTypeFichWithoutValidateur());
+                return null;
+            }
+        };
+        task.setOnRunning(e -> LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().show());
+        task.setOnSucceeded(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            typeFichierAbstractSelectItem.setElements(typeFichierSet);
+        });
+        task.setOnFailed(e -> {
+            LoadinIndicatorDialogUtil.getLoadingIndicatorDialog().hide();
+            AlertMessageUtil.showAlertException(task.getException(),
+                    "Une exception s'est produite pendant le traitement", "Erreur");
+        });
+        Thread thread = new Thread(task);
+        thread.setDaemon(true);
+        thread.start();
+    }
+
+    public void enableCheckBox() {
+        try {
+            int position = Integer.valueOf(nombrePositionTextField.getText());
+            saisieStructureLigneChecBox.setDisable(typeFichierAbstractSelectItem == null || position <= 0);
+        } catch (NumberFormatException e) {
+            saisieStructureLigneChecBox.setDisable(true);
+        }
+    }
+
+    public AbstractSelectionItem<TypeFichier> getTypeFichierAbstractSelectItem() {
+        return typeFichierAbstractSelectItem;
+    }
+
+    public void setTypeFichierAbstractSelectItem(AbstractSelectionItem<TypeFichier> typeFichierAbstractSelectItem) {
+        this.typeFichierAbstractSelectItem = typeFichierAbstractSelectItem;
+    }
+
+    public TextField getNombrePositionTextField() {
+        return nombrePositionTextField;
+    }
+
+    public void setNombrePositionTextField(TextField nombrePositionTextField) {
+        this.nombrePositionTextField = nombrePositionTextField;
+    }
+
+    public CheckBox getSaisieStructureLigneChecBox() {
+        return saisieStructureLigneChecBox;
+    }
+
+    public void setSaisieStructureLigneChecBox(CheckBox saisieStructureLigneChecBox) {
+        this.saisieStructureLigneChecBox = saisieStructureLigneChecBox;
+    }
+
+    public AbstractNestedEntityTable<StructureLigne, ValidateurFichier> getStructureLigneAbstractTable() {
+        return structureLigneAbstractTable;
+    }
+
+    public void setStructureLigneAbstractTable(AbstractNestedEntityTable<StructureLigne, ValidateurFichier> structureLigneAbstractTable) {
+        this.structureLigneAbstractTable = structureLigneAbstractTable;
+    }
+
+    public ComboBox<Delimiteur> getDelimiteurLigne() {
+        return delimiteurLigne;
+    }
+
+    public ComboBox<Delimiteur> getDelimiteurColonne() {
+        return delimiteurColonne;
+    }
+
+    public ComboBox<DataType> getDataTypeComboBox() {
+        return dataTypeComboBox;
+    }
+
+    public CheckBox getHeaderPresentCheckbox() {
+        return headerPresentCheckbox;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/Configuration.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/Configuration.java
new file mode 100644
index 0000000..f1e0c80
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/Configuration.java
@@ -0,0 +1,28 @@
+/*
+ * 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.fdxgenerator.model;
+
+import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.validation.constraints.NotEmpty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter @Setter
+@Entity
+public class Configuration implements Serializable {
+    @Id
+    @GeneratedValue
+    private Long id;
+    
+    @NotEmpty(message= "Le chemin vers le repertoire est obligatoire")
+    private String outputDir;
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/FichierValidation.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/FichierValidation.java
new file mode 100644
index 0000000..3e00fa1
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/FichierValidation.java
@@ -0,0 +1,49 @@
+/*
+ * 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.fdxgenerator.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import com.megatim.fdxgenerator.annotations.ConfigConstraint;
+import com.megatim.fdxgenerator.annotations.FileNameConstraint;
+import com.megatim.fdxgenerator.annotations.KeyToDecryptConstraint;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter
+@Setter
+@ConfigConstraint(groups = {ViewFormValidationGroup.class})
+@KeyToDecryptConstraint(groups = {ViewFormValidationGroup.class})
+@FileNameConstraint(groups = {ViewFormValidationGroup.class})
+public class FichierValidation {
+
+    @NotNull(message = "Le type de fichier est obligatoire", groups = {ViewFormValidationGroup.class})
+    private TypeFichier typeFichier;
+
+    private String keyToEncrypt;
+
+    private String keyConfirmation;
+
+    private boolean protege;
+
+    private boolean validateFileName;
+
+    @Pattern(regexp = "y{4}((M{2}){0,1})((d{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "y{4}((d{2}){0,1})((M{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "M{2}((y{4}){0,1})((d{2}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})|"
+            + "M{2}((d{2}){0,1})((y{4}){0,1})((H{2}){0,1})((m{2}){0,1})((s{2}){0,1})",
+            groups = {ViewFormValidationGroup.class},
+            message = "Format Date yyyy : Année, MM : Mois, dd : Jour , HH : Heure, mm: Minute, ss : Seconde")
+    private String formatDate;
+
+    private String extension = "txt";
+    
+    private int maxValueTierce;
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ImportFile.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ImportFile.java
new file mode 100644
index 0000000..30face9
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ImportFile.java
@@ -0,0 +1,37 @@
+/*
+ * 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.fdxgenerator.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter @Setter
+public class ImportFile<T> {
+    
+    @NotEmpty(message = "Le fichier à importer est obligatoire" , groups = {ViewFormValidationGroup.class})
+    @Pattern(regexp=".+\\.csv", flags = Pattern.Flag.CASE_INSENSITIVE, message="Bien vouloir sélectionner un fichier csv" , groups = {ViewFormValidationGroup.class})
+    private String filePath;
+    
+//    @NotEmpty(message = "Le format du fichier est obligatoire" , groups = {ViewFormValidationGroup.class})
+//    private String formatFichier;
+    
+    @NotNull(message = "Le délimiteur de ligne est obligatoire" , groups = {ViewFormValidationGroup.class})
+    private Delimiteur delimiteurLigne;
+    
+    @NotNull(message = "Le délimiteur de colonne est obligatoire" , groups = {ViewFormValidationGroup.class})
+    private Delimiteur delimiteurColonne;
+    
+    //type des objets qui vont contenir les données extraites
+    Class<T> type;
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/StructureLigne.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/StructureLigne.java
new file mode 100644
index 0000000..9439f90
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/StructureLigne.java
@@ -0,0 +1,94 @@
+/*
+ * 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.fdxgenerator.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import com.megatim.fdxgenerator.enums.TypeDonnee;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Transient;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.validator.constraints.Range;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Entity
+@Getter
+@Setter
+//@TailleFormatDateConstraint(groups = {ViewFormValidationGroup.class})
+public class StructureLigne implements Serializable {
+    @Id
+//    @NotEmpty(message = "L'identifiant est obligatoire", groups = {ViewFormValidationGroup.class})
+    private String id;
+
+    @Range(min = 1, message = "La position doit être supérieure à 0", groups = {ViewFormValidationGroup.class})
+    private int position;
+
+    @NotEmpty(message = "Le code est obligatoire", groups = {ViewFormValidationGroup.class})
+    private String code;
+
+    private String designation;
+
+    @Range(min = 1, message = "La taille du champ doit être supérieure à 0", groups = {ViewFormValidationGroup.class})
+    private int taille;
+    
+    private int taillePartieDecimal;
+
+    private String source;
+    
+    private String formatDate;
+    
+    private String separateurDate;
+    
+    private String separateurDecimal;
+    
+    @Transient
+    private Delimiteur delimiteurDate;
+    
+    @Transient
+    private Delimiteur delimiteurDecimal;
+
+    @Enumerated(EnumType.STRING)
+    @NotNull(message = "Le type de données est obligatoire", groups = {ViewFormValidationGroup.class})
+    private TypeDonnee typeDonnee;
+
+    @NotNull(message = "Le validateur de fichier doit être indiqué")
+    @ManyToOne
+    private ValidateurFichier validateurFichier;
+    
+    @Override
+    public String toString() {
+        return this.code + " - " + this.designation;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof StructureLigne)) {
+            return false;
+        }
+        final StructureLigne other = (StructureLigne) obj;
+        if (this.getId() != null && !this.getId().equals(other.getId())) {
+            return false;
+        }
+        return true;
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/TypeFichier.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/TypeFichier.java
new file mode 100644
index 0000000..2f5cf5f
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/TypeFichier.java
@@ -0,0 +1,54 @@
+/*
+ * 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.fdxgenerator.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import java.io.Serializable;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.validation.constraints.NotEmpty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Entity
+@Getter
+@Setter
+public class TypeFichier implements Serializable {
+
+    @Id
+    @NotEmpty(message = "Le code type de fichier est obligatoire" , groups = {ViewFormValidationGroup.class})
+    private String code;
+
+    private String libelle;
+    
+    private String codeParticipant;
+    
+    @Override
+    public String toString() {
+        return this.getCode() + " - " + this.getLibelle();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof TypeFichier)) {
+            return false;
+        }
+        final TypeFichier other = (TypeFichier) obj;
+        if (this.getCode() != null && !this.getCode().equals(other.getCode())) {
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ValidateurFichier.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ValidateurFichier.java
new file mode 100644
index 0000000..203b88b
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/ValidateurFichier.java
@@ -0,0 +1,88 @@
+/*
+ * 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.fdxgenerator.model;
+
+import com.megatimfx.common.validationgroups.ViewFormValidationGroup;
+import com.megatim.fdxgenerator.enums.DataType;
+import com.megatim.fdxgenerator.pojo.Delimiteur;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.Set;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.persistence.Transient;
+import javax.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.validator.constraints.Range;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Entity
+@Getter
+@Setter
+public class ValidateurFichier implements Serializable {
+
+    @Id
+    @NotNull(message = "Aucun identifiant spécifié", groups = {ViewFormValidationGroup.class})
+    private String id;
+
+    @Range(min = 1, message = "Le nombre de position doit être supérieure à 0", groups = {ViewFormValidationGroup.class})
+    private int nombrePosition;
+
+    //private String typeFichierCode;
+    @NotNull(message = "Le type de fichier est obligatoire", groups = {ViewFormValidationGroup.class})
+    @ManyToOne
+    private TypeFichier typeFichier;
+
+    @Transient
+    private Delimiteur delimiteurLigne;
+
+    @Transient
+    private Delimiteur delimiteurColonne;
+
+    private String codeDelimiteurLigne;
+
+    private String codeDelimiteurColonne;
+
+    private boolean headerPresent;
+
+    @NotNull(message = "Le format du fichier de données est obligatoire", groups = {ViewFormValidationGroup.class})
+    @Enumerated(EnumType.STRING)
+    private DataType dataType;
+
+    @OneToMany(mappedBy = "validateurFichier", cascade = CascadeType.ALL)
+    private Set<StructureLigne> structureLignes = new HashSet<>();
+
+    @Override
+    public String toString() {
+        return this.typeFichier.toString();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof ValidateurFichier)) {
+            return false;
+        }
+        final ValidateurFichier other = (ValidateurFichier) obj;
+        if (this.getTypeFichier() != null && !this.getTypeFichier().equals(other.getTypeFichier())) {
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/AbstractDAO.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/AbstractDAO.java
new file mode 100644
index 0000000..0f9ec2b
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/AbstractDAO.java
@@ -0,0 +1,281 @@
+/*
+ * 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.fdxgenerator.model.dao;
+
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.utilities.PaginationElts;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.Session;
+
+/**
+ *
+ * @author mela
+ */
+@Getter
+@Setter
+public class AbstractDAO<T> {
+
+    private Class<T> clazz;
+    private PaginationElts pagination;
+
+    public AbstractDAO(Class<T> clas) {
+        clazz = clas;
+        pagination = new PaginationElts();
+    }
+
+    public <T> T add(T element) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            session.beginTransaction();
+            session.persist(element);
+            session.getTransaction().commit();
+            session.refresh(element);
+        }
+        return element;
+    }
+
+    public <T> T edit(T element) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            session.beginTransaction();
+            session.update(element);
+            session.getTransaction().commit();
+            session.refresh(element);
+        }
+        return element;
+    }
+
+    public void delete(T element) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            session.beginTransaction();
+            session.delete(element);
+            session.getTransaction().commit();
+        }
+    }
+
+    public void deleteAll(String tableName) {
+        List<T> liste = getAll(tableName);
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            session.beginTransaction();
+            liste.forEach(t -> session.delete(t));
+            session.getTransaction().commit();
+        }
+    }
+
+    public <Optional> T find(T element) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            return session.find(clazz, element);
+        }
+    }
+
+    public List<T> getAll(String tableName) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            return session.createQuery("from " + tableName).getResultList();
+        }
+    }
+
+    public List<T> getAllByPage(int indexDebut, int numberOfElt, List<SearchCriteria> searchCriterias) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
+            CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(clazz);
+            Root<T> root = criteriaQuery.from(clazz);
+            List<Predicate> predicates = createPedicates(searchCriterias, criteriaBuilder, root);
+
+            CriteriaQuery<T> cq = criteriaQuery.select(root);
+
+            cq = cq.select(root).where(predicates.toArray(new Predicate[predicates.size()]));
+
+            TypedQuery<T> typedQuery = session.createQuery(cq);
+
+            typedQuery.setFirstResult(indexDebut);
+            typedQuery.setMaxResults(numberOfElt);
+            List<T> liste = typedQuery.getResultList();
+            
+            return liste;
+        }
+    }
+
+    private long count(List<SearchCriteria> searchCriterias) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            CriteriaBuilder qb = session.getCriteriaBuilder();
+            CriteriaQuery<Long> cq = qb.createQuery(Long.class);
+            Root<T> root = cq.from(clazz);
+            List<Predicate> predicates = createPedicates(searchCriterias, qb, root);
+
+            cq.select(qb.count(root));
+            cq.where(predicates.toArray(new Predicate[predicates.size()]));
+
+            return (long) session.createQuery(cq).getSingleResult();
+        }
+    }
+
+    public PaginationElts initPaginationElts(int pageNumber, List<SearchCriteria> searchCriterias) {
+        int indexDebut = pageNumber * pagination.getNbEltsPerPage();
+
+        if (clazz.equals(ValidateurFichier.class)) {
+            System.out.println("in custom getAllByPage");
+            pagination.setListe(ValidateurFichierDAO.getAllByPage(indexDebut, pagination.getNbEltsPerPage(), searchCriterias));
+        } else {
+            pagination.setListe(getAllByPage(indexDebut, pagination.getNbEltsPerPage(), searchCriterias));
+        }
+
+        pagination.setTotalElts(count(searchCriterias));
+        pagination.setPage(pageNumber);
+
+        if (pageNumber == 0) {
+            pagination.setNumberOfElts(pagination.getListe().size());
+        } else {
+            pagination.setNumberOfElts(pageNumber * pagination.getNbEltsPerPage() + pagination.getListe().size());
+        }
+
+        pagination.setNumberOfPage((pagination.getTotalElts() % pagination.getNbEltsPerPage() == 0) ? (pagination.getTotalElts() / pagination.getNbEltsPerPage())
+                : (pagination.getTotalElts() / pagination.getNbEltsPerPage()) + 1);
+
+        return pagination;
+    }
+
+    /**
+     * Méthode qui retounre la liste des champs de la classe clazz
+     *
+     * @return
+     */
+    private Map<String, Field> getClassFields() {
+        Field[] fields = clazz.getDeclaredFields();
+        Map<String, Field> mapOfFields = new HashMap<>();
+        for (Field field : fields) {
+            mapOfFields.put(field.getName(), field);
+        }
+
+        return mapOfFields;
+    }
+
+    /**
+     * Méthode qui vérifie que le champ "fieldValue" de l'objet searchCriteria
+     * est du même type que le champ "fieldName" dans la classe clazz
+     *
+     * @param field : contient les informations sur le champ correspondant
+     * @param value : valeur dont on veut vérifier le type
+     * @return : retourne vrai sivalue est du même type que celui renseigné dans
+     * field
+     */
+    private boolean isFieldAndValueOfSameType(Field field, Object value) {
+        boolean result = true;
+        try {
+            field.getType().cast(value);
+        } catch (ClassCastException ex) {
+            result = false;
+        }
+        return result;
+        //String className = field.getType().getName();
+    }
+
+    /**
+     * Méthode qui filtre la liste des critères afin de ne garder que ceux qui
+     * respectent le type du champ correspondant dans la classe et ceux dont le
+     * fieldName correspond à un champ de la classe clazz
+     *
+     * @param searchCriterias
+     * @return
+     */
+    private List<SearchCriteria> verifySearchCriteria(List<SearchCriteria> searchCriterias) {
+        Map<String, Field> mapOfFields = getClassFields();
+
+        //Retire les critères dont le fieldName ne correspond à aucun champ de la classe clazz
+        for (SearchCriteria criteria : searchCriterias) {
+            if (!mapOfFields.containsKey(criteria.getFieldName())) {
+                searchCriterias.remove(criteria);
+//                continue;
+            }
+
+//            Retire les critères dont le type de fieldValue ne correspond pas au type du champ dans la classe clazz
+//            if(!isFieldAndValueOfSameType(mapOfFields.get(criteria.getFieldName()),criteria.getFieldValue())){
+//                searchCriterias.remove(criteria);
+//            }
+        }
+        return searchCriterias;
+    }
+
+    /**
+     * Méthode qui les prédicats à partir des critères de recherche
+     *
+     * @param searchCriterias
+     * @param cb
+     * @return
+     */
+    public List<Predicate> createPedicates(List<SearchCriteria> searchCriterias, CriteriaBuilder cb, Root<T> root) {
+        List<Predicate> predicates = new ArrayList<>();
+
+        searchCriterias = verifySearchCriteria(searchCriterias);
+        searchCriterias.parallelStream().forEach(s -> {
+            Predicate predicate = null;
+            switch (s.getOperateur()) {
+                case EQUALS:
+                    predicate = cb.equal(root.get(s.getFieldName()), s.getFieldValue());
+                    predicates.add(predicate);
+                    break;
+
+                case NOT_EQUALS:
+                    predicate = cb.notEqual(root.get(s.getFieldName()), s.getFieldValue());
+                    predicates.add(predicate);
+                    break;
+
+                case LIKE:
+                    if (s.getFieldValue() instanceof String) {
+                        predicate = cb.like(root.get(s.getFieldName()), "%" + s.getFieldValue().toString() + "%");
+                        predicates.add(predicate);
+                    }
+                    break;
+
+                case GREATER_THAN:
+                    if (s.getFieldValue() instanceof Number) {
+                        predicate = cb.gt(root.get(s.getFieldName()), (Number) s.getFieldValue());
+                        predicates.add(predicate);
+                    }
+                    break;
+
+                case GREATER_OR_EQUALS_THAN:
+                    if (s.getFieldValue() instanceof Number) {
+                        predicate = cb.ge(root.get(s.getFieldName()), (Number) s.getFieldValue());
+                        predicates.add(predicate);
+                    }
+                    break;
+
+                case LESS_THAN:
+                    if (s.getFieldValue() instanceof Number) {
+                        predicate = cb.lt(root.get(s.getFieldName()), (Number) s.getFieldValue());
+                        predicates.add(predicate);
+                    }
+                    break;
+
+                case _LESS_OR_EQUALS_THAN:
+                    if (s.getFieldValue() instanceof Number) {
+                        predicate = cb.le(root.get(s.getFieldName()), (Number) s.getFieldValue());
+                        predicates.add(predicate);
+                    }
+                    break;
+                case IN:
+                    if (s.getFieldValue() instanceof java.util.Collection) {
+                        predicate = root.get(s.getFieldName()).in(s.getFieldValue());
+                        predicates.add(predicate);
+                    }
+                    break;
+                default:
+
+            }
+        });
+
+        return predicates;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/HibernateUtil.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/HibernateUtil.java
new file mode 100644
index 0000000..1969d1d
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/HibernateUtil.java
@@ -0,0 +1,48 @@
+/*
+ * 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.fdxgenerator.model.dao;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.boot.Metadata;
+import org.hibernate.boot.MetadataSources;
+import org.hibernate.boot.registry.StandardServiceRegistry;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
+
+/**
+ *
+ * @author mela
+ */
+public class HibernateUtil {
+
+    private static SessionFactory sessionFactory;
+
+    private HibernateUtil() {
+        
+    }
+    
+    public static synchronized SessionFactory getSessionFactory() {
+        try {
+            if (sessionFactory == null) {
+                StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
+                        //                        .configure("hibernate.cfg.xml").build();
+                        .configure("file:hibernate.cfg.xml").build();
+
+                Metadata metaData = new MetadataSources(standardRegistry)
+                        .getMetadataBuilder()
+                        .build();
+
+                sessionFactory = metaData.getSessionFactoryBuilder().build();
+            }
+            return sessionFactory;
+        } catch (Throwable ex) {
+            throw new ExceptionInInitializerError(ex);
+        }
+    }
+
+    public static void shutdown() {
+        if(sessionFactory != null) 
+            sessionFactory.close();
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/StructureLigneDAO.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/StructureLigneDAO.java
new file mode 100644
index 0000000..89b5190
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/StructureLigneDAO.java
@@ -0,0 +1,31 @@
+/*
+ * 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.fdxgenerator.model.dao;
+
+import com.megatim.fdxgenerator.model.StructureLigne;
+import java.util.List;
+import org.hibernate.Session;
+import org.hibernate.query.Query;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneDAO {
+
+    private StructureLigneDAO() {
+        
+    }
+    
+    public static List<StructureLigne> findByValidateurFichierId(String validateurFichierId) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("select s from StructureLigne s where s.validateurFichier.id =: validateurFichierId");
+            query.setParameter("validateurFichierId", validateurFichierId);
+
+            return query.getResultList();
+        }
+    }
+
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/TypeFichierDAO.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/TypeFichierDAO.java
new file mode 100644
index 0000000..262edd5
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/TypeFichierDAO.java
@@ -0,0 +1,45 @@
+/*
+ * 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.fdxgenerator.model.dao;
+
+import com.megatim.fdxgenerator.model.TypeFichier;
+import java.util.List;
+import java.util.Optional;
+import org.hibernate.Session;
+import org.hibernate.query.Query;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierDAO {
+    private TypeFichierDAO() {
+        
+    }
+    
+    public static List<TypeFichier> getAllTypeFichWithValidateur() {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("SELECT t FROM TypeFichier t, ValidateurFichier v  WHERE t.code = v.typeFichier.code");
+            return query.getResultList();
+        }
+    }
+    
+    public static List<TypeFichier> getAllTypeFichWithoutValidateur() {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+             Query query = session.createQuery("SELECT t FROM TypeFichier t"
+                     + " WHERE NOT EXISTS"
+                     + " (SELECT v FROM ValidateurFichier v WHERE v.typeFichier.code = t.code)");
+            return query.getResultList();
+        }
+    }
+
+    public static Optional<TypeFichier> findByCode(TypeFichier t) {
+        try ( Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("SELECT t FROM TypeFichier t WHERE t.code = :code");
+            query.setParameter("code", t.getCode());
+            return query.uniqueResultOptional();
+        }
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/ValidateurFichierDAO.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/ValidateurFichierDAO.java
new file mode 100644
index 0000000..d931871
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/model/dao/ValidateurFichierDAO.java
@@ -0,0 +1,84 @@
+/*
+ * 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.fdxgenerator.model.dao;
+
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import javax.persistence.TypedQuery;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.JoinType;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import org.hibernate.Session;
+import org.hibernate.query.Query;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierDAO {
+    private ValidateurFichierDAO() {
+        
+    }
+    
+    public static Optional<ValidateurFichier> findByTypeFichier(TypeFichier typeFichier) {
+        Optional<ValidateurFichier> opt;
+        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("select v from ValidateurFichier v where v.typeFichier =: typeFichier");
+            query.setParameter("typeFichier", typeFichier);
+            opt = query.uniqueResultOptional();
+        }
+        
+        return opt;
+    }
+
+    public static Optional<ValidateurFichier> findByTypeFichier(String typeFichierCode) {
+        Optional<ValidateurFichier> opt ;
+        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("select v from ValidateurFichier v where v.typeFichier.code =: typeFichierCode");
+            query.setParameter("typeFichierCode", typeFichierCode);
+            opt = query.uniqueResultOptional();
+        }
+        
+        return opt;
+    }
+    
+    public static Optional<ValidateurFichier> findById(String id) {
+        Optional<ValidateurFichier> opt;
+        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
+            Query query = session.createQuery("select v from ValidateurFichier v where v.id =: id");
+            query.setParameter("id", id);
+            opt = query.uniqueResultOptional();
+        }
+        
+        return opt;
+    }
+    
+     public static List<ValidateurFichier> getAllByPage(int indexDebut, int numberOfElt,List<SearchCriteria> searchCriterias) {
+         AbstractDAO<ValidateurFichier> dao = new AbstractDAO<>(ValidateurFichier.class);
+         
+         List<ValidateurFichier> liste = new ArrayList<>();
+        try (Session session = HibernateUtil.getSessionFactory().openSession()) {
+            CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
+            CriteriaQuery<ValidateurFichier> criteriaQuery = criteriaBuilder.createQuery(ValidateurFichier.class);
+            Root<ValidateurFichier> root = criteriaQuery.from(ValidateurFichier.class);
+            List<Predicate> predicates = dao.createPedicates(searchCriterias,criteriaBuilder,root);
+            root.fetch("structureLignes",JoinType.LEFT);
+            CriteriaQuery<ValidateurFichier> cq = criteriaQuery.select(root).distinct(true);
+            cq = cq.select(root).where(predicates.toArray(new Predicate[predicates.size()]));
+            TypedQuery<ValidateurFichier> typedQuery = session.createQuery(cq);
+            typedQuery.setFirstResult(indexDebut);
+            typedQuery.setMaxResults(numberOfElt);
+            liste = typedQuery.getResultList();
+        }
+        return liste;
+    }
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/pojo/Delimiteur.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/pojo/Delimiteur.java
new file mode 100644
index 0000000..f17c031
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/pojo/Delimiteur.java
@@ -0,0 +1,26 @@
+/*
+ * 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.fdxgenerator.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+@Getter
+@Setter
+@AllArgsConstructor
+public class Delimiteur {
+    private String code;
+    private String libelle;
+    
+    @Override
+    public String toString() {
+        return libelle;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ConfigurationService.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ConfigurationService.java
new file mode 100644
index 0000000..78ab51e
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ConfigurationService.java
@@ -0,0 +1,63 @@
+/*
+ * 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.fdxgenerator.service;
+
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.model.Configuration;
+import com.megatim.fdxgenerator.model.dao.AbstractDAO;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author mela
+ */
+public class ConfigurationService implements GenericCrudService<Configuration> {
+    private static ConfigurationService configurationService;
+    private static AbstractDAO<Configuration> dao;
+    
+    private ConfigurationService() {
+        
+    }
+    
+    public static synchronized ConfigurationService getInstance() {
+        if (configurationService == null) {
+            configurationService = new ConfigurationService();
+            dao = new AbstractDAO<>(Configuration.class);
+        }
+        return configurationService;
+    }
+    
+    @Override
+    public Configuration add(Configuration t) throws Exception {
+        return dao.add(t);
+    }
+
+    @Override
+    public Configuration edit(Configuration t) throws Exception {
+        return dao.edit(t);
+
+    }
+
+    @Override
+    public List<Configuration> getAll() throws Exception {
+        return dao.getAll("Configuration");
+    }
+
+    @Override
+    public void delete(Configuration t) throws Exception {
+        dao.delete(t);
+    }
+    
+    public Configuration getCurrentConfig(){
+        try {
+            return getAll().stream().findFirst().orElse(null);
+        } catch (Exception ex) {
+            Logger.getLogger(ConfigurationService.class.getName()).log(Level.SEVERE, null, ex);
+            return null;
+        }
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ImportFileService.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ImportFileService.java
new file mode 100644
index 0000000..a4bab48
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ImportFileService.java
@@ -0,0 +1,90 @@
+/*
+ * 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.fdxgenerator.service;
+
+import com.megatim.fdxgenerator.utilities.DataToImport;
+import com.megatim.fdxgenerator.utilities.ImportData;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.model.ImportFile;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.model.dao.AbstractDAO;
+import com.megatim.fdxgenerator.model.dao.TypeFichierDAO;
+import com.megatim.fdxgenerator.utilities.PaginationElts;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * structLigne : id, code,format_date, position, taille, type_donnee,
+ * validateur_fichier_id ValidateurFichier : id, nombre_position,
+ * type_fichier_code
+ *
+ * @author STEPHANIE
+ */
+public class ImportFileService implements GenericCrudService<ImportFile> {
+
+    private static ImportFileService importFileService;
+    private PaginationElts<TypeFichier> pagination;
+
+    private ImportFileService() {
+        
+    }
+    
+    public static synchronized ImportFileService getInstance() {
+        if (importFileService == null) {
+            importFileService = new ImportFileService();
+        }
+        return importFileService;
+    }
+
+    @Override
+    public ImportFile add(ImportFile t) throws Exception {
+        importDataFromFile(t);
+        return t;
+    }
+
+    @Override
+    public ImportFile edit(ImportFile t) throws Exception {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public List<ImportFile> getAll() throws Exception {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    @Override
+    public void delete(ImportFile t) throws Exception {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
+
+    private void importDataFromFile(ImportFile im) {
+        List<String> fields = new ArrayList<>();
+        StructureLigne s = new StructureLigne();
+        ValidateurFichier v = new ValidateurFichier();
+
+        if (im != null && im.getType() != null) {
+            if (im.getType().equals(TypeFichier.class)) {
+                fields.add("code");
+                fields.add("libelle");
+                fields.add("codeParticipant");
+            }
+        }
+        DataToImport datIm = new DataToImport(new File(im.getFilePath()), im.getDelimiteurLigne().getCode(), im.getDelimiteurColonne().getCode(), im.getType(), fields);
+        List<Object> datas = ImportData.importDataFromCsvFile(datIm);
+            if (im.getType().equals(TypeFichier.class)) {
+            AbstractDAO<TypeFichier> dao = new AbstractDAO<>(TypeFichier.class);
+            datas.forEach(d -> {
+                TypeFichier t = (TypeFichier) d;
+                Optional<TypeFichier> opt = TypeFichierDAO.findByCode(t);
+                if(!opt.isPresent())
+                     dao.add(t);
+            });
+        } 
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/StructureLigneService.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/StructureLigneService.java
new file mode 100644
index 0000000..3496197
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/StructureLigneService.java
@@ -0,0 +1,93 @@
+/*
+ * 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.fdxgenerator.service;
+
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.model.StructureLigne;
+import com.megatim.fdxgenerator.model.dao.AbstractDAO;
+import com.megatim.fdxgenerator.utilities.PaginationElts;
+import java.util.List;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class StructureLigneService implements GenericCrudService<StructureLigne> {
+    
+    private static StructureLigneService structureLigneService;
+    private static AbstractDAO<StructureLigne> dao;
+    private PaginationElts<StructureLigne> pagination;
+
+    private StructureLigneService() {
+        
+    }
+    
+    public static synchronized StructureLigneService getInstance() {
+        if (structureLigneService == null) {
+            structureLigneService = new StructureLigneService();
+            dao = new AbstractDAO<>(StructureLigne.class);
+        }
+        return structureLigneService;
+    }
+
+    @Override
+    public StructureLigne add(StructureLigne t) throws Exception {
+        return dao.add(t);
+    }
+
+    @Override
+    public StructureLigne edit(StructureLigne t) throws Exception {
+        return dao.edit(t);
+
+    }
+
+    @Override
+    public List<StructureLigne> getAll() throws Exception {
+        return dao.getAll("StructureLigne");
+    }
+
+    @Override
+    public void delete(StructureLigne t) throws Exception {
+        dao.delete(t);
+    }
+
+   @Override
+    public boolean isLast() {
+        return pagination.isLast();
+    }
+
+    @Override
+    public boolean isFirst() {
+        return pagination.isFirst();
+    }
+
+    @Override
+    public int getCurrentPage() {
+        return pagination.getPage();
+    }
+
+    @Override
+    public int getNumberOfElements() {
+        return pagination.getNumberOfElts();
+    }
+
+    @Override
+    public int getNumberPerPage() {
+        return pagination.getNbEltsPerPage();
+    }
+
+    @Override
+    public Long getTotalElements() {
+        return pagination.getTotalElts();
+    }
+
+    @Override
+    public List<StructureLigne> getAllByPage(int pageNumber, List<SearchCriteria> searchCriterias) {
+         pagination = dao.initPaginationElts(pageNumber, searchCriterias);
+
+        return pagination.getListe();
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/TypeFichierService.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/TypeFichierService.java
new file mode 100644
index 0000000..28411ca
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/TypeFichierService.java
@@ -0,0 +1,103 @@
+/*
+ * 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.fdxgenerator.service;
+
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.model.TypeFichier;
+import com.megatim.fdxgenerator.model.dao.AbstractDAO;
+import com.megatim.fdxgenerator.model.dao.TypeFichierDAO;
+import com.megatim.fdxgenerator.utilities.PaginationElts;
+import java.util.List;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class TypeFichierService implements GenericCrudService<TypeFichier> {
+
+    private static TypeFichierService typeFichierService;
+    private static AbstractDAO<TypeFichier> dao;
+    private PaginationElts<TypeFichier> pagination;
+
+    private TypeFichierService() {
+        
+    }
+    
+    public static synchronized TypeFichierService getInstance() {
+        if (typeFichierService == null) {
+            typeFichierService = new TypeFichierService();
+            dao = new AbstractDAO<>(TypeFichier.class);
+        }
+        return typeFichierService;
+    }
+
+    @Override
+    public TypeFichier add(TypeFichier t) throws Exception {
+        return dao.add(t);
+    }
+
+    @Override
+    public TypeFichier edit(TypeFichier t) throws Exception {
+        return dao.edit(t);
+
+    }
+
+    @Override
+    public List<TypeFichier> getAll() throws Exception {
+        return dao.getAll("TypeFichier");
+    }
+    
+    public List<TypeFichier> getAllTypeFichWithValidateur() throws Exception {
+        return TypeFichierDAO.getAllTypeFichWithValidateur();
+    }
+    
+    public List<TypeFichier> getAllTypeFichWithoutValidateur() throws Exception {
+        return TypeFichierDAO.getAllTypeFichWithoutValidateur();
+    }
+
+    @Override
+    public void delete(TypeFichier t) throws Exception {
+        dao.delete(t);
+    }
+
+   @Override
+    public boolean isLast() {
+        return pagination.isLast();
+    }
+
+    @Override
+    public boolean isFirst() {
+        return pagination.isFirst();
+    }
+
+    @Override
+    public int getCurrentPage() {
+        return pagination.getPage();
+    }
+
+    @Override
+    public int getNumberOfElements() {
+        return pagination.getNumberOfElts();
+    }
+
+    @Override
+    public int getNumberPerPage() {
+        return pagination.getNbEltsPerPage();
+    }
+
+    @Override
+    public Long getTotalElements() {
+        return pagination.getTotalElts();
+    }
+
+    @Override
+    public List<TypeFichier> getAllByPage(int pageNumber, List<SearchCriteria> searchCriterias) {
+        System.out.println("searchCriterias.size "+searchCriterias.size());
+         pagination = dao.initPaginationElts(pageNumber, searchCriterias);
+
+        return pagination.getListe();
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ValidateurFichierService.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ValidateurFichierService.java
new file mode 100644
index 0000000..8d4b93f
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/service/ValidateurFichierService.java
@@ -0,0 +1,100 @@
+/*
+ * 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.fdxgenerator.service;
+
+import com.megatimfx.common.pojo.SearchCriteria;
+import com.megatimfx.common.service.GenericCrudService;
+import com.megatim.fdxgenerator.model.ValidateurFichier;
+import com.megatim.fdxgenerator.model.dao.AbstractDAO;
+import com.megatim.fdxgenerator.model.dao.ValidateurFichierDAO;
+import com.megatim.fdxgenerator.utilities.PaginationElts;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ *
+ * @author STEPHANIE
+ */
+public class ValidateurFichierService implements GenericCrudService<ValidateurFichier> {
+    
+    private static ValidateurFichierService validateurFichierService;
+    private static AbstractDAO<ValidateurFichier> dao;
+    private PaginationElts<ValidateurFichier> pagination;
+
+    private ValidateurFichierService() {
+    }
+    
+    public static synchronized ValidateurFichierService getInstance() {
+        if (validateurFichierService == null) {
+            validateurFichierService = new ValidateurFichierService();
+            dao = new AbstractDAO<>(ValidateurFichier.class);
+        }
+        return validateurFichierService;
+    }
+
+    @Override
+    public ValidateurFichier add(ValidateurFichier t) throws Exception {
+        return dao.add(t);
+    }
+    
+    public Optional<ValidateurFichier> find(ValidateurFichier t) {
+        return ValidateurFichierDAO.findById(t.getId());
+    }
+
+    @Override
+    public ValidateurFichier edit(ValidateurFichier t) throws Exception {
+        return dao.edit(t);
+
+    }
+
+    @Override
+    public List<ValidateurFichier> getAll() throws Exception {
+        return dao.getAll("ValidateurFichier");
+    }
+
+    @Override
+    public void delete(ValidateurFichier t) throws Exception {
+        dao.delete(t);
+    }
+
+   @Override
+    public boolean isLast() {
+        return pagination.isLast();
+    }
+
+    @Override
+    public boolean isFirst() {
+        return pagination.isFirst();
+    }
+
+    @Override
+    public int getCurrentPage() {
+        return pagination.getPage();
+    }
+
+    @Override
+    public int getNumberOfElements() {
+        return pagination.getNumberOfElts();
+    }
+
+    @Override
+    public int getNumberPerPage() {
+        return pagination.getNbEltsPerPage();
+    }
+
+    @Override
+    public Long getTotalElements() {
+        return pagination.getTotalElts();
+    }
+
+    @Override
+    public List<ValidateurFichier> getAllByPage(int pageNumber, List<SearchCriteria> searchCriterias) {
+         pagination = dao.initPaginationElts(pageNumber, searchCriterias);
+
+        return pagination.getListe();
+    }
+    
+    
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/AttributeFormatException.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/AttributeFormatException.java
new file mode 100644
index 0000000..ca2fe92
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/AttributeFormatException.java
@@ -0,0 +1,23 @@
+/*
+ * 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.fdxgenerator.utilities;
+
+/**
+ *
+ * @author mela
+ */
+public class AttributeFormatException extends RuntimeException {
+     public AttributeFormatException(String message) {
+        super(message);
+    }
+
+    public AttributeFormatException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public AttributeFormatException(Throwable cause) {
+        super(cause);
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/DataToImport.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/DataToImport.java
new file mode 100644
index 0000000..3b9b62d
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/DataToImport.java
@@ -0,0 +1,36 @@
+/*
+ * 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.fdxgenerator.utilities;
+
+import java.io.File;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ *
+ * @author mela
+ * @param <T>
+ */
+@Getter @Setter
+@NoArgsConstructor @AllArgsConstructor
+public class DataToImport <T> {
+    //Fichier duquel seront extraits les données
+    File file;
+    
+    //délimiteur de ligne
+    String rowDelimiter;
+    
+    //délimiteur de colonne
+    String columnDelimiter;
+    
+    //type des objets qui vont contenir les données extraites
+    Class<T> type;
+    
+    //liste des champs dans leur ordre d'apparition dans le fichier "file"
+    List<String> fields;
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/ImportData.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/ImportData.java
new file mode 100644
index 0000000..1e47594
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/ImportData.java
@@ -0,0 +1,178 @@
+/*
+ * 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.fdxgenerator.utilities;
+
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.LineNumberReader;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author mela
+ */
+public class ImportData {
+
+    /**
+     * Méthode qui parse le fichier csv et en extrait les données
+     *
+     * @param datIm
+     * @return
+     */
+    public static <T> List<T> importDataFromCsvFile(DataToImport<T> datIm) throws AttributeFormatException {
+        FileReader reader = null;
+        List<String[]> datas = new ArrayList<>();
+        List<T> listeToReturn = new ArrayList<>();
+
+        if (datIm != null) {
+            try {
+                reader = new FileReader(datIm.getFile() + "");
+                LineNumberReader lineReader = new LineNumberReader(reader);
+                String line = "";
+
+                while ((line = lineReader.readLine()) != null) {
+                    String[] row = line.split(datIm.getRowDelimiter());
+                    for (String r : row) {
+                        String[] values = new String[datIm.getFields().size()];
+                        String[] columns = r.split(datIm.getColumnDelimiter());
+
+                        int ss = 0;
+                        while (ss < datIm.getFields().size() && ss < columns.length) {
+                            values[ss] = columns[ss];
+                            ss++;
+                        }
+                        datas.add(values);
+                    }
+
+                }
+            } catch (FileNotFoundException ex) {
+                Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+            } catch (IOException ex) {
+                Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+            } finally {
+                try {
+                    reader.close();
+                } catch (IOException | NullPointerException ex) {
+                    Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+                }
+            }
+
+            if (!datas.isEmpty()) {
+
+                //tous les champs du type paramétré
+                Field[] fields = datIm.getType().getDeclaredFields();
+
+                // mettre les champs du type paramétré dans une map afin de faciliter leur accès
+                Map<String, Field> fieldsToMap = fieldsToMap(fields);
+                datas.forEach(d -> {
+                    try {
+                        T obj = datIm.getType().newInstance();
+                        Map<String, String> map = tabToMap(datIm.getFields(), d);
+                        for (Field field : fields) {
+                            String fieldName = field.getName();
+                            if (map.containsKey(fieldName) && fieldsToMap.containsKey(fieldName)) {
+                                try {
+                                    Object converted = convertToPrimitive(field, map.get(fieldName));
+                                    Method method = new PropertyDescriptor(fieldName, datIm.getType()).getWriteMethod();
+                                    method.invoke(obj, converted);
+                                } catch (IntrospectionException | IllegalAccessException | InvocationTargetException ex) {
+                                    Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+                                } catch (IllegalArgumentException | ClassCastException ex) {
+                                    throw new AttributeFormatException("Erreur de type sur le champ " + fieldName);
+                                }
+                            }
+                        }
+                        listeToReturn.add(obj);
+                    } catch (InstantiationException | IllegalAccessException ex) {
+                        Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+                    }
+
+                });
+            }
+        }
+        return listeToReturn;
+    }
+
+    /**
+     * Méthode qui met les libellés des colonnes et leurs valeurs
+     * correspondantes dans une map
+     *
+     * @param titles : ensemble des noms de colonnes
+     * @param values : ensemble des données
+     * @return : rentourne une map (clé,valeur) = (nom_de_la_colonne,
+     * valeur_colonne)
+     */
+    private static Map<String, String> tabToMap(List<String> titles, String[] values) {
+        Map<String, String> map = new HashMap<>();
+        for (int i = 0; i < titles.size(); i++) {
+            map.put(titles.get(i), values[i]);
+        }
+
+        return map;
+    }
+
+    /**
+     * Méthode qui met un tableau de Field dans une
+     * map<nom_du_champ,objet représentant_le_champ>
+     * afin de faciliter leur accès
+     *
+     * @param fields
+     * @return
+     */
+    private static Map<String, Field> fieldsToMap(Field[] fields) {
+        Map<String, Field> map = new HashMap<>();
+        for (Field f : fields) {
+            map.put(f.getName(), f);
+        }
+
+        return map;
+    }
+
+    /**
+     * Méthode qui fait la conversion de la donnée extraite vers un type
+     * primitif
+     *
+     * @param field : objet contenant les informations sur le type auquel
+     * appartient le champ de la donnée extraite
+     * @param value : donnée à convertir
+     * @return : retourne un String si le type du champ ne figure pas dans la
+     * liste ci-dessus
+     */
+    private static Object convertToPrimitive(Field field, String value) {
+        Object obj = value;
+
+        if (field.getType().isAssignableFrom(Integer.class)
+                || field.getType().isAssignableFrom(int.class)) {
+            obj = Integer.parseInt(value);
+        } else if (field.getType().isAssignableFrom(Double.class)
+                || field.getType().isAssignableFrom(double.class)) {
+            obj = Double.parseDouble(value);
+        } else if (field.getType().isAssignableFrom(java.math.BigDecimal.class)) {
+            obj = new java.math.BigDecimal(value);
+        } else if (field.getType().isAssignableFrom(Float.class)
+                || field.getType().isAssignableFrom(float.class)) {
+            obj = Float.valueOf(value);
+        } else if (field.getType().isAssignableFrom(Long.class)
+                || field.getType().isAssignableFrom(long.class)) {
+            obj = Long.parseLong(value);
+        } else if (field.getType().isAssignableFrom(Boolean.class)
+                || field.getType().isAssignableFrom(boolean.class)) {
+            Boolean.parseBoolean(value);
+        }
+
+        return obj;
+    }
+}
diff --git a/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/PaginationElts.java b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/PaginationElts.java
new file mode 100644
index 0000000..19064c7
--- /dev/null
+++ b/fdx_generator/src/main/java/com/megatim/fdxgenerator/utilities/PaginationElts.java
@@ -0,0 +1,49 @@
+/*
+ * 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.fdxgenerator.utilities;
+
+import java.util.List;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ *
+ * @author mela
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+public class PaginationElts<T> {
+    
+    //Numéro de page courante
+    private int page = 0;
+    
+    //Nombre de pages 
+    private long numberOfPage = 0;
+    
+    //Nombre d'éléments à afficher par page
+    private int nbEltsPerPage = 10;
+    
+    //Nombre d'éléments total à afficher
+    private long totalElts = 0;
+    
+    //Nombre délémnts sur une pages quelconque : peut être inférieure ou égale à nbEltsPerPage
+    private int numberOfElts = 0;
+    private  List<T> liste;
+    
+    public PaginationElts(int nbEltsPerPage){
+        this.nbEltsPerPage = nbEltsPerPage;
+    }
+    
+    public boolean isLast() {
+        return page == (numberOfPage == 0 ? numberOfPage : numberOfPage - 1);
+    }
+
+    public boolean isFirst() {
+        return page == 0;
+    }
+
+}
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml
new file mode 100644
index 0000000..b087a8e
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractEditDialogController">
+   <top>
+      <HBox onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" styleClass="title-bar" BorderPane.alignment="CENTER">
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onMouseClicked="#minimize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onMouseClicked="#maximize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children></HBox>
+         </children>
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+      </HBox>
+   </top>
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="50.0" prefWidth="200.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE DE LA FENETRE ICI">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <BorderPane fx:id="formPanel">
+               <center>
+                  <VBox BorderPane.alignment="CENTER">
+                     <padding>
+                        <Insets bottom="20.0" left="47.0" right="47.0" top="20.0" />
+                     </padding>
+                     <children>
+                        <VBox fx:id="formContainer" style="-fx-background-color: #F8F8F8; -fx-border-color: #E9E9E9; -fx-border-width: 1;" />
+                     </children>
+                  </VBox>
+               </center></BorderPane>
+            <HBox fx:id="bottomContainer" alignment="TOP_RIGHT" prefHeight="50.0" spacing="5.0">
+               <children>
+                  <Button fx:id="cancelButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-border-color: #9d9fa2; -fx-background-radius: 0;" text="Annuler" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+                  <Button fx:id="editButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 0;" text="Enregistrer" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+               </children>
+               <padding>
+                  <Insets left="47.0" right="47.0" />
+               </padding>
+            </HBox>
+         </children>
+      </VBox>
+   </center>
+   <stylesheets>
+      <URL value="@../../../../styles/title-bar.css" />
+      <URL value="@../../../../styles/main-style.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml
new file mode 100644
index 0000000..236bae2
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane prefHeight="571.0" prefWidth="657.0" style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractSelfEditValidateDialogController">
+   <top>
+      <HBox onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" styleClass="title-bar" BorderPane.alignment="CENTER">
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onAction="#min" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#max" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children></HBox>
+         </children>
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+      </HBox>
+   </top>
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="50.0" prefWidth="200.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE DE LA FENETRE ICI">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <BorderPane fx:id="formPanel" VBox.vgrow="ALWAYS">
+               <center>
+                  <VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
+                     <padding>
+                        <Insets bottom="20.0" left="47.0" right="47.0" top="20.0" />
+                     </padding>
+                     <children>
+                        <ScrollPane fitToHeight="true" fitToWidth="true" prefHeight="381.0" prefWidth="310.0" VBox.vgrow="ALWAYS">
+                           <content>
+                              <VBox fx:id="formContainer" style="-fx-background-color: #F8F8F8; -fx-border-color: #E9E9E9; -fx-border-width: 1;" />
+                           </content>
+                        </ScrollPane>
+                     </children>
+                  </VBox>
+               </center></BorderPane>
+            <HBox fx:id="bottomContainer" alignment="TOP_RIGHT" prefHeight="50.0" spacing="5.0">
+               <children>
+                  <Button fx:id="cancelButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-border-color: #9d9fa2; -fx-background-radius: 0;" text="Annuler" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+                  <Button fx:id="editButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 0;" text="Enregistrerr" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+               </children>
+               <padding>
+                  <Insets left="47.0" right="47.0" />
+               </padding>
+            </HBox>
+         </children>
+      </VBox>
+   </center>
+   <stylesheets>
+      <URL value="@../../../../styles/main-style.css" />
+      <URL value="@../../../../styles/title-bar.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml
new file mode 100644
index 0000000..c9c5732
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TableView?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" prefHeight="678.0" prefWidth="1120.0" style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractMainDialogController">
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" prefHeight="65.0" prefWidth="1024.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <VBox spacing="5.0" style="-fx-background-color: #44507;" VBox.vgrow="ALWAYS">
+               <children>
+                  <TitledPane collapsible="false" prefHeight="61.0" prefWidth="1223.0" text="Recherche">
+                     <content>
+                        <BorderPane fx:id="searchPane" prefHeight="43.0" prefWidth="1219.0" style="-fx-background-color: rgb(246, 247, 249);">
+                           <right>
+                              <HBox spacing="5.0" BorderPane.alignment="CENTER_LEFT">
+                                 <BorderPane.margin>
+                                    <Insets />
+                                 </BorderPane.margin>
+                                 <children>
+                                    <Button fx:id="btnSearch" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="search">
+                                       <graphic>
+                                          <ImageView fitHeight="20.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/Recherche.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnReset" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="search">
+                                       <graphic>
+                                          <ImageView fitHeight="20.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/Reset.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <CheckBox fx:id="advancedCheckBox" alignment="CENTER" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="25.0" text="Options avancées" />
+                                 </children>
+                                 <padding>
+                                    <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
+                                 </padding>
+                              </HBox>
+                           </right>
+                           <center>
+                              <VBox BorderPane.alignment="CENTER">
+                                 <children>
+                                    <VBox fx:id="normalSearchContainer" prefHeight="200.0" prefWidth="100.0">
+                                       <padding>
+                                          <Insets right="50.0" />
+                                       </padding>
+                                    </VBox>
+                                    <VBox fx:id="advancedSearchContainer" prefHeight="200.0" prefWidth="100.0">
+                                       <padding>
+                                          <Insets right="50.0" />
+                                       </padding>
+                                    </VBox>
+                                 </children>
+                              </VBox>
+                           </center>
+                        </BorderPane>
+                     </content>
+                  </TitledPane>
+                  <VBox prefHeight="200.0" prefWidth="100.0" spacing="3.0" style="-fx-background-color: rgb(246, 247, 249);" VBox.vgrow="ALWAYS">
+                     <children>
+                        <HBox fx:id="buttonContainer" alignment="CENTER_LEFT" spacing="2.0">
+                           <children>
+                              <HBox fx:id="buttonContainer" alignment="BOTTOM_LEFT" spacing="2.0">
+                                 <children>
+                                    <Button fx:id="btnAdd" mnemonicParsing="false" onAction="#onAddDialog" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 8 0 0 0; -fx-border-radius: 8 0 0 0;" textFill="#ebf0ee">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/add.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnEdit" mnemonicParsing="false" onAction="#onEditDialog" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/edit.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnPrint" mnemonicParsing="false" onAction="#onEditDialog" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/print.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnDelete" mnemonicParsing="false" onAction="#removeElement" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/trash.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                 </children>
+                              </HBox>
+                              <HBox alignment="CENTER_RIGHT" HBox.hgrow="ALWAYS">
+                                 <children>
+                                    <Button fx:id="btnImport" mnemonicParsing="false" onAction="#removeElement" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/trash.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                 </children>
+                              </HBox>
+                           </children>
+                           <opaqueInsets>
+                              <Insets />
+                           </opaqueInsets>
+                        </HBox>
+                        <VBox prefHeight="200.0" prefWidth="100.0" VBox.vgrow="ALWAYS">
+                           <children>
+                              <TableView fx:id="elementTable" VBox.vgrow="ALWAYS">
+                                 <columnResizePolicy>
+                                    <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
+                                 </columnResizePolicy>
+                              </TableView>
+                              <HBox alignment="CENTER_LEFT" spacing="30.0" style="-fx-background-color: rgb(206, 206, 206);">
+                                 <children>
+                                    <HBox alignment="CENTER" spacing="15.0">
+                                       <children>
+                                          <HBox alignment="CENTER">
+                                             <children>
+                                                <Button fx:id="btnNext" mnemonicParsing="false" style="-fx-background-color: transparent; -fx-padding: 1;">
+                                                   <graphic>
+                                                      <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                                         <image>
+                                                            <Image url="@../../../../images/next.png" />
+                                                         </image>
+                                                      </ImageView>
+                                                   </graphic>
+                                                </Button>
+                                                <Label text="suivant">
+                                                   <font>
+                                                      <Font size="14.0" />
+                                                   </font>
+                                                </Label>
+                                             </children>
+                                          </HBox>
+                                          <HBox alignment="CENTER">
+                                             <children>
+                                                <Button fx:id="btnPrevious" mnemonicParsing="false" onAction="#previousPage" style="-fx-background-color: transparent; -fx-padding: 1;">
+                                                   <graphic>
+                                                      <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                                         <image>
+                                                            <Image url="@../../../../images/previous.png" />
+                                                         </image>
+                                                      </ImageView>
+                                                   </graphic>
+                                                </Button>
+                                                <Label text="precedent">
+                                                   <font>
+                                                      <Font size="14.0" />
+                                                   </font>
+                                                </Label>
+                                             </children>
+                                          </HBox>
+                                          <Label fx:id="paginationNumberInfo" text="(0/0)">
+                                             <font>
+                                                <Font size="14.0" />
+                                             </font>
+                                          </Label>
+                                       </children>
+                                    </HBox>
+                                 </children>
+                                 <padding>
+                                    <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+                                 </padding>
+                              </HBox>
+                           </children>
+                        </VBox>
+                     </children>
+                  </VBox>
+                  <HBox alignment="CENTER_RIGHT">
+                     <children>
+                        <Button fx:id="btnClose" mnemonicParsing="false" prefHeight="27.0" prefWidth="90.0" style="-fx-background-color: rgb(202, 202, 202); -fx-cursor: pointer; -fx-border-color: #9d9fa2;" text="Quitter" textFill="#5d5d5d" />
+                     </children>
+                  </HBox>
+               </children>
+               <padding>
+                  <Insets bottom="30.0" left="30.0" right="30.0" top="30.0" />
+               </padding>
+            </VBox>
+         </children>
+      </VBox>
+   </center>
+   <top>
+      <HBox styleClass="title-bar" BorderPane.alignment="CENTER">
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onMouseClicked="#minimize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onMouseClicked="#maximize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children>
+            </HBox>
+         </children>
+      </HBox>
+   </top>
+   <stylesheets>
+      <URL value="@../../../../styles/main-style.css" />
+      <URL value="@../../../../styles/title-bar.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main.fxml
new file mode 100644
index 0000000..a1ebffd
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main.fxml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuButton?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="533.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <VBox fx:id="mainContainer" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css">
+               <children>
+                  <HBox alignment="CENTER">
+                     <children>
+                        <ImageView fitHeight="48.0" fitWidth="190.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/icone_ins.png" />
+                           </image>
+                        </ImageView>
+                     </children>
+                     <padding>
+                        <Insets right="30.0" />
+                     </padding>
+                  </HBox>
+                  <HBox fx:id="myMenuBar">
+                     <children>
+                        <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Fichier">
+                           <graphic>
+                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/Fichier.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                           </items>
+                        </MenuButton>
+                        <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Paramètres">
+                           <graphic>
+                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/143-02.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <Menu mnemonicParsing="false" text="TypeFichier">
+                                 <items>
+                                    <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                                    <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                                 </items>
+                              </Menu>
+                              <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                              <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                              <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                           </items>
+                        </MenuButton>
+                        <MenuButton contentDisplay="TOP" disable="true" mnemonicParsing="false" text="Aide">
+                           <graphic>
+                              <ImageView disable="true" fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/143-05.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <MenuItem mnemonicParsing="false" text="A propos" />
+                           </items>
+                        </MenuButton>
+                     </children>
+                  </HBox>
+               </children>
+               <padding>
+                  <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+               </padding>
+            </HBox>
+            <HBox spacing="10.0" style="-fx-background-color: #fff; -fx-border-color: #dedfe0;">
+               <padding>
+                  <Insets bottom="5.0" left="15.0" right="5.0" top="5.0" />
+               </padding>
+               <children>
+                  <HBox prefWidth="200.0" spacing="10.0">
+                     <children>
+                        <Button fx:id="btnGenValidateur" mnemonicParsing="false" onAction="#openFichierValidationDialog" styleClass="receive">
+                           <cursor>
+                              <Cursor fx:constant="HAND" />
+                           </cursor>
+                        </Button>
+                     </children>
+                  </HBox>
+                  <HBox alignment="TOP_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS" />
+               </children>
+            </HBox>
+            <VBox prefHeight="437.0" prefWidth="928.0" style="-fx-background-color: transparent;" styleClass="main_screen" stylesheets="@../../../../styles/main_screen.css" VBox.vgrow="ALWAYS" />
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main2.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main2.fxml
new file mode 100644
index 0000000..8c6e129
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main2.fxml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuButton?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+
+<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <HBox style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css">
+         <children>
+            <HBox alignment="CENTER">
+               <children>
+                  <ImageView fitHeight="48.0" fitWidth="190.0" pickOnBounds="true" preserveRatio="true">
+                     <image>
+                        <Image url="@../../../../images/icone_ins.png" />
+                     </image>
+                  </ImageView>
+               </children>
+               <padding>
+                  <Insets right="30.0" />
+               </padding>
+            </HBox>
+            <HBox fx:id="myMenuBar">
+               <children>
+                  <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Fichier">
+                     <graphic>
+                        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/Fichier.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                     </items>
+                  </MenuButton>
+                  <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Paramètres">
+                     <graphic>
+                        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/143-02.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <Menu mnemonicParsing="false" text="TypeFichier">
+                           <items>
+                              <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                              <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                           </items>
+                        </Menu>
+                        <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                        <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                        <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                     </items>
+                  </MenuButton>
+                  <MenuButton contentDisplay="TOP" disable="true" mnemonicParsing="false" text="Aide">
+                     <graphic>
+                        <ImageView disable="true" fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/143-05.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <MenuItem mnemonicParsing="false" text="A propos" />
+                     </items>
+                  </MenuButton>
+               </children>
+            </HBox>
+         </children>
+         <padding>
+            <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+         </padding>
+      </HBox>
+      <HBox spacing="10.0" style="-fx-background-color: #fff; -fx-border-color: #dedfe0;">
+         <padding>
+            <Insets bottom="5.0" left="15.0" right="5.0" top="5.0" />
+         </padding>
+         <children>
+            <HBox prefWidth="200.0" spacing="10.0">
+               <children>
+                  <Button fx:id="btnGenValidateur" mnemonicParsing="false" onAction="#openFichierValidationDialog" styleClass="receive">
+                     <cursor>
+                        <Cursor fx:constant="HAND" />
+                     </cursor>
+                  </Button>
+               </children>
+            </HBox>
+            <HBox alignment="TOP_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS" />
+         </children>
+      </HBox>
+      <VBox prefHeight="437.0" prefWidth="928.0" style="-fx-background-color: transparent;" styleClass="cover" stylesheets="@../../../../styles/style.css" />
+   </children>
+</VBox>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main_1.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main_1.fxml
new file mode 100644
index 0000000..5821b04
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/main_1.fxml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuBar?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="928.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <VBox fx:id="mainContainer" prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <MenuBar>
+              <menus>
+                  <Menu mnemonicParsing="false" text="Fichier">
+                    <items>
+                      <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                    </items>
+                  </Menu>
+                  <Menu mnemonicParsing="false" text="Paramètres">
+                    <items>
+                        <Menu mnemonicParsing="false" text="TypeFichier">
+                          <items>
+                              <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                              <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                          </items>
+                        </Menu>
+                      <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                        <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                        <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                    </items>
+                  </Menu>
+                  <Menu mnemonicParsing="false" text="Aide">
+                    <items>
+                      <MenuItem mnemonicParsing="false" text="Afficher l'aide" />
+                        <MenuItem mnemonicParsing="false" text="A propos de le l'application" />
+                    </items>
+                  </Menu>
+              </menus>
+            </MenuBar>
+            <VBox prefHeight="437.0" prefWidth="928.0" styleClass="cover" stylesheets="@../../../../styles/style.css" VBox.vgrow="ALWAYS" />
+                           </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml
new file mode 100644
index 0000000..a363df9
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="30.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.TypeFichierAdvancedSearchFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox layoutX="10.0" layoutY="45.0" spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" minWidth="42.0" prefHeight="17.0" prefWidth="57.0" text="participant">
+                     <HBox.margin>
+                        <Insets />
+                     </HBox.margin></Label>
+                  <TextField fx:id="participant" prefHeight="25.0" prefWidth="80.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+            <HBox spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" prefWidth="57.0" text="Libelle" />
+                  <TextField fx:id="libelle" styleClass="square-border" stylesheets="@../../../../../styles/style.css" HBox.hgrow="ALWAYS" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+   <padding>
+      <Insets top="10.0" />
+   </padding>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml
new file mode 100644
index 0000000..4ffa428
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="13.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.TypeFichierSearchFormController">
+   <children>
+      <VBox layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" minWidth="42.0" prefWidth="57.0" text="Code" />
+                  <TextField fx:id="code" prefWidth="80.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml
new file mode 100644
index 0000000..c311dfe
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="30.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.ValidateurFichierAdvancedSearchFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox spacing="10.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="96.0" text="Nombre Position" />
+                  <TextField fx:id="nombrePosition" prefHeight="25.0" prefWidth="71.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml
new file mode 100644
index 0000000..a8d438e
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="13.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.ValidateurFichierSearchFormController">
+    <children>
+        <VBox layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <children>
+                <HBox alignment="CENTER_LEFT" prefWidth="96.0" spacing="10.0">
+                    <children>
+                        <Label alignment="CENTER_RIGHT" minWidth="76.0" prefHeight="17.0" prefWidth="96.0" text="Type de fichier" />
+                        <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefHeight="27.0" prefWidth="432.0" />
+                    </children>
+               <VBox.margin>
+                  <Insets bottom="10.0" />
+               </VBox.margin>
+                </HBox>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml
new file mode 100644
index 0000000..3989ba3
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+
+<AnchorPane id="AnchorPane" prefHeight="87.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ConfigEditFormController">
+    <children>
+        <VBox prefHeight="400.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <children>
+                <TitledPane collapsible="false" text="Informations sur les repertoires">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" layoutX="25.0" layoutY="115.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Repertoire de stockage des validateurs XML" />
+                                        <TextField fx:id="outputDir" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="outButton" mnemonicParsing="false" onMousePressed="#outButtonOnClicked" prefHeight="25.0" prefWidth="25.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                 <font>
+                                    <Font name="System Bold" size="12.0" />
+                                 </font>
+                                        </Button>
+                                    </children>
+                                </HBox>
+                            </children>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml
new file mode 100644
index 0000000..dc7e575
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.PasswordField?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.StackPane?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="249.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.FichierValidationEditFormController">
+    <children>
+        <VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations sur le fichier de validation">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Type de fichier" />
+                                        <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefWidth="327.0">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin></AbstractSelectionItem>
+                                    </children>
+                                </HBox>
+                        <HBox layoutX="25.0" layoutY="87.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Protéger fichier de validation ?" />
+                              <CheckBox fx:id="isProtegeCheckBox" layoutX="235.0" layoutY="10.0" mnemonicParsing="false" text="Oui">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </CheckBox>
+                           </children>
+                        </HBox>
+                        <HBox prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="TOP_RIGHT" prefWidth="205.0" text="Clé de cryptage" />
+                              <StackPane minWidth="328.0" prefHeight="150.0" prefWidth="200.0">
+                                 <children>
+                                    <TextField fx:id="showKeyToEncrypt" prefWidth="328.0" style="-fx-background-radius: 0%;" />
+                                    <PasswordField fx:id="keyToEncryptField" />
+                                    <ImageView fx:id="imageView" fitHeight="15.0" fitWidth="15.0" onMousePressed="#eyeOnMousePressed" pickOnBounds="true" preserveRatio="true" StackPane.alignment="CENTER_RIGHT">
+                                       <StackPane.margin>
+                                          <Insets right="5.0" />
+                                       </StackPane.margin>
+                                       <image>
+                                          <Image url="@../../../../images/oeil.png" />
+                                       </image>
+                                    </ImageView>
+                                 </children>
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </StackPane>
+                           </children>
+                        </HBox>
+                        <HBox layoutX="25.0" layoutY="57.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Confirmation de la clé" />
+                              <PasswordField fx:id="keyConfirmationField" minWidth="328.0">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </PasswordField>
+                           </children>
+                        </HBox>
+                        <HBox layoutX="25.0" layoutY="117.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Valider nom du fichier ?" />
+                              <CheckBox fx:id="validateFileNameCheckBox" layoutX="235.0" layoutY="10.0" mnemonicParsing="false" text="Oui">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </CheckBox>
+                           </children>
+                        </HBox>
+<!--                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Repertoire de sortie" />
+                                        <TextField fx:id="OutDirTextField" prefHeight="25.0" prefWidth="336.0">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="OutButton" mnemonicParsing="false" onMousePressed="#outButtonOnClicked" prefHeight="25.0" prefWidth="31.0" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                        </Button>
+                                    </children>
+                                </HBox>-->
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+                <TitledPane fx:id="fileNameTitledPane" collapsible="false" text="Informations sur le nom du fichier à valider">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format de la date" />
+                                         <ComboBox fx:id="formatDate" prefWidth="327.0" style="-fx-background-radius: 0%;">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin></ComboBox>
+                                    </children>
+                                </HBox>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Extension du fichier" />
+                              <ComboBox fx:id="extensionFichier" prefWidth="327.0" style="-fx-background-radius: 0%;">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </ComboBox>
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Valeur maximale des tierces" />
+                                        <TextField fx:id="MaxValueTierceTextField" prefHeight="25.0" prefWidth="124.0" style="-fx-background-radius: 0%;">
+                                            <HBox.margin>
+                                                <Insets left="10.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml
new file mode 100644
index 0000000..1ac5df9
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+
+<AnchorPane id="AnchorPane" prefHeight="182.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ImportTypeFichierEditFormController">
+    <children>
+        <VBox layoutX="-6.0" layoutY="7.0" spacing="5.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="-6.0" AnchorPane.rightAnchor="6.0" AnchorPane.topAnchor="7.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations sur le fichier à importer">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format du fichier" />
+                                        <ComboBox fx:id="formatFichier" prefWidth="150.0" />
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Délimiteur de ligne" />
+                                        <ComboBox fx:id="delimiteurLigne" prefHeight="25.0" prefWidth="328.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Délimiteur colonne" />
+                                        <ComboBox fx:id="delimiteurColonne" prefHeight="25.0" prefWidth="328.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Fichier à importer" />
+                                        <TextField fx:id="fileToImportTextField" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="importButton" mnemonicParsing="false" onMousePressed="#importButtonOnClicked" prefHeight="25.0" prefWidth="31.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                 <font>
+                                    <Font name="System Bold" size="12.0" />
+                                 </font>
+                                        </Button>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml
new file mode 100644
index 0000000..7eb47d8
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="394.0" prefWidth="586.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.StructureLigneEditFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <TitledPane collapsible="false" text="Informations générales sur la structure de la ligne" VBox.vgrow="ALWAYS">
+               <content>
+                  <VBox fx:id="formFieldContainer" spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Position" />
+                              <ComboBox fx:id="positionComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Code" />
+                              <TextField fx:id="codeTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Désignation" />
+                              <TextField fx:id="designationTextField" prefWidth="280.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Type de donnée" />
+                              <ComboBox fx:id="typeDonneeComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Taille" />
+                              <TextField fx:id="tailleTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" layoutX="25.0" layoutY="145.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Taille partie décimale" />
+                              <TextField fx:id="taillePartieDecimalTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Format" />
+                               <ComboBox fx:id="formatDateComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                              <!--<TextField fx:id="formatDateTextField" prefWidth="100.0" />-->
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer1" alignment="CENTER_LEFT" layoutX="25.0" layoutY="175.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Séparateur de date" />
+                              <ComboBox fx:id="delimiteurDateComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer11" alignment="CENTER_LEFT" layoutX="25.0" layoutY="205.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefHeight="17.0" prefWidth="138.0" text="Séparateur de décimal" />
+                              <ComboBox fx:id="delimiteurDecimalComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding>
+                  </VBox>
+               </content>
+            </TitledPane>
+         </children>
+         <padding>
+            <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+         </padding>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml
new file mode 100644
index 0000000..26fb40f
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="182.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.TypeFichierEditFormController">
+    <children>
+        <VBox layoutX="-6.0" layoutY="7.0" spacing="5.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="-6.0" AnchorPane.rightAnchor="6.0" AnchorPane.topAnchor="7.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations générales sur le type fichier">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format du fichier" />
+                                        <ComboBox fx:id="formatFichier" prefWidth="150.0" />
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Code TypeFichier" />
+                              <TextField fx:id="codeTextField" minWidth="328.0" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Libellé" />
+                              <TextField fx:id="libelleTextField" minWidth="328.0" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Code Participant" />
+                                        <TextField fx:id="codeParticipantTextField" maxWidth="328.0" minWidth="328.0" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml
new file mode 100644
index 0000000..a89834b
--- /dev/null
+++ b/fdx_generator/src/main/resources/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractNestedEntityTable?>
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="543.0" prefWidth="650.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ValidateurFichierEditFormController">
+   <children>
+      <VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <padding>
+            <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+         </padding>
+         <children>
+            <TitledPane collapsible="false" text="Informations sur le validateur">
+               <content>
+                  <VBox spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" text="Type de fichier" />
+                              <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefWidth="330.0" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-font-size: 12; -fx-text-fill: black;" text="Format du fichier de données" />
+                              <ComboBox fx:id="dataTypeComboBox" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="delimiteurLigneHBox" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-font-size: 12; -fx-text-fill: black;" text="Délimiteur de ligne" />
+                              <ComboBox fx:id="delimiteurLigne" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="delimiteurColonneHBox" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-text-fill: black;" text="Délimiteur colonne" />
+                              <ComboBox fx:id="delimiteurColonne" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" text="Nombre de position par ligne" />
+                              <TextField fx:id="nombrePositionTextField" prefWidth="50.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox prefHeight="43.0" prefWidth="637.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-text-fill: black;" text="Fichier contient ligne d'entête ?" />
+                              <CheckBox fx:id="headerPresentCheckbox" minHeight="25.0" mnemonicParsing="false" prefHeight="25.0" text="Oui" />
+                           </children>
+                        </HBox>
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding>
+                  </VBox>
+               </content>
+            </TitledPane>
+            <TitledPane animated="false" collapsible="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Structure des lignes" VBox.vgrow="ALWAYS">
+               <content>
+                  <VBox prefHeight="200.0" prefWidth="100.0" spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_RIGHT">
+                           <children>
+                              <CheckBox fx:id="saisieStructureLigneChecBox" mnemonicParsing="false" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="Saisir la structure des ligne" />
+                           </children>
+                        </HBox>
+                        <AbstractNestedEntityTable fx:id="structureLigneAbstractTable" prefHeight="252.0" prefWidth="526.0" VBox.vgrow="ALWAYS" />
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding></VBox>
+               </content>
+            </TitledPane>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/src/main/resources/images/143-01.png b/fdx_generator/src/main/resources/images/143-01.png
new file mode 100644
index 0000000..84f2182
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/143-01.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/143-02.png b/fdx_generator/src/main/resources/images/143-02.png
new file mode 100644
index 0000000..ad7888f
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/143-02.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/143-03.png b/fdx_generator/src/main/resources/images/143-03.png
new file mode 100644
index 0000000..4f9314e
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/143-03.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/143-04.png b/fdx_generator/src/main/resources/images/143-04.png
new file mode 100644
index 0000000..80f3975
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/143-04.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/143-05.png b/fdx_generator/src/main/resources/images/143-05.png
new file mode 100644
index 0000000..195001d
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/143-05.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/Accuueil_Generator.jpg b/fdx_generator/src/main/resources/images/Accuueil_Generator.jpg
new file mode 100644
index 0000000..300e38e
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/Accuueil_Generator.jpg
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/Fichier.png b/fdx_generator/src/main/resources/images/Fichier.png
new file mode 100644
index 0000000..e390ade
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/Fichier.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/Motif.png b/fdx_generator/src/main/resources/images/Motif.png
new file mode 100644
index 0000000..646d5d6
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/Motif.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/Recherche.png b/fdx_generator/src/main/resources/images/Recherche.png
new file mode 100644
index 0000000..c9ca377
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/Recherche.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/Reset.png b/fdx_generator/src/main/resources/images/Reset.png
new file mode 100644
index 0000000..07ebdb5
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/Reset.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/add.png b/fdx_generator/src/main/resources/images/add.png
new file mode 100644
index 0000000..ee865fa
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/add.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/close-icon.png b/fdx_generator/src/main/resources/images/close-icon.png
new file mode 100644
index 0000000..15cb17e
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/close-icon.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/edit.png b/fdx_generator/src/main/resources/images/edit.png
new file mode 100644
index 0000000..72def46
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/edit.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/generate.png b/fdx_generator/src/main/resources/images/generate.png
new file mode 100644
index 0000000..a2535ba
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/generate.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/icone_ins.png b/fdx_generator/src/main/resources/images/icone_ins.png
new file mode 100644
index 0000000..372530d
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/icone_ins.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/max-icon.png b/fdx_generator/src/main/resources/images/max-icon.png
new file mode 100644
index 0000000..191f0c2
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/max-icon.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/min-icon.png b/fdx_generator/src/main/resources/images/min-icon.png
new file mode 100644
index 0000000..60178dc
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/min-icon.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/next.png b/fdx_generator/src/main/resources/images/next.png
new file mode 100644
index 0000000..b3b83bb
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/next.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/oeil.png b/fdx_generator/src/main/resources/images/oeil.png
new file mode 100644
index 0000000..bf5a58d
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/oeil.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/previous.png b/fdx_generator/src/main/resources/images/previous.png
new file mode 100644
index 0000000..97dbf08
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/previous.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/images/trash.png b/fdx_generator/src/main/resources/images/trash.png
new file mode 100644
index 0000000..1c21ed9
--- /dev/null
+++ b/fdx_generator/src/main/resources/images/trash.png
Binary files differ
diff --git a/fdx_generator/src/main/resources/log4j.properties b/fdx_generator/src/main/resources/log4j.properties
new file mode 100644
index 0000000..8c3f444
--- /dev/null
+++ b/fdx_generator/src/main/resources/log4j.properties
@@ -0,0 +1,12 @@
+# Root logger option 
+log4j.rootLogger=INFO, file
+
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=generateur.log
+log4j.appender.file.MaxFileSize=10GB
+log4j.appender.file.MaxBackupIndex=5
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
+
+# Log everything. Good for troubleshooting  
+log4j.logger.org.hibernate=FATAL 
\ No newline at end of file
diff --git a/fdx_generator/src/main/resources/styles/main-style.css b/fdx_generator/src/main/resources/styles/main-style.css
new file mode 100644
index 0000000..ef7fe30
--- /dev/null
+++ b/fdx_generator/src/main/resources/styles/main-style.css
@@ -0,0 +1,251 @@
+/*
+ * Empty Stylesheet file.
+ */
+
+.banner {
+    -fx-background-image: url(../images/Motif.png);
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: cover;
+}
+
+.mainFxmlClass {
+
+}
+
+.table-view {
+    -fx-background-color: transparent;
+    -fx-border-color: rgb(209, 211, 212);
+    -fx-padding: 0;
+}
+
+.table-view .column-header,
+.table-view .column-header-background .filler {
+    -fx-background-color: #44507B; 
+}
+
+.column-header {
+
+}
+
+.table-view .column-header-background{
+    -fx-padding: 0;
+}
+
+.table-view .column-header {
+    -fx-border-color: rgb(209, 211, 212);
+}
+
+.table-view .column-header .label{
+    -fx-text-fill: white;
+    -fx-font-weight: bold; 
+    -fx-alignment: CENTER;
+    -fx-padding: 5;
+}
+
+.table-cell {
+    -fx-border-width: 0 1 0 1;
+    -fx-border-color: rgb(230, 231, 232);
+    -fx-padding: 5;
+    -fx-alignment: CENTER;
+}
+
+.table-row-cell{
+    -fx-background-color: #ffffff;
+}
+
+.table-row-cell:odd {
+    -fx-background-color: rgb(239, 239, 240);
+}
+
+.table-row-cell:selected {
+    -fx-background-color: rgba(214, 236, 219, 1);
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.table-row-cell:selected .text {
+    -fx-fill: #000;
+}
+
+/*
+* Style for TextField
+*/
+.text-field {
+    -fx-background-color: #F6F7F9;
+    -fx-border-color: #30AFDC;
+    -fx-border-radius: 3px;
+    -fx-background-radius: 3px;
+}
+
+/*
+Tab Pane style
+*/
+
+.tab-pane > .tab-header-area > .headers-region > .tab:top {
+    -fx-border-color: #a3a7a8;
+    -fx-border-radius: 5 5 0 0;
+    -fx-background-color: white;
+    -fx-pref-height: 40px;  
+    -fx-background-insets: 0;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected:top {
+    -fx-border-color: #a3a7a8 #a3a7a8 #a3a7a8 #a3a7a8;
+    -fx-border-width: 1 1 1 1;   
+    -fx-border-radius: 5 5 0 0;
+    -fx-background-color: white;
+    -fx-pref-height: 40px;  
+    -fx-background-insets: 0;
+    -fx-border-insets: 0; 
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: #323232;
+    -fx-font-weight: bold;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: #323232;
+    -fx-font-weight: bold;
+}
+
+.tab-pane > .tab-header-area > .tab-header-background {
+    -fx-background-color: white;
+    -fx-border-color: #a3a7a8;
+    -fx-border-width: 0 0 1 0;
+    -fx-background-insets: 0;
+    -fx-pref-height: 45px;  
+}
+
+/*
+* Title pane style
+*/
+.titled-pane {
+    -fx-border-color: rgba(199, 200, 202, 1);
+    -fx-text-fill: rgba(255, 255, 255, 1);
+}
+
+.titled-pane > .title {
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-background-color: rgba(68, 80, 123, 1);
+}
+
+.titled-pane > .title .text {
+    
+}
+
+/* #2 */
+.titled-pane > .title > .text {
+    -fx-font-size: 14px;
+    -fx-background-color: rgba(114, 114, 116, 1);
+}
+
+/*
+* Search buttons
+*/
+
+.search {
+    -fx-background-color: rgba(220, 221, 223, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-text-fill: rgba(53, 52, 52, 1);
+}
+
+.search:hover {
+    -fx-background-color: rgba(220, 221, 223, .8);
+}
+
+.search:cancel {
+    -fx-text-fill: gray;
+}
+
+/* CHECKBOX */
+.check-box {
+    /* default properties */
+    selected-box-color: rgba(255, 255, 255, 1);
+    box-color: rgba(255, 255, 255, 1);
+    mark-color: white;
+}
+
+.check-box .box {
+    /* background color for selected checkbox */
+    -fx-border-width: 1px;
+    -fx-border-color: rgb(208, 208, 208);
+}
+
+.check-box:selected > .box {
+    /* background color for selected checkbox */
+    -fx-background-color: selected-box-color;
+}
+
+.check-box > .box {
+    /* background color of unselected checkbox */
+    -fx-background-color: box-color;
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+}
+
+/* TEXTFIELD */
+
+.text-field {
+    -fx-background-color: rgba(208, 208, 208, 1);
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-text-fill: rgba(98, 98, 100, 1);
+    -fx-border-color: rgba(208, 208, 208, 1);
+    -fx-border-width: 1;
+}
+
+.text-field:disabled {
+    -fx-opacity: 0.8;
+}
+
+/* COMBOBOX */
+/* The ListCell that shows the selected item in a non-editable ComboBox */
+.combo-box,
+.combo-box:focus,
+.combo-box .list-cell {
+    -fx-background-color: rgba(208, 208, 208, 1);
+}
+
+.combo-box .list-view .list-cell {
+    -fx-background-color: rgba(255, 255, 255, 1);
+}
+
+/* The TextField that shows the selected item in an editable ComboBox */
+.combo-box .text-input {
+    -fx-background-color: rgba(208, 208, 208, 1);
+}
+
+.combo-box:disabled {
+    -fx-opacity: 0.8;
+}
+
+
+/* Style the arrow button area */
+.combo-box .arrow-button {
+    -fx-background-color: rgba(255, 255, 255, 1);
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-border-color: rgba(225, 225, 225, 1);
+    -fx-border-width: 1;
+}
+
+.combo-box .arrow-button .arrow {
+    -fx-background-color: rgba(162, 162, 162, 1);
+}
+
+/* Set the text color in the popup list for ComboBox to blue */
+.combo-box-popup .list-view .list-cell {
+    -fx-text-fill: rgba(98, 98, 100, 1);
+}
+
+/* Set the text color in the popup list for ComboBox to blue */
+.combo-box-popup .list-view .list-cell:hover {
+    -fx-text-fill: rgba(98, 98, 100, 1);
+    -fx-background-color: rgba(214, 236, 219, 1);
+}
\ No newline at end of file
diff --git a/fdx_generator/src/main/resources/styles/main_screen.css b/fdx_generator/src/main/resources/styles/main_screen.css
new file mode 100644
index 0000000..f9b625c
--- /dev/null
+++ b/fdx_generator/src/main/resources/styles/main_screen.css
@@ -0,0 +1,246 @@
+/*
+ * Empty Stylesheet file.
+ */
+
+@font-face {
+    font-family: 'Roboto';
+    src: url('../fonts/Roboto-Medium.ttf');
+}
+
+* {
+    -fx-font-family: 'Roboto';
+}
+
+.main_screen {
+    -fx-background-image: url('../images/Accuueil_Generator.jpg');
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: cover;
+    -fx-border-color: #C5CFCE;
+}
+
+.dashboard {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Tableau_de_bord_1.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.dashboard:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Barre_outils_hover-03.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.receive {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/generate.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.receive:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/generate.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.update {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Modif-01-01x.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.update:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Modif-01-01.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.generate {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/fichiers_generesx.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.generate:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Barre_outils_hover-01.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.treatment {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/tache.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.treatment:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/tache_hover.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+}
+
+/*
+* Title pane style
+*/
+.titled-pane > .title {
+    -fx-background-color: #C5D6E0;
+    -fx-border-color: #C5D6E0;
+}
+
+.titled-pane > .title .text {
+    
+}
+
+/* #2 */
+.titled-pane > .title > .text {
+    -fx-font-size: 14px;
+}
+
+/*
+* Menu-bar style
+*/
+/*
+.menu-item {
+    -fx-border-color: #fff;
+    -fx-margin: 0;
+} 
+
+.menu .text,
+.menu-item .text {
+    -fx-fill: #000;
+    -fx-fill: #000;
+}
+
+.menu:hover .text, 
+.menu:showing .text,
+.menu:focused .text,
+.menu-item:hover .text,
+.menu-item:showing .text,
+.menu-item:focused .text {
+    -fx-fill: #fff;
+    -fx-fill: #fff;
+    -fx-font-weight: bold;
+}
+
+
+.menu:hover, 
+.menu:showing,
+.menu:focused,
+.menu-item:hover,
+.menu-item:showing,
+.menu-item:focused {
+    -fx-background-color: #BCD18A;
+}
+
+.menu:clicked {
+    -fx-background-color: #BCD18A;
+}
+*/
+/*
+* MENU BUTTON
+*/
+
+.menu-button > .arrow-button {
+    -fx-padding: 0;
+}
+
+.menu-button > .arrow-button > .arrow {
+    -fx-padding: 0;
+}
+
+.menu-button {
+    -fx-background-color: transparent;
+    -fx-background-radius: 7;
+    -fx-border-radius: 7;
+    -fx-border-width: 1;
+    -fx-border-color: transparent;
+    -fx-text-fill: white;
+    -fx-font-size: 11px;
+    -fx-padding: 0;
+}
+
+.menu-button:hover {
+    -fx-background-color: #ededee;
+    -fx-background-radius: 7;
+    -fx-border-radius: 7;
+    -fx-border-width: 1;
+    -fx-border-color: #F2F2F2;
+    -fx-text-fill: white;
+    -fx-font-weight: normal;
+}
+
+/* LABEL */
+
+.bottom-label {
+    -fx-text-fill: rgba(90, 90, 90, 1);
+    -fx-font-weight: bold; 
+    -fx-font-size: 11px;
+}
+
+/* TEXTFIELD */
+
+.bottom-text-field {
+    -fx-background-color: #e0e4e3;
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-text-fill: rgba(0, 0, 0, 1);
+    -fx-border-color: #C5CFCE;
+    -fx-border-width: 1;
+    -fx-padding: 3;
+    -fx-font-size: 11px;
+    -fx-background-radius: 2;
+    -fx-border-radius: 2;
+}
+
+.bottom-text-field:disabled {
+    -fx-opacity: 0.8;
+}
\ No newline at end of file
diff --git a/fdx_generator/src/main/resources/styles/style.css b/fdx_generator/src/main/resources/styles/style.css
new file mode 100644
index 0000000..2b219de
--- /dev/null
+++ b/fdx_generator/src/main/resources/styles/style.css
@@ -0,0 +1,18 @@
+/*
+Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+Click nbfs://nbhost/SystemFileSystem/Templates/Other/CascadeStyleSheet.css to edit this template
+*/
+/* 
+    Created on : 15 nov. 2022, 11:59:29
+    Author     : STEPHANIE
+*/
+
+.cover{
+    -fx-background-image: url(../images/Accuueil_Generator.jpg);
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: stretch;
+}
+.square-border {
+    -fx-background-radius:0%;
+}
\ No newline at end of file
diff --git a/fdx_generator/src/main/resources/styles/title-bar.css b/fdx_generator/src/main/resources/styles/title-bar.css
new file mode 100644
index 0000000..59cff2c
--- /dev/null
+++ b/fdx_generator/src/main/resources/styles/title-bar.css
@@ -0,0 +1,44 @@
+/*
+To change this license header, choose License Headers in Project Properties.
+To change this template file, choose Tools | Templates
+and open the template in the editor.
+*/
+/* 
+    Created on : 3 mars 2022, 14:50:08
+    Author     : MGT_DEV3
+*/
+
+.title-bar {
+    -fx-background-color: rgba(235, 235, 235, 1);
+}
+
+.title-bar-button {
+    -fx-background-color: transparent;
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button:hover {
+    -fx-cursor: hand;
+    -fx-background-color: rgba(220, 221, 222, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button-close {
+    -fx-cursor: hand;
+    -fx-background-color: transparent;
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button-close:hover {
+    -fx-background-color: rgba(232, 17, 35, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
diff --git a/fdx_generator/src/main/resources/update-description.txt b/fdx_generator/src/main/resources/update-description.txt
new file mode 100644
index 0000000..ec24b8b
--- /dev/null
+++ b/fdx_generator/src/main/resources/update-description.txt
@@ -0,0 +1,3 @@
+title of the update version 1.0
+use this as description version 1.0
+bla bla bla
diff --git a/fdx_generator/target/classes/.netbeans_automatic_build b/fdx_generator/target/classes/.netbeans_automatic_build
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fdx_generator/target/classes/.netbeans_automatic_build
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml
new file mode 100644
index 0000000..b087a8e
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditDialog.fxml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractEditDialogController">
+   <top>
+      <HBox onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" styleClass="title-bar" BorderPane.alignment="CENTER">
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onMouseClicked="#minimize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onMouseClicked="#maximize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children></HBox>
+         </children>
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+      </HBox>
+   </top>
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="50.0" prefWidth="200.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE DE LA FENETRE ICI">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <BorderPane fx:id="formPanel">
+               <center>
+                  <VBox BorderPane.alignment="CENTER">
+                     <padding>
+                        <Insets bottom="20.0" left="47.0" right="47.0" top="20.0" />
+                     </padding>
+                     <children>
+                        <VBox fx:id="formContainer" style="-fx-background-color: #F8F8F8; -fx-border-color: #E9E9E9; -fx-border-width: 1;" />
+                     </children>
+                  </VBox>
+               </center></BorderPane>
+            <HBox fx:id="bottomContainer" alignment="TOP_RIGHT" prefHeight="50.0" spacing="5.0">
+               <children>
+                  <Button fx:id="cancelButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-border-color: #9d9fa2; -fx-background-radius: 0;" text="Annuler" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+                  <Button fx:id="editButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 0;" text="Enregistrer" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+               </children>
+               <padding>
+                  <Insets left="47.0" right="47.0" />
+               </padding>
+            </HBox>
+         </children>
+      </VBox>
+   </center>
+   <stylesheets>
+      <URL value="@../../../../styles/title-bar.css" />
+      <URL value="@../../../../styles/main-style.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml
new file mode 100644
index 0000000..236bae2
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractEditValidateDialog.fxml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ScrollPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane prefHeight="571.0" prefWidth="657.0" style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractSelfEditValidateDialogController">
+   <top>
+      <HBox onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" styleClass="title-bar" BorderPane.alignment="CENTER">
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onAction="#min" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#max" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children></HBox>
+         </children>
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+      </HBox>
+   </top>
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" minHeight="-Infinity" minWidth="-Infinity" prefHeight="50.0" prefWidth="200.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE DE LA FENETRE ICI">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <BorderPane fx:id="formPanel" VBox.vgrow="ALWAYS">
+               <center>
+                  <VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
+                     <padding>
+                        <Insets bottom="20.0" left="47.0" right="47.0" top="20.0" />
+                     </padding>
+                     <children>
+                        <ScrollPane fitToHeight="true" fitToWidth="true" prefHeight="381.0" prefWidth="310.0" VBox.vgrow="ALWAYS">
+                           <content>
+                              <VBox fx:id="formContainer" style="-fx-background-color: #F8F8F8; -fx-border-color: #E9E9E9; -fx-border-width: 1;" />
+                           </content>
+                        </ScrollPane>
+                     </children>
+                  </VBox>
+               </center></BorderPane>
+            <HBox fx:id="bottomContainer" alignment="TOP_RIGHT" prefHeight="50.0" spacing="5.0">
+               <children>
+                  <Button fx:id="cancelButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-border-color: #9d9fa2; -fx-background-radius: 0;" text="Annuler" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+                  <Button fx:id="editButton" mnemonicParsing="false" prefHeight="27.0" prefWidth="87.0" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 0;" text="Enregistrerr" textFill="WHITE">
+                     <font>
+                        <Font name="System Bold" size="12.0" />
+                     </font>
+                  </Button>
+               </children>
+               <padding>
+                  <Insets left="47.0" right="47.0" />
+               </padding>
+            </HBox>
+         </children>
+      </VBox>
+   </center>
+   <stylesheets>
+      <URL value="@../../../../styles/main-style.css" />
+      <URL value="@../../../../styles/title-bar.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml
new file mode 100644
index 0000000..c9c5732
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/abstracts/AbstractMainDialog.fxml
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.net.URL?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TableView?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" onMouseDragged="#mouseDraggedTitleBar" onMousePressed="#mousePressedTitleBar" prefHeight="678.0" prefWidth="1120.0" style="-fx-border-color: rgb(184, 184, 184); -fx-border-width: 1;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatimfx.common.abstracts.AbstractMainDialogController">
+   <center>
+      <VBox BorderPane.alignment="CENTER">
+         <children>
+            <HBox alignment="CENTER" prefHeight="65.0" prefWidth="1024.0" styleClass="banner">
+               <children>
+                  <Text fx:id="title" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="TITRE">
+                     <font>
+                        <Font name="Arial Bold" size="16.0" />
+                     </font>
+                  </Text>
+               </children>
+            </HBox>
+            <VBox spacing="5.0" style="-fx-background-color: #44507;" VBox.vgrow="ALWAYS">
+               <children>
+                  <TitledPane collapsible="false" prefHeight="61.0" prefWidth="1223.0" text="Recherche">
+                     <content>
+                        <BorderPane fx:id="searchPane" prefHeight="43.0" prefWidth="1219.0" style="-fx-background-color: rgb(246, 247, 249);">
+                           <right>
+                              <HBox spacing="5.0" BorderPane.alignment="CENTER_LEFT">
+                                 <BorderPane.margin>
+                                    <Insets />
+                                 </BorderPane.margin>
+                                 <children>
+                                    <Button fx:id="btnSearch" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="search">
+                                       <graphic>
+                                          <ImageView fitHeight="20.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/Recherche.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnReset" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="search">
+                                       <graphic>
+                                          <ImageView fitHeight="20.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/Reset.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <CheckBox fx:id="advancedCheckBox" alignment="CENTER" maxHeight="-Infinity" maxWidth="1.7976931348623157E308" mnemonicParsing="false" prefHeight="25.0" text="Options avancées" />
+                                 </children>
+                                 <padding>
+                                    <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
+                                 </padding>
+                              </HBox>
+                           </right>
+                           <center>
+                              <VBox BorderPane.alignment="CENTER">
+                                 <children>
+                                    <VBox fx:id="normalSearchContainer" prefHeight="200.0" prefWidth="100.0">
+                                       <padding>
+                                          <Insets right="50.0" />
+                                       </padding>
+                                    </VBox>
+                                    <VBox fx:id="advancedSearchContainer" prefHeight="200.0" prefWidth="100.0">
+                                       <padding>
+                                          <Insets right="50.0" />
+                                       </padding>
+                                    </VBox>
+                                 </children>
+                              </VBox>
+                           </center>
+                        </BorderPane>
+                     </content>
+                  </TitledPane>
+                  <VBox prefHeight="200.0" prefWidth="100.0" spacing="3.0" style="-fx-background-color: rgb(246, 247, 249);" VBox.vgrow="ALWAYS">
+                     <children>
+                        <HBox fx:id="buttonContainer" alignment="CENTER_LEFT" spacing="2.0">
+                           <children>
+                              <HBox fx:id="buttonContainer" alignment="BOTTOM_LEFT" spacing="2.0">
+                                 <children>
+                                    <Button fx:id="btnAdd" mnemonicParsing="false" onAction="#onAddDialog" style="-fx-background-color: #31a19a; -fx-cursor: pointer; -fx-background-radius: 8 0 0 0; -fx-border-radius: 8 0 0 0;" textFill="#ebf0ee">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/add.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnEdit" mnemonicParsing="false" onAction="#onEditDialog" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/edit.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnPrint" mnemonicParsing="false" onAction="#onEditDialog" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/print.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                    <Button fx:id="btnDelete" mnemonicParsing="false" onAction="#removeElement" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/trash.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                 </children>
+                              </HBox>
+                              <HBox alignment="CENTER_RIGHT" HBox.hgrow="ALWAYS">
+                                 <children>
+                                    <Button fx:id="btnImport" mnemonicParsing="false" onAction="#removeElement" style="-fx-background-color: #9d9fa2; -fx-cursor: pointer; -fx-background-radius: 0;" textFill="#f2eded">
+                                       <font>
+                                          <Font name="System Bold" size="12.0" />
+                                       </font>
+                                       <graphic>
+                                          <ImageView fitHeight="15.0" fitWidth="15.0" pickOnBounds="true" preserveRatio="true">
+                                             <image>
+                                                <Image url="@../../../../images/trash.png" />
+                                             </image>
+                                          </ImageView>
+                                       </graphic>
+                                    </Button>
+                                 </children>
+                              </HBox>
+                           </children>
+                           <opaqueInsets>
+                              <Insets />
+                           </opaqueInsets>
+                        </HBox>
+                        <VBox prefHeight="200.0" prefWidth="100.0" VBox.vgrow="ALWAYS">
+                           <children>
+                              <TableView fx:id="elementTable" VBox.vgrow="ALWAYS">
+                                 <columnResizePolicy>
+                                    <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
+                                 </columnResizePolicy>
+                              </TableView>
+                              <HBox alignment="CENTER_LEFT" spacing="30.0" style="-fx-background-color: rgb(206, 206, 206);">
+                                 <children>
+                                    <HBox alignment="CENTER" spacing="15.0">
+                                       <children>
+                                          <HBox alignment="CENTER">
+                                             <children>
+                                                <Button fx:id="btnNext" mnemonicParsing="false" style="-fx-background-color: transparent; -fx-padding: 1;">
+                                                   <graphic>
+                                                      <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                                         <image>
+                                                            <Image url="@../../../../images/next.png" />
+                                                         </image>
+                                                      </ImageView>
+                                                   </graphic>
+                                                </Button>
+                                                <Label text="suivant">
+                                                   <font>
+                                                      <Font size="14.0" />
+                                                   </font>
+                                                </Label>
+                                             </children>
+                                          </HBox>
+                                          <HBox alignment="CENTER">
+                                             <children>
+                                                <Button fx:id="btnPrevious" mnemonicParsing="false" onAction="#previousPage" style="-fx-background-color: transparent; -fx-padding: 1;">
+                                                   <graphic>
+                                                      <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                                         <image>
+                                                            <Image url="@../../../../images/previous.png" />
+                                                         </image>
+                                                      </ImageView>
+                                                   </graphic>
+                                                </Button>
+                                                <Label text="precedent">
+                                                   <font>
+                                                      <Font size="14.0" />
+                                                   </font>
+                                                </Label>
+                                             </children>
+                                          </HBox>
+                                          <Label fx:id="paginationNumberInfo" text="(0/0)">
+                                             <font>
+                                                <Font size="14.0" />
+                                             </font>
+                                          </Label>
+                                       </children>
+                                    </HBox>
+                                 </children>
+                                 <padding>
+                                    <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+                                 </padding>
+                              </HBox>
+                           </children>
+                        </VBox>
+                     </children>
+                  </VBox>
+                  <HBox alignment="CENTER_RIGHT">
+                     <children>
+                        <Button fx:id="btnClose" mnemonicParsing="false" prefHeight="27.0" prefWidth="90.0" style="-fx-background-color: rgb(202, 202, 202); -fx-cursor: pointer; -fx-border-color: #9d9fa2;" text="Quitter" textFill="#5d5d5d" />
+                     </children>
+                  </HBox>
+               </children>
+               <padding>
+                  <Insets bottom="30.0" left="30.0" right="30.0" top="30.0" />
+               </padding>
+            </VBox>
+         </children>
+      </VBox>
+   </center>
+   <top>
+      <HBox styleClass="title-bar" BorderPane.alignment="CENTER">
+         <padding>
+            <Insets bottom="2.0" left="2.0" right="2.0" top="2.0" />
+         </padding>
+         <children>
+            <HBox prefWidth="200.0" HBox.hgrow="ALWAYS" />
+            <HBox alignment="CENTER_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS">
+               <children>
+                  <Button mnemonicParsing="false" onMouseClicked="#minimize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/min-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onMouseClicked="#maximize" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/max-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+                  <Button mnemonicParsing="false" onAction="#close" style="-fx-padding: 5 12 5 12;" styleClass="title-bar-button">
+                     <graphic>
+                        <ImageView fitHeight="10.0" fitWidth="10.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/close-icon.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                  </Button>
+               </children>
+            </HBox>
+         </children>
+      </HBox>
+   </top>
+   <stylesheets>
+      <URL value="@../../../../styles/main-style.css" />
+      <URL value="@../../../../styles/title-bar.css" />
+   </stylesheets>
+</BorderPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main.fxml
new file mode 100644
index 0000000..a1ebffd
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main.fxml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuButton?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="533.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <VBox fx:id="mainContainer" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css">
+               <children>
+                  <HBox alignment="CENTER">
+                     <children>
+                        <ImageView fitHeight="48.0" fitWidth="190.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../images/icone_ins.png" />
+                           </image>
+                        </ImageView>
+                     </children>
+                     <padding>
+                        <Insets right="30.0" />
+                     </padding>
+                  </HBox>
+                  <HBox fx:id="myMenuBar">
+                     <children>
+                        <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Fichier">
+                           <graphic>
+                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/Fichier.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                           </items>
+                        </MenuButton>
+                        <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Paramètres">
+                           <graphic>
+                              <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/143-02.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <Menu mnemonicParsing="false" text="TypeFichier">
+                                 <items>
+                                    <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                                    <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                                 </items>
+                              </Menu>
+                              <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                              <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                              <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                           </items>
+                        </MenuButton>
+                        <MenuButton contentDisplay="TOP" disable="true" mnemonicParsing="false" text="Aide">
+                           <graphic>
+                              <ImageView disable="true" fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                                 <image>
+                                    <Image url="@../../../../images/143-05.png" />
+                                 </image>
+                              </ImageView>
+                           </graphic>
+                           <items>
+                              <MenuItem mnemonicParsing="false" text="A propos" />
+                           </items>
+                        </MenuButton>
+                     </children>
+                  </HBox>
+               </children>
+               <padding>
+                  <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+               </padding>
+            </HBox>
+            <HBox spacing="10.0" style="-fx-background-color: #fff; -fx-border-color: #dedfe0;">
+               <padding>
+                  <Insets bottom="5.0" left="15.0" right="5.0" top="5.0" />
+               </padding>
+               <children>
+                  <HBox prefWidth="200.0" spacing="10.0">
+                     <children>
+                        <Button fx:id="btnGenValidateur" mnemonicParsing="false" onAction="#openFichierValidationDialog" styleClass="receive">
+                           <cursor>
+                              <Cursor fx:constant="HAND" />
+                           </cursor>
+                        </Button>
+                     </children>
+                  </HBox>
+                  <HBox alignment="TOP_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS" />
+               </children>
+            </HBox>
+            <VBox prefHeight="437.0" prefWidth="928.0" style="-fx-background-color: transparent;" styleClass="main_screen" stylesheets="@../../../../styles/main_screen.css" VBox.vgrow="ALWAYS" />
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main2.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main2.fxml
new file mode 100644
index 0000000..8c6e129
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main2.fxml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuButton?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+
+<VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <HBox style="-fx-background-color: transparent;" stylesheets="@../../../../styles/main_screen.css">
+         <children>
+            <HBox alignment="CENTER">
+               <children>
+                  <ImageView fitHeight="48.0" fitWidth="190.0" pickOnBounds="true" preserveRatio="true">
+                     <image>
+                        <Image url="@../../../../images/icone_ins.png" />
+                     </image>
+                  </ImageView>
+               </children>
+               <padding>
+                  <Insets right="30.0" />
+               </padding>
+            </HBox>
+            <HBox fx:id="myMenuBar">
+               <children>
+                  <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Fichier">
+                     <graphic>
+                        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/Fichier.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                     </items>
+                  </MenuButton>
+                  <MenuButton contentDisplay="TOP" mnemonicParsing="false" text="Paramètres">
+                     <graphic>
+                        <ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/143-02.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <Menu mnemonicParsing="false" text="TypeFichier">
+                           <items>
+                              <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                              <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                           </items>
+                        </Menu>
+                        <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                        <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                        <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                     </items>
+                  </MenuButton>
+                  <MenuButton contentDisplay="TOP" disable="true" mnemonicParsing="false" text="Aide">
+                     <graphic>
+                        <ImageView disable="true" fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
+                           <image>
+                              <Image url="@../../../../../../../../importation-validation-data/src/main/resources/images/143-05.png" />
+                           </image>
+                        </ImageView>
+                     </graphic>
+                     <items>
+                        <MenuItem mnemonicParsing="false" text="A propos" />
+                     </items>
+                  </MenuButton>
+               </children>
+            </HBox>
+         </children>
+         <padding>
+            <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+         </padding>
+      </HBox>
+      <HBox spacing="10.0" style="-fx-background-color: #fff; -fx-border-color: #dedfe0;">
+         <padding>
+            <Insets bottom="5.0" left="15.0" right="5.0" top="5.0" />
+         </padding>
+         <children>
+            <HBox prefWidth="200.0" spacing="10.0">
+               <children>
+                  <Button fx:id="btnGenValidateur" mnemonicParsing="false" onAction="#openFichierValidationDialog" styleClass="receive">
+                     <cursor>
+                        <Cursor fx:constant="HAND" />
+                     </cursor>
+                  </Button>
+               </children>
+            </HBox>
+            <HBox alignment="TOP_RIGHT" prefWidth="200.0" HBox.hgrow="ALWAYS" />
+         </children>
+      </HBox>
+      <VBox prefHeight="437.0" prefWidth="928.0" style="-fx-background-color: transparent;" styleClass="cover" stylesheets="@../../../../styles/style.css" />
+   </children>
+</VBox>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main_1.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main_1.fxml
new file mode 100644
index 0000000..5821b04
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/main_1.fxml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Menu?>
+<?import javafx.scene.control.MenuBar?>
+<?import javafx.scene.control.MenuItem?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="928.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.MainController">
+   <children>
+      <VBox fx:id="mainContainer" prefHeight="200.0" prefWidth="100.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <MenuBar>
+              <menus>
+                  <Menu mnemonicParsing="false" text="Fichier">
+                    <items>
+                      <MenuItem mnemonicParsing="false" onAction="#quit" text="Quitter" />
+                    </items>
+                  </Menu>
+                  <Menu mnemonicParsing="false" text="Paramètres">
+                    <items>
+                        <Menu mnemonicParsing="false" text="TypeFichier">
+                          <items>
+                              <MenuItem fx:id="typeFichMenuItem" mnemonicParsing="false" onAction="#openTypeFichierDialog" text="Consulter" />
+                              <MenuItem fx:id="validateurMenuItem" mnemonicParsing="false" onAction="#openImportTypeFichierDialog" text="Importer" />
+                          </items>
+                        </Menu>
+                      <MenuItem fx:id="configMenuItem" mnemonicParsing="false" onAction="#openConfigDialog" text="Configuration des repertoires" />
+                        <MenuItem fx:id="validateurTypeFichMenuItem" mnemonicParsing="false" onAction="#openValidateurFichierDialog" text="Consulter les validateurs des typeFichier" />
+                        <MenuItem fx:id="fichierValidationMenuItem1" mnemonicParsing="false" onAction="#openFichierValidationDialog" text="Générer les fichiers de validation" />
+                    </items>
+                  </Menu>
+                  <Menu mnemonicParsing="false" text="Aide">
+                    <items>
+                      <MenuItem mnemonicParsing="false" text="Afficher l'aide" />
+                        <MenuItem mnemonicParsing="false" text="A propos de le l'application" />
+                    </items>
+                  </Menu>
+              </menus>
+            </MenuBar>
+            <VBox prefHeight="437.0" prefWidth="928.0" styleClass="cover" stylesheets="@../../../../styles/style.css" VBox.vgrow="ALWAYS" />
+                           </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml
new file mode 100644
index 0000000..a363df9
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierAdvancedSearchForm.fxml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="30.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.TypeFichierAdvancedSearchFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox layoutX="10.0" layoutY="45.0" spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" minWidth="42.0" prefHeight="17.0" prefWidth="57.0" text="participant">
+                     <HBox.margin>
+                        <Insets />
+                     </HBox.margin></Label>
+                  <TextField fx:id="participant" prefHeight="25.0" prefWidth="80.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+            <HBox spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" prefWidth="57.0" text="Libelle" />
+                  <TextField fx:id="libelle" styleClass="square-border" stylesheets="@../../../../../styles/style.css" HBox.hgrow="ALWAYS" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+   <padding>
+      <Insets top="10.0" />
+   </padding>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml
new file mode 100644
index 0000000..4ffa428
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/TypeFichierSearchForm.fxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="13.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.TypeFichierSearchFormController">
+   <children>
+      <VBox layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox spacing="5.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" minWidth="42.0" prefWidth="57.0" text="Code" />
+                  <TextField fx:id="code" prefWidth="80.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml
new file mode 100644
index 0000000..c311dfe
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierAdvancedSearchForm.fxml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="30.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.ValidateurFichierAdvancedSearchFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <HBox spacing="10.0">
+               <children>
+                  <Label alignment="CENTER_RIGHT" prefHeight="17.0" prefWidth="96.0" text="Nombre Position" />
+                  <TextField fx:id="nombrePosition" prefHeight="25.0" prefWidth="71.0" styleClass="square-border" stylesheets="@../../../../../styles/style.css" />
+               </children>
+            </HBox>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml
new file mode 100644
index 0000000..a8d438e
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/controller/search/ValidateurFichierSearchForm.fxml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="13.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.controller.search.ValidateurFichierSearchFormController">
+    <children>
+        <VBox layoutX="10.0" layoutY="10.0" prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <children>
+                <HBox alignment="CENTER_LEFT" prefWidth="96.0" spacing="10.0">
+                    <children>
+                        <Label alignment="CENTER_RIGHT" minWidth="76.0" prefHeight="17.0" prefWidth="96.0" text="Type de fichier" />
+                        <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefHeight="27.0" prefWidth="432.0" />
+                    </children>
+               <VBox.margin>
+                  <Insets bottom="10.0" />
+               </VBox.margin>
+                </HBox>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml
new file mode 100644
index 0000000..3989ba3
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ConfigEditForm.fxml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+
+<AnchorPane id="AnchorPane" prefHeight="87.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ConfigEditFormController">
+    <children>
+        <VBox prefHeight="400.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <children>
+                <TitledPane collapsible="false" text="Informations sur les repertoires">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" layoutX="25.0" layoutY="115.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Repertoire de stockage des validateurs XML" />
+                                        <TextField fx:id="outputDir" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="outButton" mnemonicParsing="false" onMousePressed="#outButtonOnClicked" prefHeight="25.0" prefWidth="25.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                 <font>
+                                    <Font name="System Bold" size="12.0" />
+                                 </font>
+                                        </Button>
+                                    </children>
+                                </HBox>
+                            </children>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml
new file mode 100644
index 0000000..dc7e575
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/FichierValidationEditForm.fxml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.PasswordField?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.StackPane?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="249.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.FichierValidationEditFormController">
+    <children>
+        <VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations sur le fichier de validation">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Type de fichier" />
+                                        <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefWidth="327.0">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin></AbstractSelectionItem>
+                                    </children>
+                                </HBox>
+                        <HBox layoutX="25.0" layoutY="87.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Protéger fichier de validation ?" />
+                              <CheckBox fx:id="isProtegeCheckBox" layoutX="235.0" layoutY="10.0" mnemonicParsing="false" text="Oui">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </CheckBox>
+                           </children>
+                        </HBox>
+                        <HBox prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="TOP_RIGHT" prefWidth="205.0" text="Clé de cryptage" />
+                              <StackPane minWidth="328.0" prefHeight="150.0" prefWidth="200.0">
+                                 <children>
+                                    <TextField fx:id="showKeyToEncrypt" prefWidth="328.0" style="-fx-background-radius: 0%;" />
+                                    <PasswordField fx:id="keyToEncryptField" />
+                                    <ImageView fx:id="imageView" fitHeight="15.0" fitWidth="15.0" onMousePressed="#eyeOnMousePressed" pickOnBounds="true" preserveRatio="true" StackPane.alignment="CENTER_RIGHT">
+                                       <StackPane.margin>
+                                          <Insets right="5.0" />
+                                       </StackPane.margin>
+                                       <image>
+                                          <Image url="@../../../../images/oeil.png" />
+                                       </image>
+                                    </ImageView>
+                                 </children>
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </StackPane>
+                           </children>
+                        </HBox>
+                        <HBox layoutX="25.0" layoutY="57.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Confirmation de la clé" />
+                              <PasswordField fx:id="keyConfirmationField" minWidth="328.0">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </PasswordField>
+                           </children>
+                        </HBox>
+                        <HBox layoutX="25.0" layoutY="117.0" prefHeight="100.0" prefWidth="200.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" prefWidth="205.0" text="Valider nom du fichier ?" />
+                              <CheckBox fx:id="validateFileNameCheckBox" layoutX="235.0" layoutY="10.0" mnemonicParsing="false" text="Oui">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </CheckBox>
+                           </children>
+                        </HBox>
+<!--                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Repertoire de sortie" />
+                                        <TextField fx:id="OutDirTextField" prefHeight="25.0" prefWidth="336.0">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="OutButton" mnemonicParsing="false" onMousePressed="#outButtonOnClicked" prefHeight="25.0" prefWidth="31.0" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                        </Button>
+                                    </children>
+                                </HBox>-->
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+                <TitledPane fx:id="fileNameTitledPane" collapsible="false" text="Informations sur le nom du fichier à valider">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format de la date" />
+                                         <ComboBox fx:id="formatDate" prefWidth="327.0" style="-fx-background-radius: 0%;">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin></ComboBox>
+                                    </children>
+                                </HBox>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Extension du fichier" />
+                              <ComboBox fx:id="extensionFichier" prefWidth="327.0" style="-fx-background-radius: 0%;">
+                                 <HBox.margin>
+                                    <Insets left="10.0" />
+                                 </HBox.margin>
+                              </ComboBox>
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Valeur maximale des tierces" />
+                                        <TextField fx:id="MaxValueTierceTextField" prefHeight="25.0" prefWidth="124.0" style="-fx-background-radius: 0%;">
+                                            <HBox.margin>
+                                                <Insets left="10.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml
new file mode 100644
index 0000000..1ac5df9
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ImportTypeFichierEditForm.fxml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+
+<AnchorPane id="AnchorPane" prefHeight="182.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ImportTypeFichierEditFormController">
+    <children>
+        <VBox layoutX="-6.0" layoutY="7.0" spacing="5.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="-6.0" AnchorPane.rightAnchor="6.0" AnchorPane.topAnchor="7.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations sur le fichier à importer">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format du fichier" />
+                                        <ComboBox fx:id="formatFichier" prefWidth="150.0" />
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Délimiteur de ligne" />
+                                        <ComboBox fx:id="delimiteurLigne" prefHeight="25.0" prefWidth="328.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Délimiteur colonne" />
+                                        <ComboBox fx:id="delimiteurColonne" prefHeight="25.0" prefWidth="328.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Fichier à importer" />
+                                        <TextField fx:id="fileToImportTextField" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                        <Button fx:id="importButton" mnemonicParsing="false" onMousePressed="#importButtonOnClicked" prefHeight="25.0" prefWidth="31.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="...">
+                                            <HBox.margin>
+                                                <Insets right="10.0" />
+                                            </HBox.margin>
+                                 <font>
+                                    <Font name="System Bold" size="12.0" />
+                                 </font>
+                                        </Button>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml
new file mode 100644
index 0000000..7eb47d8
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/StructureLigneEditForm.fxml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="394.0" prefWidth="586.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.StructureLigneEditFormController">
+   <children>
+      <VBox prefHeight="200.0" prefWidth="100.0" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <children>
+            <TitledPane collapsible="false" text="Informations générales sur la structure de la ligne" VBox.vgrow="ALWAYS">
+               <content>
+                  <VBox fx:id="formFieldContainer" spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Position" />
+                              <ComboBox fx:id="positionComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Code" />
+                              <TextField fx:id="codeTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Désignation" />
+                              <TextField fx:id="designationTextField" prefWidth="280.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Type de donnée" />
+                              <ComboBox fx:id="typeDonneeComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Taille" />
+                              <TextField fx:id="tailleTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" layoutX="25.0" layoutY="145.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Taille partie décimale" />
+                              <TextField fx:id="taillePartieDecimalTextField" prefWidth="100.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Format" />
+                               <ComboBox fx:id="formatDateComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                              <!--<TextField fx:id="formatDateTextField" prefWidth="100.0" />-->
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer1" alignment="CENTER_LEFT" layoutX="25.0" layoutY="175.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefWidth="138.0" text="Séparateur de date" />
+                              <ComboBox fx:id="delimiteurDateComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="dateFormatContainer11" alignment="CENTER_LEFT" layoutX="25.0" layoutY="205.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minWidth="138.0" prefHeight="17.0" prefWidth="138.0" text="Séparateur de décimal" />
+                              <ComboBox fx:id="delimiteurDecimalComboBox" minWidth="180.0" prefWidth="180.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding>
+                  </VBox>
+               </content>
+            </TitledPane>
+         </children>
+         <padding>
+            <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+         </padding>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml
new file mode 100644
index 0000000..26fb40f
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/TypeFichierEditForm.fxml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="182.0" prefWidth="648.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.TypeFichierEditFormController">
+    <children>
+        <VBox layoutX="-6.0" layoutY="7.0" spacing="5.0" AnchorPane.bottomAnchor="-7.0" AnchorPane.leftAnchor="-6.0" AnchorPane.rightAnchor="6.0" AnchorPane.topAnchor="7.0">
+            <padding>
+                <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+            </padding>
+            <children>
+                <TitledPane collapsible="false" text="Informations générales sur le type fichier">
+                    <content>
+                        <VBox spacing="5.0">
+                            <children>
+<!--                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Format du fichier" />
+                                        <ComboBox fx:id="formatFichier" prefWidth="150.0" />
+                                    </children>
+                                </HBox>-->
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Code TypeFichier" />
+                              <TextField fx:id="codeTextField" minWidth="328.0" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT" spacing="10.0">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Libellé" />
+                              <TextField fx:id="libelleTextField" minWidth="328.0" />
+                                    </children>
+                                </HBox>
+                                <HBox alignment="CENTER_LEFT">
+                                    <children>
+                                        <Label alignment="CENTER_RIGHT" minWidth="205.0" text="Code Participant" />
+                                        <TextField fx:id="codeParticipantTextField" maxWidth="328.0" minWidth="328.0" prefHeight="25.0" prefWidth="336.0" styleClass="square-border" stylesheets="@../../../../styles/style.css">
+                                            <HBox.margin>
+                                                <Insets left="10.0" right="2.0" />
+                                            </HBox.margin>
+                                        </TextField>
+                                    </children>
+                                </HBox>
+                            </children>
+                            <padding>
+                                <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                            </padding>
+                        </VBox>
+                    </content>
+                </TitledPane>
+            </children>
+        </VBox>
+    </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml
new file mode 100644
index 0000000..a89834b
--- /dev/null
+++ b/fdx_generator/target/classes/com/megatim/fdxgenerator/forms/ValidateurFichierEditForm.fxml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import com.megatimfx.common.customcontrols.AbstractNestedEntityTable?>
+<?import com.megatimfx.common.customcontrols.AbstractSelectionItem?>
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.control.CheckBox?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.control.TextField?>
+<?import javafx.scene.control.TitledPane?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+
+<AnchorPane id="AnchorPane" prefHeight="543.0" prefWidth="650.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.megatim.fdxgenerator.forms.ValidateurFichierEditFormController">
+   <children>
+      <VBox spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
+         <padding>
+            <Insets bottom="20.0" left="32.0" right="32.0" top="20.0" />
+         </padding>
+         <children>
+            <TitledPane collapsible="false" text="Informations sur le validateur">
+               <content>
+                  <VBox spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" text="Type de fichier" />
+                              <AbstractSelectionItem fx:id="typeFichierAbstractSelectItem" minWidth="330.0" prefWidth="330.0" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-font-size: 12; -fx-text-fill: black;" text="Format du fichier de données" />
+                              <ComboBox fx:id="dataTypeComboBox" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="delimiteurLigneHBox" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-font-size: 12; -fx-text-fill: black;" text="Délimiteur de ligne" />
+                              <ComboBox fx:id="delimiteurLigne" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox fx:id="delimiteurColonneHBox" alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-text-fill: black;" text="Délimiteur colonne" />
+                              <ComboBox fx:id="delimiteurColonne" minHeight="25.0" minWidth="300.0" prefHeight="25.0" prefWidth="300.0" style="-fx-background-radius: 0%;" />
+                           </children>
+                        </HBox>
+                        <HBox alignment="CENTER_LEFT" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" text="Nombre de position par ligne" />
+                              <TextField fx:id="nombrePositionTextField" prefWidth="50.0" styleClass="square-border" stylesheets="@../../../../styles/style.css" />
+                           </children>
+                        </HBox>
+                        <HBox prefHeight="43.0" prefWidth="637.0" spacing="10.0">
+                           <children>
+                              <Label alignment="CENTER_RIGHT" minHeight="25.0" minWidth="176.0" prefHeight="25.0" prefWidth="176.0" style="-fx-text-fill: black;" text="Fichier contient ligne d'entête ?" />
+                              <CheckBox fx:id="headerPresentCheckbox" minHeight="25.0" mnemonicParsing="false" prefHeight="25.0" text="Oui" />
+                           </children>
+                        </HBox>
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding>
+                  </VBox>
+               </content>
+            </TitledPane>
+            <TitledPane animated="false" collapsible="false" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" text="Structure des lignes" VBox.vgrow="ALWAYS">
+               <content>
+                  <VBox prefHeight="200.0" prefWidth="100.0" spacing="5.0">
+                     <children>
+                        <HBox alignment="CENTER_RIGHT">
+                           <children>
+                              <CheckBox fx:id="saisieStructureLigneChecBox" mnemonicParsing="false" styleClass="square-border" stylesheets="@../../../../styles/style.css" text="Saisir la structure des ligne" />
+                           </children>
+                        </HBox>
+                        <AbstractNestedEntityTable fx:id="structureLigneAbstractTable" prefHeight="252.0" prefWidth="526.0" VBox.vgrow="ALWAYS" />
+                     </children>
+                     <padding>
+                        <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
+                     </padding></VBox>
+               </content>
+            </TitledPane>
+         </children>
+      </VBox>
+   </children>
+</AnchorPane>
diff --git a/fdx_generator/target/classes/images/143-01.png b/fdx_generator/target/classes/images/143-01.png
new file mode 100644
index 0000000..84f2182
--- /dev/null
+++ b/fdx_generator/target/classes/images/143-01.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/143-02.png b/fdx_generator/target/classes/images/143-02.png
new file mode 100644
index 0000000..ad7888f
--- /dev/null
+++ b/fdx_generator/target/classes/images/143-02.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/143-03.png b/fdx_generator/target/classes/images/143-03.png
new file mode 100644
index 0000000..4f9314e
--- /dev/null
+++ b/fdx_generator/target/classes/images/143-03.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/143-04.png b/fdx_generator/target/classes/images/143-04.png
new file mode 100644
index 0000000..80f3975
--- /dev/null
+++ b/fdx_generator/target/classes/images/143-04.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/143-05.png b/fdx_generator/target/classes/images/143-05.png
new file mode 100644
index 0000000..195001d
--- /dev/null
+++ b/fdx_generator/target/classes/images/143-05.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/Accuueil_Generator.jpg b/fdx_generator/target/classes/images/Accuueil_Generator.jpg
new file mode 100644
index 0000000..300e38e
--- /dev/null
+++ b/fdx_generator/target/classes/images/Accuueil_Generator.jpg
Binary files differ
diff --git a/fdx_generator/target/classes/images/Fichier.png b/fdx_generator/target/classes/images/Fichier.png
new file mode 100644
index 0000000..e390ade
--- /dev/null
+++ b/fdx_generator/target/classes/images/Fichier.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/Motif.png b/fdx_generator/target/classes/images/Motif.png
new file mode 100644
index 0000000..646d5d6
--- /dev/null
+++ b/fdx_generator/target/classes/images/Motif.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/Recherche.png b/fdx_generator/target/classes/images/Recherche.png
new file mode 100644
index 0000000..c9ca377
--- /dev/null
+++ b/fdx_generator/target/classes/images/Recherche.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/Reset.png b/fdx_generator/target/classes/images/Reset.png
new file mode 100644
index 0000000..07ebdb5
--- /dev/null
+++ b/fdx_generator/target/classes/images/Reset.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/add.png b/fdx_generator/target/classes/images/add.png
new file mode 100644
index 0000000..ee865fa
--- /dev/null
+++ b/fdx_generator/target/classes/images/add.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/close-icon.png b/fdx_generator/target/classes/images/close-icon.png
new file mode 100644
index 0000000..15cb17e
--- /dev/null
+++ b/fdx_generator/target/classes/images/close-icon.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/edit.png b/fdx_generator/target/classes/images/edit.png
new file mode 100644
index 0000000..72def46
--- /dev/null
+++ b/fdx_generator/target/classes/images/edit.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/generate.png b/fdx_generator/target/classes/images/generate.png
new file mode 100644
index 0000000..a2535ba
--- /dev/null
+++ b/fdx_generator/target/classes/images/generate.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/icone_ins.png b/fdx_generator/target/classes/images/icone_ins.png
new file mode 100644
index 0000000..372530d
--- /dev/null
+++ b/fdx_generator/target/classes/images/icone_ins.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/max-icon.png b/fdx_generator/target/classes/images/max-icon.png
new file mode 100644
index 0000000..191f0c2
--- /dev/null
+++ b/fdx_generator/target/classes/images/max-icon.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/min-icon.png b/fdx_generator/target/classes/images/min-icon.png
new file mode 100644
index 0000000..60178dc
--- /dev/null
+++ b/fdx_generator/target/classes/images/min-icon.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/next.png b/fdx_generator/target/classes/images/next.png
new file mode 100644
index 0000000..b3b83bb
--- /dev/null
+++ b/fdx_generator/target/classes/images/next.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/oeil.png b/fdx_generator/target/classes/images/oeil.png
new file mode 100644
index 0000000..bf5a58d
--- /dev/null
+++ b/fdx_generator/target/classes/images/oeil.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/previous.png b/fdx_generator/target/classes/images/previous.png
new file mode 100644
index 0000000..97dbf08
--- /dev/null
+++ b/fdx_generator/target/classes/images/previous.png
Binary files differ
diff --git a/fdx_generator/target/classes/images/trash.png b/fdx_generator/target/classes/images/trash.png
new file mode 100644
index 0000000..1c21ed9
--- /dev/null
+++ b/fdx_generator/target/classes/images/trash.png
Binary files differ
diff --git a/fdx_generator/target/classes/log4j.properties b/fdx_generator/target/classes/log4j.properties
new file mode 100644
index 0000000..8c3f444
--- /dev/null
+++ b/fdx_generator/target/classes/log4j.properties
@@ -0,0 +1,12 @@
+# Root logger option 
+log4j.rootLogger=INFO, file
+
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.File=generateur.log
+log4j.appender.file.MaxFileSize=10GB
+log4j.appender.file.MaxBackupIndex=5
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
+
+# Log everything. Good for troubleshooting  
+log4j.logger.org.hibernate=FATAL 
\ No newline at end of file
diff --git a/fdx_generator/target/classes/styles/main-style.css b/fdx_generator/target/classes/styles/main-style.css
new file mode 100644
index 0000000..ef7fe30
--- /dev/null
+++ b/fdx_generator/target/classes/styles/main-style.css
@@ -0,0 +1,251 @@
+/*
+ * Empty Stylesheet file.
+ */
+
+.banner {
+    -fx-background-image: url(../images/Motif.png);
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: cover;
+}
+
+.mainFxmlClass {
+
+}
+
+.table-view {
+    -fx-background-color: transparent;
+    -fx-border-color: rgb(209, 211, 212);
+    -fx-padding: 0;
+}
+
+.table-view .column-header,
+.table-view .column-header-background .filler {
+    -fx-background-color: #44507B; 
+}
+
+.column-header {
+
+}
+
+.table-view .column-header-background{
+    -fx-padding: 0;
+}
+
+.table-view .column-header {
+    -fx-border-color: rgb(209, 211, 212);
+}
+
+.table-view .column-header .label{
+    -fx-text-fill: white;
+    -fx-font-weight: bold; 
+    -fx-alignment: CENTER;
+    -fx-padding: 5;
+}
+
+.table-cell {
+    -fx-border-width: 0 1 0 1;
+    -fx-border-color: rgb(230, 231, 232);
+    -fx-padding: 5;
+    -fx-alignment: CENTER;
+}
+
+.table-row-cell{
+    -fx-background-color: #ffffff;
+}
+
+.table-row-cell:odd {
+    -fx-background-color: rgb(239, 239, 240);
+}
+
+.table-row-cell:selected {
+    -fx-background-color: rgba(214, 236, 219, 1);
+    -fx-background-insets: 0;
+    -fx-background-radius: 0;
+}
+
+.table-row-cell:selected .text {
+    -fx-fill: #000;
+}
+
+/*
+* Style for TextField
+*/
+.text-field {
+    -fx-background-color: #F6F7F9;
+    -fx-border-color: #30AFDC;
+    -fx-border-radius: 3px;
+    -fx-background-radius: 3px;
+}
+
+/*
+Tab Pane style
+*/
+
+.tab-pane > .tab-header-area > .headers-region > .tab:top {
+    -fx-border-color: #a3a7a8;
+    -fx-border-radius: 5 5 0 0;
+    -fx-background-color: white;
+    -fx-pref-height: 40px;  
+    -fx-background-insets: 0;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected:top {
+    -fx-border-color: #a3a7a8 #a3a7a8 #a3a7a8 #a3a7a8;
+    -fx-border-width: 1 1 1 1;   
+    -fx-border-radius: 5 5 0 0;
+    -fx-background-color: white;
+    -fx-pref-height: 40px;  
+    -fx-background-insets: 0;
+    -fx-border-insets: 0; 
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab:selected > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: #323232;
+    -fx-font-weight: bold;
+}
+
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+    -fx-alignment: CENTER;
+    -fx-text-fill: #323232;
+    -fx-font-weight: bold;
+}
+
+.tab-pane > .tab-header-area > .tab-header-background {
+    -fx-background-color: white;
+    -fx-border-color: #a3a7a8;
+    -fx-border-width: 0 0 1 0;
+    -fx-background-insets: 0;
+    -fx-pref-height: 45px;  
+}
+
+/*
+* Title pane style
+*/
+.titled-pane {
+    -fx-border-color: rgba(199, 200, 202, 1);
+    -fx-text-fill: rgba(255, 255, 255, 1);
+}
+
+.titled-pane > .title {
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-background-color: rgba(68, 80, 123, 1);
+}
+
+.titled-pane > .title .text {
+    
+}
+
+/* #2 */
+.titled-pane > .title > .text {
+    -fx-font-size: 14px;
+    -fx-background-color: rgba(114, 114, 116, 1);
+}
+
+/*
+* Search buttons
+*/
+
+.search {
+    -fx-background-color: rgba(220, 221, 223, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-text-fill: rgba(53, 52, 52, 1);
+}
+
+.search:hover {
+    -fx-background-color: rgba(220, 221, 223, .8);
+}
+
+.search:cancel {
+    -fx-text-fill: gray;
+}
+
+/* CHECKBOX */
+.check-box {
+    /* default properties */
+    selected-box-color: rgba(255, 255, 255, 1);
+    box-color: rgba(255, 255, 255, 1);
+    mark-color: white;
+}
+
+.check-box .box {
+    /* background color for selected checkbox */
+    -fx-border-width: 1px;
+    -fx-border-color: rgb(208, 208, 208);
+}
+
+.check-box:selected > .box {
+    /* background color for selected checkbox */
+    -fx-background-color: selected-box-color;
+}
+
+.check-box > .box {
+    /* background color of unselected checkbox */
+    -fx-background-color: box-color;
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+}
+
+/* TEXTFIELD */
+
+.text-field {
+    -fx-background-color: rgba(208, 208, 208, 1);
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-text-fill: rgba(98, 98, 100, 1);
+    -fx-border-color: rgba(208, 208, 208, 1);
+    -fx-border-width: 1;
+}
+
+.text-field:disabled {
+    -fx-opacity: 0.8;
+}
+
+/* COMBOBOX */
+/* The ListCell that shows the selected item in a non-editable ComboBox */
+.combo-box,
+.combo-box:focus,
+.combo-box .list-cell {
+    -fx-background-color: rgba(208, 208, 208, 1);
+}
+
+.combo-box .list-view .list-cell {
+    -fx-background-color: rgba(255, 255, 255, 1);
+}
+
+/* The TextField that shows the selected item in an editable ComboBox */
+.combo-box .text-input {
+    -fx-background-color: rgba(208, 208, 208, 1);
+}
+
+.combo-box:disabled {
+    -fx-opacity: 0.8;
+}
+
+
+/* Style the arrow button area */
+.combo-box .arrow-button {
+    -fx-background-color: rgba(255, 255, 255, 1);
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-border-color: rgba(225, 225, 225, 1);
+    -fx-border-width: 1;
+}
+
+.combo-box .arrow-button .arrow {
+    -fx-background-color: rgba(162, 162, 162, 1);
+}
+
+/* Set the text color in the popup list for ComboBox to blue */
+.combo-box-popup .list-view .list-cell {
+    -fx-text-fill: rgba(98, 98, 100, 1);
+}
+
+/* Set the text color in the popup list for ComboBox to blue */
+.combo-box-popup .list-view .list-cell:hover {
+    -fx-text-fill: rgba(98, 98, 100, 1);
+    -fx-background-color: rgba(214, 236, 219, 1);
+}
\ No newline at end of file
diff --git a/fdx_generator/target/classes/styles/main_screen.css b/fdx_generator/target/classes/styles/main_screen.css
new file mode 100644
index 0000000..f9b625c
--- /dev/null
+++ b/fdx_generator/target/classes/styles/main_screen.css
@@ -0,0 +1,246 @@
+/*
+ * Empty Stylesheet file.
+ */
+
+@font-face {
+    font-family: 'Roboto';
+    src: url('../fonts/Roboto-Medium.ttf');
+}
+
+* {
+    -fx-font-family: 'Roboto';
+}
+
+.main_screen {
+    -fx-background-image: url('../images/Accuueil_Generator.jpg');
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: cover;
+    -fx-border-color: #C5CFCE;
+}
+
+.dashboard {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Tableau_de_bord_1.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.dashboard:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Barre_outils_hover-03.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.receive {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/generate.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.receive:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/generate.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.update {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Modif-01-01x.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.update:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Modif-01-01.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.generate {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/fichiers_generesx.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.generate:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/Barre_outils_hover-01.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.treatment {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/tache.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+    
+}
+
+.treatment:hover {
+    -fx-pref-width: 20px;
+    -fx-pref-height: 20px;
+    -fx-background-color: transparent;
+    -fx-background-image: url('../images/tache_hover.png');
+    -fx-background-size: 20px;
+    -fx-background-position: 0, 0, 0, 0;
+    -fx-background-repeat: stretch;
+}
+
+/*
+* Title pane style
+*/
+.titled-pane > .title {
+    -fx-background-color: #C5D6E0;
+    -fx-border-color: #C5D6E0;
+}
+
+.titled-pane > .title .text {
+    
+}
+
+/* #2 */
+.titled-pane > .title > .text {
+    -fx-font-size: 14px;
+}
+
+/*
+* Menu-bar style
+*/
+/*
+.menu-item {
+    -fx-border-color: #fff;
+    -fx-margin: 0;
+} 
+
+.menu .text,
+.menu-item .text {
+    -fx-fill: #000;
+    -fx-fill: #000;
+}
+
+.menu:hover .text, 
+.menu:showing .text,
+.menu:focused .text,
+.menu-item:hover .text,
+.menu-item:showing .text,
+.menu-item:focused .text {
+    -fx-fill: #fff;
+    -fx-fill: #fff;
+    -fx-font-weight: bold;
+}
+
+
+.menu:hover, 
+.menu:showing,
+.menu:focused,
+.menu-item:hover,
+.menu-item:showing,
+.menu-item:focused {
+    -fx-background-color: #BCD18A;
+}
+
+.menu:clicked {
+    -fx-background-color: #BCD18A;
+}
+*/
+/*
+* MENU BUTTON
+*/
+
+.menu-button > .arrow-button {
+    -fx-padding: 0;
+}
+
+.menu-button > .arrow-button > .arrow {
+    -fx-padding: 0;
+}
+
+.menu-button {
+    -fx-background-color: transparent;
+    -fx-background-radius: 7;
+    -fx-border-radius: 7;
+    -fx-border-width: 1;
+    -fx-border-color: transparent;
+    -fx-text-fill: white;
+    -fx-font-size: 11px;
+    -fx-padding: 0;
+}
+
+.menu-button:hover {
+    -fx-background-color: #ededee;
+    -fx-background-radius: 7;
+    -fx-border-radius: 7;
+    -fx-border-width: 1;
+    -fx-border-color: #F2F2F2;
+    -fx-text-fill: white;
+    -fx-font-weight: normal;
+}
+
+/* LABEL */
+
+.bottom-label {
+    -fx-text-fill: rgba(90, 90, 90, 1);
+    -fx-font-weight: bold; 
+    -fx-font-size: 11px;
+}
+
+/* TEXTFIELD */
+
+.bottom-text-field {
+    -fx-background-color: #e0e4e3;
+    -fx-border-radius: 0px;
+    -fx-background-radius: 0px;
+    -fx-text-fill: rgba(0, 0, 0, 1);
+    -fx-border-color: #C5CFCE;
+    -fx-border-width: 1;
+    -fx-padding: 3;
+    -fx-font-size: 11px;
+    -fx-background-radius: 2;
+    -fx-border-radius: 2;
+}
+
+.bottom-text-field:disabled {
+    -fx-opacity: 0.8;
+}
\ No newline at end of file
diff --git a/fdx_generator/target/classes/styles/style.css b/fdx_generator/target/classes/styles/style.css
new file mode 100644
index 0000000..2b219de
--- /dev/null
+++ b/fdx_generator/target/classes/styles/style.css
@@ -0,0 +1,18 @@
+/*
+Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+Click nbfs://nbhost/SystemFileSystem/Templates/Other/CascadeStyleSheet.css to edit this template
+*/
+/* 
+    Created on : 15 nov. 2022, 11:59:29
+    Author     : STEPHANIE
+*/
+
+.cover{
+    -fx-background-image: url(../images/Accuueil_Generator.jpg);
+    -fx-background-position: center center;
+    -fx-background-repeat: stretch;
+    -fx-background-size: stretch;
+}
+.square-border {
+    -fx-background-radius:0%;
+}
\ No newline at end of file
diff --git a/fdx_generator/target/classes/styles/title-bar.css b/fdx_generator/target/classes/styles/title-bar.css
new file mode 100644
index 0000000..59cff2c
--- /dev/null
+++ b/fdx_generator/target/classes/styles/title-bar.css
@@ -0,0 +1,44 @@
+/*
+To change this license header, choose License Headers in Project Properties.
+To change this template file, choose Tools | Templates
+and open the template in the editor.
+*/
+/* 
+    Created on : 3 mars 2022, 14:50:08
+    Author     : MGT_DEV3
+*/
+
+.title-bar {
+    -fx-background-color: rgba(235, 235, 235, 1);
+}
+
+.title-bar-button {
+    -fx-background-color: transparent;
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button:hover {
+    -fx-cursor: hand;
+    -fx-background-color: rgba(220, 221, 222, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button-close {
+    -fx-cursor: hand;
+    -fx-background-color: transparent;
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
+.title-bar-button-close:hover {
+    -fx-background-color: rgba(232, 17, 35, 1);
+    -fx-background-radius: 0;
+    -fx-border-radius: 0;
+    -fx-border-width: 0;
+}
+
diff --git a/fdx_generator/target/classes/update-description.txt b/fdx_generator/target/classes/update-description.txt
new file mode 100644
index 0000000..ec24b8b
--- /dev/null
+++ b/fdx_generator/target/classes/update-description.txt
@@ -0,0 +1,3 @@
+title of the update version 1.0
+use this as description version 1.0
+bla bla bla
diff --git a/fdx_generator/target/maven-archiver/pom.properties b/fdx_generator/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..8fa5804
--- /dev/null
+++ b/fdx_generator/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Thu Jun 18 17:23:39 WAT 2026
+version=1.0
+groupId=com.megatim.com.megatim.fdxgenerator
+artifactId=fdx-generator
diff --git a/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..40c687b
--- /dev/null
+++ b/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,70 @@
+com\megatim\fdxgenerator\model\StructureLigne.class
+com\megatim\fdxgenerator\model\dao\ValidateurFichierDAO.class
+com\megatim\fdxgenerator\annotations\KeyToDecryptConstraint.class
+com\megatim\fdxgenerator\annotations\FormatDateConstraint.class
+com\megatim\fdxgenerator\controller\search\ValidateurFichierSearchFormController$1.class
+com\megatim\fdxgenerator\controller\search\TypeFichierSearchFormController.class
+com\megatim\fdxgenerator\utilities\DataToImport.class
+com\megatim\fdxgenerator\forms\ImportTypeFichierEditFormController.class
+com\megatim\fdxgenerator\pojo\Delimiteur.class
+com\megatim\fdxgenerator\controller\StructureLigneListDialogController.class
+com\megatim\fdxgenerator\annotations\FormatDateValidator.class
+com\megatim\fdxgenerator\annotations\TailleFormatDateValidator.class
+com\megatim\fdxgenerator\annotations\TailleFormatDateConstraint.class
+com\megatim\fdxgenerator\BriefLogFormatter.class
+com\megatim\fdxgenerator\controller\MainController$1.class
+com\megatim\fdxgenerator\forms\TypeFichierEditFormController.class
+com\megatim\fdxgenerator\model\dao\StructureLigneDAO.class
+com\megatim\fdxgenerator\controller\ImportTypeFichierEditDialogController.class
+com\megatim\fdxgenerator\controller\ConfigEditDialogController.class
+com\megatim\fdxgenerator\controller\TypeFichierListDialogController.class
+com\megatim\fdxgenerator\controller\MainController.class
+com\megatim\fdxgenerator\forms\FichierValidationEditFormController$1.class
+com\megatim\fdxgenerator\controller\ValidateurFichierEditDialogController$1.class
+com\megatim\fdxgenerator\model\dao\HibernateUtil.class
+com\megatim\fdxgenerator\service\ConfigurationService.class
+com\megatim\fdxgenerator\forms\StructureLigneEditFormController.class
+com\megatim\fdxgenerator\App.class
+com\megatim\fdxgenerator\annotations\FileNameValidator.class
+com\megatim\fdxgenerator\controller\table\TypeFichierTable.class
+com\megatim\fdxgenerator\controller\ValidateurFichierEditDialogController.class
+com\megatim\fdxgenerator\controller\search\TypeFichierAdvancedSearchFormController.class
+com\megatim\fdxgenerator\model\ImportFile.class
+com\megatim\fdxgenerator\model\dao\TypeFichierDAO.class
+com\megatim\fdxgenerator\utilities\AttributeFormatException.class
+com\megatim\fdxgenerator\AppUpdate.class
+com\megatim\fdxgenerator\controller\search\ValidateurFichierSearchFormController.class
+com\megatim\fdxgenerator\controller\FichierValidationEditDialogController$2.class
+com\megatim\fdxgenerator\service\ImportFileService.class
+com\megatim\fdxgenerator\utilities\ImportData.class
+com\megatim\fdxgenerator\controller\search\StructureLigneSearchFormController.class
+com\megatim\fdxgenerator\model\dao\AbstractDAO$1.class
+com\megatim\fdxgenerator\controller\search\StructureLigneAdvancedSearchFormController.class
+com\megatim\fdxgenerator\annotations\ConfigConstraint.class
+com\megatim\fdxgenerator\forms\ValidateurFichierEditFormController$1.class
+com\megatim\fdxgenerator\forms\ValidateurFichierEditFormController.class
+com\megatim\fdxgenerator\model\ValidateurFichier.class
+com\megatim\fdxgenerator\model\TypeFichier.class
+com\megatim\fdxgenerator\forms\FichierValidationEditFormController.class
+com\megatim\fdxgenerator\controller\table\StructureLigneTable.class
+com\megatim\fdxgenerator\enums\TypeDonnee.class
+com\megatim\fdxgenerator\model\FichierValidation.class
+com\megatim\fdxgenerator\service\TypeFichierService.class
+com\megatim\fdxgenerator\utilities\PaginationElts.class
+com\megatim\fdxgenerator\service\ValidateurFichierService.class
+com\megatim\fdxgenerator\controller\StructureLigneEditDialogController.class
+com\megatim\fdxgenerator\model\dao\AbstractDAO.class
+com\megatim\fdxgenerator\forms\ConfigEditFormController.class
+com\megatim\fdxgenerator\controller\search\ValidateurFichierAdvancedSearchFormController.class
+com\megatim\fdxgenerator\model\Configuration.class
+com\megatim\fdxgenerator\exceptions\ConfigException.class
+com\megatim\fdxgenerator\controller\TypeFichierEditDialogController.class
+com\megatim\fdxgenerator\controller\table\ValidateurFichierTable.class
+com\megatim\fdxgenerator\enums\DataType.class
+com\megatim\fdxgenerator\annotations\FileNameConstraint.class
+com\megatim\fdxgenerator\controller\FichierValidationEditDialogController$1.class
+com\megatim\fdxgenerator\annotations\KeyToDecryptValidator.class
+com\megatim\fdxgenerator\annotations\ConfigValidator.class
+com\megatim\fdxgenerator\service\StructureLigneService.class
+com\megatim\fdxgenerator\controller\FichierValidationEditDialogController.class
+com\megatim\fdxgenerator\controller\ValidateurFichierListDialogController.class
diff --git a/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..0cf8814
--- /dev/null
+++ b/fdx_generator/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,62 @@
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\FileNameValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\TailleFormatDateValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\service\ImportFileService.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\utilities\AttributeFormatException.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\ValidateurFichierListDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\ImportFile.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\FichierValidationEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\App.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\ConfigEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\FileNameConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\FichierValidationEditDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\enums\DataType.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\StructureLigne.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\KeyToDecryptValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\TypeFichierSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\BriefLogFormatter.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\StructureLigneSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\Configuration.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\table\ValidateurFichierTable.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\FormatDateConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\pojo\Delimiteur.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\dao\HibernateUtil.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\ConfigEditDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\ValidateurFichierSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\TypeFichierAdvancedSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\TypeFichierListDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\dao\ValidateurFichierDAO.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\utilities\PaginationElts.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\table\TypeFichierTable.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\service\TypeFichierService.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\ConfigConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\dao\AbstractDAO.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\KeyToDecryptConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\utilities\ImportData.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\StructureLigneListDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\TypeFichier.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\utilities\DataToImport.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\service\ConfigurationService.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\AppUpdate.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\MainController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\dao\StructureLigneDAO.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\TailleFormatDateConstraint.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\ValidateurFichierAdvancedSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\ConfigValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\StructureLigneEditDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\service\ValidateurFichierService.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\StructureLigneEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\ImportTypeFichierEditDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\annotations\FormatDateValidator.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\enums\TypeDonnee.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\table\StructureLigneTable.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\search\StructureLigneAdvancedSearchFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\exceptions\ConfigException.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\dao\TypeFichierDAO.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\service\StructureLigneService.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\ValidateurFichierEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\ValidateurFichierEditDialogController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\TypeFichierEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\FichierValidation.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\model\ValidateurFichier.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\forms\ImportTypeFichierEditFormController.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\generation-validateur-typefichier\src\main\java\com\megatim\fdxgenerator\controller\TypeFichierEditDialogController.java
diff --git a/fdx_generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/fdx_generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fdx_generator/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
diff --git a/fdx_generator/target/test-classes/.netbeans_automatic_build b/fdx_generator/target/test-classes/.netbeans_automatic_build
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fdx_generator/target/test-classes/.netbeans_automatic_build

--
Gitblit v1.10.0