diff options
Diffstat (limited to 'src/main/java/vue/AfficheEvenement.java')
| -rw-r--r-- | src/main/java/vue/AfficheEvenement.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/main/java/vue/AfficheEvenement.java b/src/main/java/vue/AfficheEvenement.java new file mode 100644 index 0000000..9188476 --- /dev/null +++ b/src/main/java/vue/AfficheEvenement.java | |||
| @@ -0,0 +1,88 @@ | |||
| 1 | package vue; | ||
| 2 | |||
| 3 | import controlleur.Connexion; | ||
| 4 | import controlleur.EvenementController; | ||
| 5 | import javafx.scene.control.Button; | ||
| 6 | import javafx.scene.control.Label; | ||
| 7 | import javafx.scene.image.Image; | ||
| 8 | import javafx.scene.image.ImageView; | ||
| 9 | import javafx.scene.layout.HBox; | ||
| 10 | import javafx.scene.layout.VBox; | ||
| 11 | import javafx.stage.Stage; | ||
| 12 | import modele.Evenement; | ||
| 13 | import modele.User; | ||
| 14 | |||
| 15 | public class AfficheEvenement { | ||
| 16 | //private static Evenement event; | ||
| 17 | |||
| 18 | public static VBox NewAfficheEvenement(Stage primaryStage, User session) { | ||
| 19 | |||
| 20 | VBox main = new VBox(); | ||
| 21 | main.setSpacing(20); // Espacement entre les éléments | ||
| 22 | main.setStyle("-fx-padding: 20; -fx-alignment: center;"); // Ajout de marges autour et centrage du VBox | ||
| 23 | |||
| 24 | HBox hBouton = new HBox(); | ||
| 25 | hBouton.setSpacing(10); // Espacement entre les boutons | ||
| 26 | hBouton.setStyle("-fx-alignment: center;"); // Alignement des boutons au centre | ||
| 27 | |||
| 28 | // Style gothique pour le nom de l'événement | ||
| 29 | Label nomEvt = new Label(Connexion.event.getNom_evenement()); | ||
| 30 | nomEvt.setStyle("-fx-font-size: 32px; -fx-font-family: 'Times New Roman'; -fx-font-weight: bold; -fx-text-fill: #2F4F4F; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.5), 10, 5, 2, 2);"); | ||
| 31 | nomEvt.setStyle("-fx-font-size: 32px; -fx-font-family: 'Garamond'; -fx-font-weight: bold; -fx-text-fill: #2F4F4F; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.6), 15, 0.5, 0, 3);"); | ||
| 32 | |||
| 33 | // Style de la date et de la description | ||
| 34 | Label dateEvt = new Label(Connexion.event.getData_evenement()); | ||
| 35 | dateEvt.setStyle("-fx-font-size: 16px; -fx-text-fill: #555555;"); // Style de la date de l'événement | ||
| 36 | |||
| 37 | Label descEvt = new Label(Connexion.event.getDescritption_evenement()); | ||
| 38 | descEvt.setStyle("-fx-font-size: 14px; -fx-text-fill: #777777; -fx-wrap-text: true;"); | ||
| 39 | descEvt.setMaxWidth(400); // Limite la largeur de la description | ||
| 40 | |||
| 41 | HBox hLabel = new HBox(); | ||
| 42 | hLabel.setSpacing(10); | ||
| 43 | hLabel.getChildren().add(dateEvt); | ||
| 44 | hLabel.getChildren().add(descEvt); | ||
| 45 | hLabel.setStyle("-fx-alignment: center;"); // Alignement des labels au centre | ||
| 46 | |||
| 47 | // Ajout des boutons dans le HBox avec style "dark fantasy" modeste | ||
| 48 | for (int i = 0; i < Connexion.eventC.getNbrEvt(); i++) { | ||
| 49 | int j = i; | ||
| 50 | Button btn = new Button(Connexion.eventC.getNom_event().get(i)); | ||
| 51 | btn.setStyle("-fx-background-color: #1a1a1a; -fx-text-fill: #e6e6e6; -fx-font-size: 14px; -fx-padding: 10px 15px; -fx-border-radius: 5px; -fx-border-color: #444444; -fx-border-width: 1px;"); | ||
| 52 | btn.setOnAction(e -> { | ||
| 53 | Connexion.event = new Evenement(Connexion.eventC.getNom_event().get(j), | ||
| 54 | Connexion.eventC.getNom_image().get(j), | ||
| 55 | Connexion.eventC.getDesc_event().get(j), | ||
| 56 | Connexion.eventC.getDate_event().get(j)); | ||
| 57 | |||
| 58 | AfficheAccueil.affiche(primaryStage, session); | ||
| 59 | }); | ||
| 60 | hBouton.getChildren().add(btn); | ||
| 61 | } | ||
| 62 | |||
| 63 | // Image avec centrage et un peu plus de style sombre | ||
| 64 | Image imageAccueil = new Image("images/" + Connexion.event.getNom_image()); | ||
| 65 | ImageView iv1 = new ImageView(); | ||
| 66 | iv1.setImage(imageAccueil); | ||
| 67 | iv1.setFitWidth(500); | ||
| 68 | iv1.setPreserveRatio(true); | ||
| 69 | iv1.setSmooth(true); | ||
| 70 | iv1.setCache(true); | ||
| 71 | iv1.setStyle("-fx-border-radius: 10px; -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.7), 15, 3, 2, 2);"); | ||
| 72 | |||
| 73 | // Centrer le nom et l'image dans un VBox intermédiaire | ||
| 74 | VBox centeredContent = new VBox(); | ||
| 75 | centeredContent.setSpacing(10); | ||
| 76 | centeredContent.setStyle("-fx-alignment: center;"); | ||
| 77 | centeredContent.getChildren().add(nomEvt); | ||
| 78 | centeredContent.getChildren().add(iv1); | ||
| 79 | |||
| 80 | // Ajout des éléments dans le VBox principal | ||
| 81 | main.getChildren().add(centeredContent); // Ajout du nom et de l'image centrés | ||
| 82 | main.getChildren().add(hBouton); // Ajout des boutons | ||
| 83 | main.getChildren().add(hLabel); // Ajout de la date et description | ||
| 84 | |||
| 85 | // Retourne le VBox stylisé | ||
| 86 | return main; | ||
| 87 | } | ||
| 88 | } | ||
