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