Files
PowerPME_demo/src/main/java/Controllers/PrincipalController.java
2025-10-30 12:59:45 +01:00

336 lines
13 KiB
Java

package Controllers;
import Controllers.Traitement.MyWindow;
import Models.User.User;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import org.apache.log4j.Logger;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Accordion;
import javafx.scene.control.Label;
import javafx.scene.control.TitledPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Pane;
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
public class PrincipalController implements Initializable{
@FXML public AnchorPane window ;
@FXML public AnchorPane Content ;
@FXML public Pane TitrePane;
@FXML public Label UsernomprenomBlad;
@FXML public Label LabelDefaultLocal;
@FXML public ImageView ImageViewLogoPrincipal;
@FXML public ImageView ImageViewProfile;
@FXML public Accordion accord;
@FXML public TitledPane TitledPaneAccueil;
@FXML public TitledPane TitledPaneAchat;
@FXML public TitledPane TitledPaneVente;
@FXML public TitledPane TitledPaneStock;
@FXML public TitledPane TitledPaneDiver;
Logger logger = Logger.getLogger(PrincipalController.class.getName());
@Override
public void initialize(URL url, ResourceBundle rb) {
setImageLogo();
UsernomprenomBlad.setText(User.nom+" "+User.prenom);
LabelDefaultLocal.setText(User.UserLocal);
ImageViewProfile.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
try {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/User/Profile.fxml")));
} catch (IOException ex) {
logger.error("PrincipalController : Profile.fxml :" + ex.getMessage());
}
}
});
/**********************Accueil************************/
try {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Dashboard.fxml")));
} catch (IOException ex) {
logger.error("PrincipalController : Dashboard.fxml :" + ex.getMessage());
}
accord.setExpandedPane(TitledPaneAccueil);
/********************get Width and Height Content **************************/
Content.widthProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneWidth, Number newSceneWidth) {
MyWindow.PrincipalContentWidth = newSceneWidth;
}
});
Content.heightProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observableValue, Number oldSceneHeight, Number newSceneHeight) {
MyWindow.PrincipalContentHeight = newSceneHeight;
}
});
}
public void DefaultSelectedTitledPane(Integer number_titled_Pane){
if(number_titled_Pane == 1){
accord.setExpandedPane(TitledPaneAccueil);
}else if(number_titled_Pane == 2){
accord.setExpandedPane(TitledPaneAchat);
}else if(number_titled_Pane == 3){
accord.setExpandedPane(TitledPaneVente);
}else if(number_titled_Pane == 4){
accord.setExpandedPane(TitledPaneStock);
}else if(number_titled_Pane == 5){
accord.setExpandedPane(TitledPaneDiver);
}
}
/*********************************Accueil****************************************/
@FXML
private void DashbordButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Dashboard.fxml")));
}
@FXML
private void AideButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Aide.fxml")));
}
@FXML
private void ContactButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Contact.fxml")));
}
@FXML
private void LogicielButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Logiciel.fxml")));
}
@FXML
private void MentionsButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Home/Mentions.fxml")));
}
/*********************************Pour l'Achat************************************/
@FXML
private void FournisseurButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Fournisseur/FournisseurGestion.fxml")));
}
@FXML
private void BonReceptionButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/BonReceptionFrs/BonReceptionGestionFrs.fxml")));
}
@FXML
private void FactureFrsButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/FactureFrs/FactureFrsGestion.fxml")));
}
@FXML
private void ReglementButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Reglement/ReglementGestion.fxml")));
}
/*********************************Pour la Vente***********************************/
@FXML
private void VenteRapideCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/VenteRapideClt/VenteRapideClt.fxml")));
}
@FXML
private void PasserCommandeCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/CommandeClt/CommandeCltGestion.fxml")));
}
@FXML
private void BonLivraisonCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/BonLivraisonClt/BonLivraisonCltGestion.fxml")));
}
@FXML
private void FactureCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/FactureClt/FactureCltGestion.fxml")));
}
@FXML
private void MenuClientButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Client/MenuClient.fxml")));
}
@FXML
private void DevisCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Devis/DevisCltGestion.fxml")));
}
/*********************************Pour Produit**********************************/
@FXML
private void AjouterProduitButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Produit/AjouterProduit.fxml")));
}
@FXML
private void GestionProduitButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Produit/GestionProduit.fxml")));
}
/*********************************Pour l'utilisateur***********************************/
@FXML
private void AddUserButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/User/AddUser.fxml")));
}
@FXML
private void GestionUtilisateurButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/User/GestionUtilisateur.fxml")));
}
/********************************* Stock ***********************************/
@FXML
private void BondeSortieButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Stock/BondeSortie.fxml")));
}
@FXML
private void BondeEntrerButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Stock/BondeEntrer.fxml")));
}
@FXML
private void EtatStockButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Stock/EtatStockCategorie.fxml")));
}
/********************************* Caisse ***********************************/
@FXML
private void ChequeCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/ChequeClt/ChequeCltGestion.fxml")));
}
@FXML
private void CaisseEntreButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Caisse/CaisseEntre.fxml")));
}
@FXML
private void CaisseSortieButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Caisse/CaisseSortie.fxml")));
}
@FXML
private void FraisButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/Caisse/FraisGestion.fxml")));
}
@FXML
private void TraiteCltButtonAction(ActionEvent event) throws IOException {
window.getChildren().clear();
window.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/TraiteClt/TraiteCltGestion.fxml")));
}
private void setImageLogo()
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
// optional, but recommended
// process XML securely, avoid attacks like XML External Entities (XXE)
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
// parse XML file
DocumentBuilder db = dbf.newDocumentBuilder();
//PowerERP\conf\logo.xml
Document doc = db.parse(new File("./conf/logo.xml"));
doc.getDocumentElement().normalize();
Element elementCNX = (Element) doc.getElementsByTagName("Principal").item(0);
String pathLogo = elementCNX.getElementsByTagName("PathImage").item(0).getTextContent();
FileInputStream fis = new FileInputStream(pathLogo);
ImageViewLogoPrincipal.setImage(new Image(fis));
ImageViewLogoPrincipal.setFitWidth(Double.parseDouble(elementCNX.getElementsByTagName("FitWidth").item(0).getTextContent()));
ImageViewLogoPrincipal.setFitHeight(Double.parseDouble(elementCNX.getElementsByTagName("FitHeight").item(0).getTextContent()));
ImageViewLogoPrincipal.setLayoutX(Double.parseDouble(elementCNX.getElementsByTagName("LayoutX").item(0).getTextContent()));
ImageViewLogoPrincipal.setLayoutY(Double.parseDouble(elementCNX.getElementsByTagName("LayoutY").item(0).getTextContent()));
}
catch (ParserConfigurationException | SAXException | IOException e) {
System.out.println("error AuthentificationController/setImageLogo "+e.getMessage());
}
}
}