package com.megatim.fdxconvert.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.fdxconvert.dao.HibernateUtil; import com.megatim.fdxconvert.forms.ValidateurListFormController; import com.megatim.fdxconvert.model.Configuration; import com.megatim.fdxconvert.pojo.DecryptageAES; import com.megatim.fdxconvert.pojo.FileToValidate; import com.megatim.fdxconvert.pojo.ImportFile; import com.megatim.fdxconvert.pojo.TxtFileToValidate; import com.megatim.fdxconvert.model.TypeFichier; import com.megatim.fdxconvert.pojo.DataFileToJson; import com.megatim.fdxconvert.service.ConfigurationService; import com.megatim.fdxconvert.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 com.megatim.fdxconvert.views.JsonStructureTableViewController; 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.MenuItem; 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; @FXML public MenuItem paramMenuItem; @FXML public MenuItem validationManuelMenuItem; private Stage parent; @FXML private Button btnImportationFormatValidation; @FXML private Button btnConvertionManuelle; @FXML private Button btnGestionTachesConvertion; @FXML public MenuItem conversionModelMenuItem; ConfigEditDialogController configEditDialogController; /** * Initializes the controller class. * * @param url * @param rb */ @Override public void initialize(URL url, ResourceBundle rb) { //On ajoute les tooltips aux boutons addToolTipBoutons(); } /** * Permet d'ajouter les tooltip aux boutons */ private void addToolTipBoutons() { //Variables Tooltip tooltipOperationsRecuSI = new Tooltip("Importation des formats de validation"); Tooltip tooltipOperationsGenerees = new Tooltip("Convertion manuelle"); Tooltip tooltipConsoleSuivieOperations = new Tooltip("Gestion des taches de convertion"); //On set le styles tooltipOperationsRecuSI.setStyle("-fx-background-color: rgba(216, 215, 208, 1); -fx-text-fill: black;"); tooltipOperationsGenerees.setStyle("-fx-background-color: rgba(216, 215, 208, 1); -fx-text-fill: black;"); tooltipConsoleSuivieOperations.setStyle("-fx-background-color: rgba(216, 215, 208, 1); -fx-text-fill: black;"); //On set les toolTips btnImportationFormatValidation.setTooltip(tooltipOperationsRecuSI); btnConvertionManuelle.setTooltip(tooltipOperationsGenerees); btnGestionTachesConvertion.setTooltip(tooltipConsoleSuivieOperations); } 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); stage.show(); } @FXML public void openConfigDialog(ActionEvent event) { Task 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 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 openTacheDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null) ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml") : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() ); loader.setControllerFactory(param -> new TacheListeDialogController()); Parent root = loader.load(); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openJournalDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null) ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml") : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() ); loader.setControllerFactory(param -> new JournalListDialogController()); Parent root = loader.load(); 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 parentStage = (Stage) mainContainer.getScene().getWindow(); ImportFile imp = new ImportFile(); imp.setType(TypeFichier.class); controller.initData(parentStage, 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 openAproposrDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null) ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml") : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() ); AproposEditDialogController controller = new AproposEditDialogController(); loader.setControllerFactory(param -> controller); Parent root = loader.load(); Stage parentStage = (Stage) mainContainer.getScene().getWindow(); //ImportFile imp = new ImportFile(); //imp.setType(TypeFichier.class); controller.initData(parentStage, TypeOperation.ADD, null, null, null, false); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openFileToValidateDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null) ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml") : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() ); FileToValidateEditDialogController controller = new FileToValidateEditDialogController(); loader.setControllerFactory(param -> controller); Parent root = loader.load(); Stage parentStage = (Stage) mainContainer.getScene().getWindow(); controller.initData(parentStage, TypeOperation.ADD, new FileToValidate(), null, null, true); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void quit(ActionEvent event) { HibernateUtil.shutdown(); System.exit(0); } @FXML public void openDecryptageAESSymDailog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null) ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml") : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() ); DecryptageAESEditDialogController controller = new DecryptageAESEditDialogController(); loader.setControllerFactory(param -> controller); Parent root = loader.load(); Stage stage = (Stage) mainContainer.getScene().getWindow(); controller.initData(stage, TypeOperation.ADD, new DecryptageAES(), null, null, true); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openTxtFileToValidateDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null) ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml") : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() ); TxtFileToValidateEditDialogController controller = new TxtFileToValidateEditDialogController(); loader.setControllerFactory(param -> controller); Parent root = loader.load(); Stage parentStage = (Stage) mainContainer.getScene().getWindow(); controller.initData(parentStage, TypeOperation.ADD, new TxtFileToValidate(), null, null, true); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openTxtFileToJsonDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() == null) ? AbstractEditDialogController.class.getResource("AbstractEditDialog.fxml") : AbstractViewContext.getInstance().getAbstractEditDialogControllerURL() ); DataFileToJsonEditDialogController controller = new DataFileToJsonEditDialogController(); loader.setControllerFactory(param -> controller); Parent root = loader.load(); Stage parentStage = (Stage) mainContainer.getScene().getWindow(); controller.initData(parentStage, TypeOperation.ADD, new DataFileToJson(), null, null, true); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openValidateurDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader(ValidateurListFormController.class.getResource("ValidateurListForm.fxml")); loader.setControllerFactory(param -> new ValidateurListFormController()); Parent root = loader.load(); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openConversionModelDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null) ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml") : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() ); loader.setControllerFactory(param -> new ConversionModelListDialogController()); Parent root = loader.load(); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } public void openJsonToValidateDialog(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader( (AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() == null) ? AbstractMainDialogController.class.getResource("AbstractMainDialog.fxml") : AbstractViewContext.getInstance().getAbstractMainDialogControllerURL() ); loader.setControllerFactory(param -> new ModeleJsonListeDialogController()); Parent root = loader.load(); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } @FXML public void openJsonStructureView(ActionEvent event) { try { FXMLLoader loader = new FXMLLoader(JsonStructureTableViewController.class.getResource("JsonStructureTableView.fxml")); Parent root = loader.load(); setStage(root); } catch (IOException ex) { Logger.getLogger(MainController.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } }