From 0c2c3ee5a55f36d270171f2f67938542e251fdc5 Mon Sep 17 00:00:00 2001 From: polo Date: Thu, 2 Jul 2026 00:14:17 +0200 Subject: fork utilisant maven --- src/main/java/application/Battle.java | 90 ++++++ src/main/java/application/Main.java | 24 ++ src/main/java/application/application.css | 7 + src/main/java/controlleur/BDD.java | 322 +++++++++++++++++++++ src/main/java/controlleur/Connexion.java | 65 +++++ src/main/java/controlleur/ControllerAdmin.java | 119 ++++++++ src/main/java/controlleur/ControllerTopMenu.java | 58 ++++ src/main/java/controlleur/ControlleurSimu.java | 218 ++++++++++++++ src/main/java/controlleur/CreationCompte.java | 38 +++ src/main/java/controlleur/EvenementController.java | 267 +++++++++++++++++ src/main/java/controlleur/GestionListe.java | 82 ++++++ src/main/java/controlleur/Instanciation.java | 304 +++++++++++++++++++ src/main/java/controlleur/ModificationListe.java | 214 ++++++++++++++ src/main/java/controlleur/StockageCreerListe.java | 75 +++++ src/main/java/controlleur/SupprListe.java | 27 ++ src/main/java/images/accueil.jpg | Bin 0 -> 138738 bytes src/main/java/images/android-fill.png | Bin 0 -> 698 bytes src/main/java/images/android-line.png | Bin 0 -> 773 bytes src/main/java/images/armees/BlackTemplars.png | Bin 0 -> 95304 bytes src/main/java/images/armees/android-fill.png | Bin 0 -> 698 bytes src/main/java/images/deco.png | Bin 0 -> 4808 bytes src/main/java/images/inversion_icons.png | Bin 0 -> 1338 bytes src/main/java/images/tournoi1.jpg | Bin 0 -> 66986 bytes src/main/java/images/tournoi2.jpg | Bin 0 -> 115464 bytes src/main/java/images/tournoi3.jpg | Bin 0 -> 259922 bytes src/main/java/images/wip.jpg | Bin 0 -> 46406 bytes src/main/java/modele/Aptitude.java | 14 + src/main/java/modele/AptitudeArme.java | 20 ++ src/main/java/modele/Arme.java | 91 ++++++ src/main/java/modele/ArmeDist.java | 31 ++ src/main/java/modele/ArmeMelee.java | 39 +++ src/main/java/modele/Armee.java | 36 +++ src/main/java/modele/ArmeeListe.java | 104 +++++++ src/main/java/modele/Bouton.java | 31 ++ src/main/java/modele/Calcul.java | 302 +++++++++++++++++++ src/main/java/modele/Evenement.java | 48 +++ src/main/java/modele/Faction.java | 19 ++ src/main/java/modele/Figurine.java | 158 ++++++++++ src/main/java/modele/Unit.java | 96 ++++++ src/main/java/modele/User.java | 83 ++++++ src/main/java/module-info.java | 6 + src/main/java/vue/AfficheAccueil.java | 108 +++++++ src/main/java/vue/AfficheAdmin.java | 151 ++++++++++ src/main/java/vue/AfficheConnexion.java | 54 ++++ src/main/java/vue/AfficheConnexionFailed.java | 56 ++++ src/main/java/vue/AfficheCreationCompte.java | 56 ++++ src/main/java/vue/AfficheCreerListe.java | 248 ++++++++++++++++ src/main/java/vue/AfficheEvenement.java | 88 ++++++ src/main/java/vue/AfficheGestionCompte.java | 131 +++++++++ src/main/java/vue/AfficheTopMenu.java | 116 ++++++++ .../java/vue/GestionListe/AfficheGestionListe.java | 126 ++++++++ .../vue/GestionListe/AfficheModificationListe.java | 165 +++++++++++ .../java/vue/simulation/AfficheSimulation.java | 201 +++++++++++++ .../java/vue/simulation/SimAptAndWeaponsVBox.java | 130 +++++++++ src/main/java/vue/simulation/SimFigurinesVBox.java | 139 +++++++++ src/main/java/vue/simulation/SimHistogramme.java | 101 +++++++ src/main/java/vue/simulation/SimUnitsVBox.java | 65 +++++ 57 files changed, 4923 insertions(+) create mode 100644 src/main/java/application/Battle.java create mode 100644 src/main/java/application/Main.java create mode 100644 src/main/java/application/application.css create mode 100644 src/main/java/controlleur/BDD.java create mode 100644 src/main/java/controlleur/Connexion.java create mode 100644 src/main/java/controlleur/ControllerAdmin.java create mode 100644 src/main/java/controlleur/ControllerTopMenu.java create mode 100644 src/main/java/controlleur/ControlleurSimu.java create mode 100644 src/main/java/controlleur/CreationCompte.java create mode 100644 src/main/java/controlleur/EvenementController.java create mode 100644 src/main/java/controlleur/GestionListe.java create mode 100644 src/main/java/controlleur/Instanciation.java create mode 100644 src/main/java/controlleur/ModificationListe.java create mode 100644 src/main/java/controlleur/StockageCreerListe.java create mode 100644 src/main/java/controlleur/SupprListe.java create mode 100644 src/main/java/images/accueil.jpg create mode 100644 src/main/java/images/android-fill.png create mode 100644 src/main/java/images/android-line.png create mode 100644 src/main/java/images/armees/BlackTemplars.png create mode 100644 src/main/java/images/armees/android-fill.png create mode 100644 src/main/java/images/deco.png create mode 100644 src/main/java/images/inversion_icons.png create mode 100644 src/main/java/images/tournoi1.jpg create mode 100644 src/main/java/images/tournoi2.jpg create mode 100644 src/main/java/images/tournoi3.jpg create mode 100644 src/main/java/images/wip.jpg create mode 100644 src/main/java/modele/Aptitude.java create mode 100644 src/main/java/modele/AptitudeArme.java create mode 100644 src/main/java/modele/Arme.java create mode 100644 src/main/java/modele/ArmeDist.java create mode 100644 src/main/java/modele/ArmeMelee.java create mode 100644 src/main/java/modele/Armee.java create mode 100644 src/main/java/modele/ArmeeListe.java create mode 100644 src/main/java/modele/Bouton.java create mode 100644 src/main/java/modele/Calcul.java create mode 100644 src/main/java/modele/Evenement.java create mode 100644 src/main/java/modele/Faction.java create mode 100644 src/main/java/modele/Figurine.java create mode 100644 src/main/java/modele/Unit.java create mode 100644 src/main/java/modele/User.java create mode 100644 src/main/java/module-info.java create mode 100644 src/main/java/vue/AfficheAccueil.java create mode 100644 src/main/java/vue/AfficheAdmin.java create mode 100644 src/main/java/vue/AfficheConnexion.java create mode 100644 src/main/java/vue/AfficheConnexionFailed.java create mode 100644 src/main/java/vue/AfficheCreationCompte.java create mode 100644 src/main/java/vue/AfficheCreerListe.java create mode 100644 src/main/java/vue/AfficheEvenement.java create mode 100644 src/main/java/vue/AfficheGestionCompte.java create mode 100644 src/main/java/vue/AfficheTopMenu.java create mode 100644 src/main/java/vue/GestionListe/AfficheGestionListe.java create mode 100644 src/main/java/vue/GestionListe/AfficheModificationListe.java create mode 100644 src/main/java/vue/simulation/AfficheSimulation.java create mode 100644 src/main/java/vue/simulation/SimAptAndWeaponsVBox.java create mode 100644 src/main/java/vue/simulation/SimFigurinesVBox.java create mode 100644 src/main/java/vue/simulation/SimHistogramme.java create mode 100644 src/main/java/vue/simulation/SimUnitsVBox.java (limited to 'src/main/java') diff --git a/src/main/java/application/Battle.java b/src/main/java/application/Battle.java new file mode 100644 index 0000000..4799b20 --- /dev/null +++ b/src/main/java/application/Battle.java @@ -0,0 +1,90 @@ +package application; + +import java.lang.reflect.Field; +import modele.Arme; +import modele.Armee; +import modele.ArmeeListe; +import modele.Unit; + +/* mémoire des actions de l'utilisateurs, liste, unités, PV, armes, aptitudes */ +public class Battle +{ + static private ArmeeListe selected_list1 = null; + static private ArmeeListe selected_list2 = null; + static private Armee army1; + static private Armee army2; + static private int index_selected_unit1 = -1; + static private int index_selected_unit2 = -1; + + // getters/setters + static public ArmeeListe getSelectedList(int nb) { + return (nb == 1 ? selected_list1 : selected_list2); + } + static public void setSelectedList(int nb, ArmeeListe list) { + if(nb == 1) { + selected_list1 = list; + } + else if(nb == 2) { + selected_list2 = list; + } + else { + System.out.println("le paramètre nb doit valoir 1 ou 2"); + } + } + static public Armee getArmy(int nb) { + return (nb == 1 ? army1 : army2); + } + static public void setArmy(int nb, Armee a) { + if(nb == 1) { + army1 = a; + } + else if(nb == 2) { + army2 = a; + } + else { + System.out.println("le paramètre nb doit valoir 1 ou 2"); + } + } + static public Unit getSelectedUnit(int nb) { + return (nb == 1 ? selected_list1.getUnits().get(index_selected_unit1) : selected_list2.getUnits().get(index_selected_unit2)); + } + static public int getSelectedUnitIndex(int nb) { + return (nb == 1 ? index_selected_unit1 : index_selected_unit2); + } + static public void setSelectedUnit(int nb, int unit_list_index) { + if(nb == 1) { + index_selected_unit1 = unit_list_index; + } + else if(nb == 2) { + index_selected_unit2 = unit_list_index; + } + else { + System.out.println("le paramètre nb doit valoir 1 ou 2"); + } + } + static public Arme getSeletedWeapon(int nb, String group_name) { + return getSelectedUnit(nb).getIdenticalFigsGroups().get(group_name).get(0).getSelectedWeapon(); + } + static public void reverseArmies() + { + Field[] fields = selected_list1.getClass().getDeclaredFields(); + try { + for (Field field : fields) { + field.setAccessible(true); + Object temp = field.get(selected_list1); + field.set(selected_list1, field.get(selected_list2)); + field.set(selected_list2, temp); + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + static public void clean() { + selected_list1 = null; + selected_list2 = null; + army1 = null; + army2 = null; + index_selected_unit1 = -1; + index_selected_unit2 = -1; + } +} diff --git a/src/main/java/application/Main.java b/src/main/java/application/Main.java new file mode 100644 index 0000000..4054705 --- /dev/null +++ b/src/main/java/application/Main.java @@ -0,0 +1,24 @@ +package application; + +import javafx.application.Application; +import javafx.stage.Stage; +import vue.AfficheConnexion; + +public class Main extends Application { + + // le main appelle la vue de connexion + @Override + public void start(Stage primaryStage) { + try { + + AfficheConnexion.affiche(primaryStage); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + launch(args); + + } +} diff --git a/src/main/java/application/application.css b/src/main/java/application/application.css new file mode 100644 index 0000000..060d859 --- /dev/null +++ b/src/main/java/application/application.css @@ -0,0 +1,7 @@ +/* JavaFX CSS - Leave this comment until you have at least create one rule which uses -fx-Property */ + +.vbox-border { + -fx-border-color: black; + -fx-border-width: 2px; + -fx-border-radius: 5px; +} diff --git a/src/main/java/controlleur/BDD.java b/src/main/java/controlleur/BDD.java new file mode 100644 index 0000000..af1a754 --- /dev/null +++ b/src/main/java/controlleur/BDD.java @@ -0,0 +1,322 @@ +package controlleur; + +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; + +import javafx.scene.layout.VBox; +import modele.Arme; +import modele.ArmeeListe; +import modele.Evenement; +import modele.Unit; +import modele.User; + +public class BDD { + + private Connection connec; + private PreparedStatement stat = null; + private ResultSet rs ; + + private static String user; + private static String password; + private static String dbname; + + public BDD() { + try { + //Class.forName("com.mysql.cj.jdbc.Driver"); + Class.forName("org.mariadb.jdbc.Driver"); + //String host = "mysql-stathammer.alwaysdata.net"; + String host = "localhost"; + //this.connec = DriverManager.getConnection("jdbc:mysql://" + host + ":3306/"+ dbname, user, password); + this.connec = DriverManager.getConnection("jdbc:mariadb://" + host + ":3306/"+ dbname, user, password); + this.rs = connec.prepareStatement("SELECT * FROM faction;").executeQuery(); + } catch (ClassNotFoundException e) { + // TODO: handle exception + + e.printStackTrace(); + } catch (SQLException e) { + System.err.println(e.getMessage()); + } + } + + public static void setInfos(String login, String pwd, String base) + { + user = login; + password = pwd; + dbname = base; + } + + public Statement getStatement() throws SQLException + { + return connec.createStatement(); + } + + public PreparedStatement getPreparedStatement(String sql, Object... params) throws SQLException + { + stat = connec.prepareStatement(sql); + if(params.length > 0) + { + for (int i = 0; i < params.length; i++) { + stat.setObject(i + 1, params[i]); + } + } + return stat; + } + + public ArrayList selectUtilisateur(String nom, String mdp) { + ArrayList rendu = new ArrayList(); + try { + + String requete = "SELECT id_utilisateur, nom_utilisateur, role_utilisateur FROM utilisateur WHERE nom_utilisateur=? AND mdp_utilisateur = ?;"; + stat = connec.prepareStatement(requete); + stat.setString(1, nom); + stat.setString(2,String.valueOf(mdp)); + //stat.setString(2,String.valueOf(mdp.hashCode())); + + ResultSet rs = stat.executeQuery(); + ResultSetMetaData md = rs.getMetaData(); + ArrayList column = new ArrayList(); + + for (int i = 1; i <= md.getColumnCount(); i++) { + column.add(md.getColumnName(i)); + } + while (rs.next()) { + rendu.add(rs.getString("nom_utilisateur")); + rendu.add(rs.getInt("id_utilisateur")); + rendu.add(rs.getString("role_utilisateur")); + } + return rendu; + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + + } + return rendu; + } + + public ArrayList creerUtilisateur(String adresse, String nom, String mdp) { + ArrayList crea = new ArrayList(); + + String creationRequete = "INSERT INTO utilisateur" + " (nom_utilisateur, email_utilisateur, mdp_utilisateur)" + + "VALUES (?, ?, ?);"; + try { + if (connec == null || connec.isClosed()) { + System.err.println("La connexion à la bdd n'est pas possible."); + return crea; + } + PreparedStatement stat = connec.prepareStatement(creationRequete); + stat.setString(1, nom); + stat.setString(2, adresse); + stat.setString(3, mdp); + + int rowsInserted = stat.executeUpdate(); + + if (rowsInserted > 0) { + crea.add(adresse); + } + stat.close(); + } catch (SQLException e) { + System.err.println("Erreur SQL : " + e.getMessage()); + } + return crea; + } + + public Connection getConnection() { + return this.connec; + } + + public void close() { + try { + connec.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public ArrayList select(String requete,String... param ) throws SQLException{ + ArrayList rendu = new ArrayList(); + try { + PreparedStatement pstat = null; + + pstat = connec.prepareStatement(requete); + if(param.length>0) { + for(int i = 1;i<=param.length;i++) { + pstat.setString(i, param[i-1]); + } + } + + rs.close(); + rs = pstat.executeQuery(); + ResultSetMetaData md = rs.getMetaData(); + ArrayList column = new ArrayList(); + + + for(int i =1;i<=md.getColumnCount();i++) { + column.add(md.getColumnName(i)); + } + while(rs.next()) { + for (String col : column) { + rendu.add(rs.getString(col)); + } + + + + } + + return rendu; + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + + + } + return rendu; + } + + public void updateUtilisateur(String pseudo,int id) { + try { + stat = this.getPreparedStatement("UPDATE `utilisateur` SET nom_utilisateur=? WHERE id_utilisateur=?;",pseudo,id); + stat.executeUpdate(); + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + } + } + public void insertListe(ArmeeListe armee,User session) { + try { + int id; + ArrayList rendu = new ArrayList(); + String requete = "INSERT INTO liste VALUES(DEFAULT,?,?,?,?);"; + stat = this.getPreparedStatement(requete); + stat.setString(1, armee.getName()); + stat.setString(2, armee.getDescription()); + stat.setString(3, armee.getData()); + stat.setInt(4, session.getId()); + stat.executeUpdate(); + + requete = "SELECT id_liste FROM liste WHERE nom_liste = ?;"; + + rendu = this.select(requete,armee.getName()); + + id = Integer.parseInt(rendu.getFirst()); + requete = "INSERT INTO contenir VALUES(?,?);"; + + for(Unit unit : armee.getUnits()) { + + + stat = this.getPreparedStatement(requete); + stat.setInt(1, unit.getId()); + stat.setInt(2, id); + stat.executeUpdate(); + } + + } catch (SQLException e) { + // TODO: handle exception + } + } + + + public void updateMp(String mdp,int id) { + try { + //stat = this.getPreparedStatement("UPDATE `utilisateur` SET mdp_utilisateur=? WHERE id_utilisateur=?;",mdp.hashCode(),id); + stat = this.getPreparedStatement("UPDATE `utilisateur` SET mdp_utilisateur=? WHERE id_utilisateur=?;",mdp.hashCode(),id); + stat.executeUpdate(); + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + } + } + + public int UtilisateurID(String nom, String mdp) { + try { + stat = this.getPreparedStatement("SELECT id_utilisateur FROM utilisateur WHERE nom_utilisateur=? AND mdp_utilisateur = ?;", + nom, mdp); + + ResultSet rs = stat.executeQuery(); + rs.next(); + int id = rs.getInt("id_utilisateur"); + + return id; + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + + return 0; + } + } + public String UtilisateurRole(String nom, String mdp) { + String role = "null"; + try { + + stat = this.getPreparedStatement("SELECT role_utilisateur FROM utilisateur WHERE nom_utilisateur=? AND mdp_utilisateur = ?;", + nom, mdp); + + ResultSet rs = stat.executeQuery(); + rs.next(); + role = rs.getString("role_utilisateur"); + + return role; + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + + + } + return role; + } + + public String UtilisateurMdp(int id) { + String mdp = "test null"; + try { + stat = this.getPreparedStatement("SELECT mdp_utilisateur FROM utilisateur WHERE id_utilisateur=?;", + id); + + ResultSet rs = stat.executeQuery(); + rs.next(); + mdp = rs.getString("mdp_utilisateur"); + + return mdp; + + } catch (SQLException e) { + // TODO: handle exception + System.err.println(e.getMessage()); + + + } + return mdp; + } + + + public void ajouter(Arme a) { + try { + stat.executeUpdate("INSERT INTO arme (id,prenom,login,password,statut,age) VALUES (NULL,"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public void supprimer(Arme a) { + try { + stat.executeUpdate("DELETE FROM acces WHERE login =''"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/src/main/java/controlleur/Connexion.java b/src/main/java/controlleur/Connexion.java new file mode 100644 index 0000000..f8c6b4f --- /dev/null +++ b/src/main/java/controlleur/Connexion.java @@ -0,0 +1,65 @@ +package controlleur; + +import java.sql.SQLException; +import java.util.ArrayList; + +import javafx.stage.Stage; +import modele.Evenement; +import modele.User; +import vue.AfficheAccueil; +import vue.AfficheConnexionFailed; + +public class Connexion { + public static EvenementController eventC ; + public static Evenement event ; + public static void verif(String login, String mdp,Stage primaryStage) { + + login = login.trim(); + mdp = Integer.toString(mdp.hashCode()); + BDD conec = new BDD(); + + eventC = new EvenementController(); + event = new Evenement(eventC.getNom_event().get(0), + eventC.getNom_image().get(0), + eventC.getDesc_event().get(0), + eventC.getDate_event().get(0)); + System.out.println(eventC.getNom_image().get(0)); + ArrayList rendu = conec.selectUtilisateur(login, mdp); + int id = conec.UtilisateurID(login, mdp); + String role = conec.UtilisateurRole(login, mdp); + //System.out.println(role); + conec.close(); + + try { + if (login.equals(rendu.get(0))) { + User session = new User(login,id,role); + + //primaryStage.close(); + AfficheAccueil.affiche(primaryStage,session); + } + else { + System.out.println(rendu); + } + } + catch(Exception e) { + AfficheConnexionFailed.affiche(primaryStage); + } + } + + public static void updatePseudo(String pseudo,int id) throws SQLException { + BDD conec = new BDD(); + conec.updateUtilisateur(pseudo,id); + conec.close(); + } + public static void updateMdp(String mdp,int id) throws SQLException { + BDD conec = new BDD(); + conec.updateMp(mdp,id); + conec.close(); + } + public static String selectMdp(int id) throws SQLException { + BDD conec = new BDD(); + String mdp =conec.UtilisateurMdp(id); + conec.close(); + return mdp; + } +} \ No newline at end of file diff --git a/src/main/java/controlleur/ControllerAdmin.java b/src/main/java/controlleur/ControllerAdmin.java new file mode 100644 index 0000000..a12f01c --- /dev/null +++ b/src/main/java/controlleur/ControllerAdmin.java @@ -0,0 +1,119 @@ +package controlleur; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javafx.geometry.Pos; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.text.Text; +import javafx.stage.FileChooser; +import javafx.stage.Stage; +import vue.AfficheAccueil; +import vue.AfficheAdmin; +import vue.AfficheConnexionFailed; +import modele.Evenement; +import modele.User; + +public class ControllerAdmin { + private static String destinationDir; + private static File destinationFile ; + private static File file; + + public static void parcourir(Stage primaryStage, ImageView imageView) { + FileChooser fileChooser = new FileChooser(); + fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Fichiers Images", "*.png", "*.jpg")); + + // Ouvrir le file chooser et obtenir le fichier sélectionné + file = fileChooser.showOpenDialog(primaryStage); + + boolean nomFich = true; + + if (file != null) { + + for (int i = 0 ; i < Connexion.eventC.getNbrEvt();i++) { + + if (file.getName().equals(Connexion.eventC.getNom_image().get(i))) { + + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("StatHammer : Nom d'image déjà existant"); + alert.setHeaderText(null); + alert.setContentText("Le nom de l'image est déjà prise."); + alert.showAndWait(); + nomFich = false; + + } + } + if (nomFich) { + System.out.println("Fichier sélectionné : " + file.getName()); + System.out.println("Chemin du fichier : " + file.getAbsolutePath()); + + // Créer une nouvelle image à partir du chemin absolu du fichier + Image image = new Image("file:" + file.getAbsolutePath()); + + // Définir l'image dans l'ImageView + imageView.setImage(image); + + // Destination pour sauvegarder l'image + destinationDir = "src\\images"; + File destinationFolder = new File(destinationDir); + + // Créez le répertoire s'il n'existe pas + if (!destinationFolder.exists()) { + destinationFolder.mkdirs(); + } + + File nouveauNom = new File(file.getName()); + destinationFile = new File(destinationFolder, nouveauNom.getName()); + + } + + } + } + + + //méthode "valider" + public static VBox valider(String nom_evt, String nom_img, String desc, String date) { + Evenement evt = new Evenement(nom_evt, nom_img, desc, date); + VBox event = new VBox(); + event.setPrefHeight(50); + event.setAlignment(Pos.CENTER); + try { + // Copier le fichier dans le dossier de destination + Files.copy(file.toPath(), destinationFile.toPath()); + System.out.println("Fichier enregistré à : " + destinationFile.getAbsolutePath()); + EvenementController.insererEvenement(evt); + event = EvenementController.EvenementVBox(); + + } catch (IOException ioException) { + System.out.println("Probleme sur Valider"); + ioException.printStackTrace(); + } + return event; + } + + public static File getFile() { + return file; + } + + + public static String getDestinationDir() { + return destinationDir; + } + + + +} \ No newline at end of file diff --git a/src/main/java/controlleur/ControllerTopMenu.java b/src/main/java/controlleur/ControllerTopMenu.java new file mode 100644 index 0000000..baef8df --- /dev/null +++ b/src/main/java/controlleur/ControllerTopMenu.java @@ -0,0 +1,58 @@ +package controlleur; + +import application.Battle; +import javafx.stage.Stage; +import modele.Evenement; +import modele.User; +import vue.AfficheAccueil; +import vue.AfficheAdmin; +import vue.AfficheConnexion; +import vue.AfficheCreerListe; +import vue.AfficheGestionCompte; +import vue.GestionListe.AfficheGestionListe; +import vue.simulation.AfficheSimulation; + +public class ControllerTopMenu { + static BDD db = new BDD(); + + public static void go_accueil(Stage primaryStage,User session) { + //primaryStage.close(); pour fermer stage + AfficheAccueil.affiche(primaryStage,session); + } + public static void go_gestion_compte(Stage primaryStage,User session) { + AfficheGestionCompte.affiche(primaryStage,session); + } + public static void go_gestion_listes(Stage primaryStage,User session) { + +// db.getArmyLists(session); + AfficheGestionListe.affiche(primaryStage, session); + + // + + } + public static void go_deco(Stage primaryStage, User session) { + AfficheSimulation.cleanWeaponsAtitudesMenu(); + Battle.clean(); // VRAIMENT ?! + session = null; + AfficheConnexion.affiche(primaryStage); + } + public static void go_simulation(Stage primaryStage, User session){ + + + Instanciation.getArmyLists(session); + + AfficheSimulation.affiche(primaryStage, session); + } + public static void go_admin(Stage primaryStage,User session) { + AfficheAdmin.affiche(primaryStage,session); + } + public static void go_creer_liste(Stage primaryStage, User session) { + AfficheCreerListe.afficheCreerListe(primaryStage, session); + } +// public static void go_gestionliste(Stage primaryStage,User session) { +// AfficheGestionListe.affiche(primaryStage,session); +// } +} + + + diff --git a/src/main/java/controlleur/ControlleurSimu.java b/src/main/java/controlleur/ControlleurSimu.java new file mode 100644 index 0000000..a349036 --- /dev/null +++ b/src/main/java/controlleur/ControlleurSimu.java @@ -0,0 +1,218 @@ +package controlleur; + +import java.util.ArrayList; +import java.util.HashMap; +import application.Battle; +import javafx.scene.control.Button; +import javafx.scene.control.ChoiceBox; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.FlowPane; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; +import modele.Aptitude; +import modele.Arme; +import modele.ArmeeListe; +import modele.Calcul; +import modele.Figurine; +import modele.Unit; +import vue.simulation.AfficheSimulation; +import vue.simulation.SimAptAndWeaponsVBox; +import vue.simulation.SimFigurinesVBox; +import vue.simulation.SimHistogramme; +import vue.simulation.SimUnitsVBox; + +public class ControlleurSimu +{ + // déroulement des unités d'une liste (appui sur lists_drop_down.get(i) dans AfficheSimulation) + public static void selectAList(int num_list, ArrayList lists, String choice) + { + // choix de la liste + for(ArmeeListe one_list : lists) + { + if(one_list.getName().equals(choice)) { + // "copie profonde" d'une liste + ArmeeListe list = new ArmeeListe(one_list.getName(), one_list.getDescription(), one_list.getData()); + Battle.setSelectedList(num_list, list); + break; // choix unique + } + } + + // obtenir les unités, l'armée, les figurines, armes et aptitudes + Instanciation.getUnitsOfAList(Battle.getSelectedList(num_list)); + + Battle.setArmy(num_list, Battle.getSelectedList(num_list).getUnits().get(0).getArmee()); + + } + + // déroulement des figurines d'une unité (appui sur buttons.get(i) dans SimUnitsVBox) + public static void PullDownUnits(int num_list, HBox dropdown_menu_box, SimUnitsVBox list_box) { + ArmeeListe list = Battle.getSelectedList(num_list); + + // noms des unités + String[] unit_names = new String[list.getUnits().size()]; + for(int i = 0; i < list.getUnits().size(); i++) { + unit_names[i] = list.getUnits().get(i).getName(); + } + + // supprimer l'ancien logo + if(dropdown_menu_box.getChildren().size() == 2){ + dropdown_menu_box.getChildren().remove(1); + } + + // logo de faction + Image logo_faction = null; + if(Battle.getArmy(num_list) != null) // possibilité d'une liste vide + { + String file_name = Battle.getArmy(num_list).getLogo(); + logo_faction = new Image("/images/armees/" + file_name); + } + ImageView logo_box = new ImageView(); + + logo_box.setPreserveRatio(true); + logo_box.fitHeightProperty().bind(dropdown_menu_box.heightProperty()); + logo_box.setImage(logo_faction); + dropdown_menu_box.getChildren().add(logo_box); + + // effacer la zone armes et aptitudes + AfficheSimulation.getWeaponsAtitudesMenu().setStyle("-fx-border-width: 0;"); + AfficheSimulation.getWeaponsAtitudesMenu().getChildren().clear(); + + // effacer et recréer les unités + list_box.getButtons().clear(); + list_box.getFigBoxes().clear(); + list_box.getChildren().clear(); + list_box.setList(num_list); + } + + // déroulement des figurines d'une unité (appui sur buttons.get(i) dans SimUnitsVBox) + public static void selectAnUnit(SimUnitsVBox lists, int col, int j) + { + ArrayList