summaryrefslogtreecommitdiff
path: root/src/main/java/controlleur/EvenementController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/controlleur/EvenementController.java')
-rw-r--r--src/main/java/controlleur/EvenementController.java267
1 files changed, 267 insertions, 0 deletions
diff --git a/src/main/java/controlleur/EvenementController.java b/src/main/java/controlleur/EvenementController.java
new file mode 100644
index 0000000..ad21353
--- /dev/null
+++ b/src/main/java/controlleur/EvenementController.java
@@ -0,0 +1,267 @@
1package controlleur;
2
3import java.io.IOException;
4import java.nio.file.Files;
5import java.nio.file.Paths;
6import java.sql.PreparedStatement;
7import java.sql.ResultSet;
8import java.sql.SQLException;
9import java.util.ArrayList;
10import java.io.IOException;
11import java.nio.file.Files;
12import java.nio.file.Path;
13import java.nio.file.Paths;
14import javafx.geometry.Pos;
15import javafx.scene.control.Button;
16import javafx.scene.control.Label;
17import javafx.scene.layout.HBox;
18import javafx.scene.layout.VBox;
19import modele.Evenement;
20import vue.AfficheAdmin;
21
22
23public class EvenementController {
24 private static int nbrEvt;
25
26 public void setNbrEvt(int nbrEvt) {
27 EvenementController.nbrEvt = nbrEvt;
28 }
29
30 private static ArrayList<String> nom_event;
31 private static ArrayList<String> nom_image;
32 private static ArrayList<String> desc_event;
33 private static ArrayList<String> date_event;
34
35
36 public ArrayList<String> getNom_event() {
37 return nom_event;
38 }
39
40 public ArrayList<String> getNom_image() {
41 return nom_image;
42 }
43
44 public ArrayList<String> getDesc_event() {
45 return desc_event;
46 }
47
48 public ArrayList<String> getDate_event() {
49 return date_event;
50 }
51
52 //EvenementController permet de recenser tous les évènements sous forme d'ArrayList<String>
53 //Le rôle de ce constructeur a changé pas mal de fois, d'où un nom peu cohérent...
54 public EvenementController() {
55
56 nbrEvt = 0;
57
58 nom_event= new ArrayList<String>();
59 nom_image= new ArrayList<String>();
60 desc_event= new ArrayList<String>();
61 date_event= new ArrayList<String>();
62
63
64 // Créer une instance de BDD
65 BDD bdd = new BDD();
66
67 try {
68 // Requête SQL
69 String sql = "SELECT * FROM evenement"; // Requête
70 PreparedStatement ps = bdd.getPreparedStatement(sql);
71
72 // Exécution de la requête
73 ResultSet rs = ps.executeQuery();
74
75
76 // Traiter les résultats
77 while (rs.next()) {
78 int i=0;
79 nbrEvt = getNbrEvt() + 1;
80
81 String nom_evt = rs.getString("nom_evenement");
82 String nom_img = rs.getString("nom_image");
83 String desc_evt = rs.getString("description_evenement");
84 String date_evt = rs.getString("date_evenement");
85
86 nom_event.add(nom_evt);
87 nom_image.add(nom_img);
88 desc_event.add(desc_evt);
89 date_event.add(date_evt);
90
91 // Afficher les résultats ou les ajouter à une liste/structure de données
92 System.out.println("Image : " + nom_img);
93 System.out.println("Événement : " + nom_evt);
94 System.out.println("Description : " + desc_evt);
95 System.out.println("Date : " + date_evt);
96 i++;
97 }
98 } catch (SQLException e) {
99 System.err.println("Erreur lors de l'accès à la base de données : " + e.getMessage());
100 } finally {
101 // Être sûr de fermer la connexion à la base de données
102 bdd.close();
103 }
104 }
105
106 //Méthode pour insérer un évènement dans la BDD ainsi que d'ajouter cet évènement dans EvenementController
107 public static void insererEvenement(Evenement evt) {
108 // Créer une instance de BDD
109 BDD bdd = new BDD();
110 try {
111 // Requête SQL
112 String sql = "INSERT INTO evenement (nom_evenement, nom_image, description_evenement, date_evenement, id_utilisateur) VALUES (?, ?, ?, ?, 3)"; // Requête
113 PreparedStatement ps = bdd.getPreparedStatement(sql);
114
115 // Associer les valeurs aux paramètres
116 ps.setString(1, evt.getNom_evenement());
117 ps.setString(2, evt.getNom_image());
118 ps.setString(3, evt.getDescritption_evenement());
119 ps.setString(4, evt.getData_evenement());
120
121 Connexion.eventC.getNom_event().add(evt.getNom_evenement());
122 Connexion.eventC.getNom_image().add(evt.getNom_image());
123 Connexion.eventC.getDesc_event().add(evt.getDescritption_evenement());
124 Connexion.eventC.getDate_event().add(evt.getData_evenement());
125
126 Connexion.eventC.setNbrEvt(Connexion.eventC.getNbrEvt()+1);
127
128 // Exécution de la requête
129 ps.executeUpdate();
130 System.out.println("Insertion réussiedans la base données");
131
132 } catch (SQLException e) {
133 System.err.println("Erreur lors de l'accès à la base de données : " + e.getMessage());
134 } finally {
135 // Être sûr de fermer la connexion à la base de données
136 bdd.close();
137 }
138 }
139
140
141 public static VBox EvenementVBox() {
142 VBox event = new VBox();
143 event.setPrefHeight(50);
144 event.setAlignment(Pos.CENTER);
145
146 for (int i = 0; i < Connexion.eventC.getNbrEvt() ; i++) {
147
148 HBox hevent = new HBox();
149 hevent.setAlignment(Pos.CENTER);
150 hevent.setPrefHeight(50);
151
152 String num_evt = new String(i+1+". ");
153 Label numLabel = new Label(num_evt);
154 numLabel.setPrefWidth(25);
155 hevent.getChildren().add(numLabel);
156
157
158 String nom_evt = Connexion.eventC.getNom_event().get(i);
159 Label nomLabel = new Label(nom_evt);
160 nomLabel.setPrefWidth(150);
161 hevent.getChildren().add(nomLabel);
162
163 String nom_img = Connexion.eventC.getNom_image().get(i);
164 Label imgLabel = new Label(nom_img);
165 imgLabel.setPrefWidth(150);
166 hevent.getChildren().add(imgLabel);
167
168 String desc_evt = Connexion.eventC.getDesc_event().get(i);
169 Label descLabel = new Label(desc_evt);
170 descLabel.setPrefWidth(150);
171 hevent.getChildren().add(descLabel);
172
173 String date_evt = Connexion.eventC.getDate_event().get(i);
174 Label dateLabel = new Label(date_evt);
175 dateLabel.setPrefWidth(100);
176 hevent.getChildren().add(dateLabel);
177
178 Button bouton = new Button("X");
179 hevent.getChildren().add(bouton);
180
181 Evenement evt = new Evenement(nom_evt,nom_img,desc_evt,date_evt);
182
183 bouton.setOnAction(e -> {
184 EvenementController.supprimerEvenement(evt);
185
186 });
187
188 event.getChildren().add(hevent);
189
190 }
191
192 return event;
193 }
194
195
196 // Méthode "supprimer" modifiée pour accepter un argument
197 public static void supprimerEvenement(Evenement evt) {
198 // Créer une instance de BDD
199 BDD bdd = new BDD();
200 try {
201 // Requête SQL
202 String sql = "DELETE FROM evenement WHERE nom_evenement = ?"; // Requête DELETE
203 PreparedStatement ps = bdd.getPreparedStatement(sql);
204
205 // Associer l'ID de l'événement à supprimer
206 ps.setString(1, evt.getNom_evenement());
207
208 // Exécution de la requête
209 int rowsAffected = ps.executeUpdate();
210 if (rowsAffected > 0) {
211 EvenementController.effacerImage(evt.getNom_image());
212
213 Connexion.eventC.getNom_event().remove(evt.getNom_evenement());
214 Connexion.eventC.getNom_image().remove(evt.getNom_image());
215 Connexion.eventC.getDesc_event().remove(evt.getDescritption_evenement());
216 Connexion.eventC.getDate_event().remove(evt.getData_evenement());
217
218 Connexion.eventC.setNbrEvt(Connexion.eventC.getNbrEvt()-1);
219
220
221 AfficheAdmin.setEvents(EvenementController.EvenementVBox());
222 Connexion.event = new Evenement(Connexion.eventC.getNom_event().get(0),
223 Connexion.eventC.getNom_image().get(0),
224 Connexion.eventC.getDesc_event().get(0),
225 Connexion.eventC.getDate_event().get(0));
226 System.out.println(Connexion.eventC.getNom_image().get(0));
227 AfficheAdmin.affiche(AfficheAdmin.getStage(), AfficheAdmin.getSess());
228
229
230 System.out.println("Suppression réussie dans la base de données");
231
232
233 } else {
234 System.out.println("Aucun événement trouvé avec cet ID.");
235 }
236
237
238
239 } catch (SQLException e) {
240 System.err.println("Erreur lors de l'accès à la base de données : " + e.getMessage());
241 } finally {
242 // Être sûr de fermer la connexion à la base de données
243 bdd.close();
244 }
245
246 }
247
248 public static void effacerImage(String nom_img) {
249 String file_name = ControllerAdmin.getDestinationDir()+"/"+nom_img;
250
251 Path path = Paths.get(file_name);
252 try {
253 boolean result = Files.deleteIfExists(path);
254 if (result) {
255 System.out.println("Image effacée !");
256 } else {
257 System.out.println("Oups, impossible d'effacer.");
258 }
259 } catch (IOException e) {
260 e.printStackTrace();
261 }
262 }
263
264 public int getNbrEvt() {
265 return nbrEvt;
266 }
267}