/* * 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 typeFichierAbstractSelectItem; @FXML private TextField showKeyToEncrypt; @FXML @Champ(mappedBy = "formatDate") private ComboBox formatDate; // @FXML // @Champ(mappedBy = "extension") // private ComboBox 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 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 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 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 getTypeFichierAbstractSelectItem() { return typeFichierAbstractSelectItem; } public void setTypeFichierAbstractSelectItem(AbstractSelectionItem 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); } }