/* * 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 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); } }