From 9e31f1271a961457467235792d3d64a1fa80d6a6 Mon Sep 17 00:00:00 2001 From: Anna Ziafar Date: Wed, 14 Jan 2026 16:58:20 +0100 Subject: [PATCH 1/3] Fill restaurant page with relevant information and include a booking form --- src/main/java/frontend/HelloFX.java | 2 +- .../controller/BookingController.java | 12 ++--- .../frontend/controller/MainController.java | 4 +- .../controller/RestaurantController.java | 39 ++++++++++++++-- src/main/resources/frontend/application.css | 45 ++++++++++++++++++- .../{booking-view.fxml => booking-form.fxml} | 27 +++++------ src/main/resources/frontend/main-view.fxml | 16 ++++--- .../resources/frontend/restaurant-view.fxml | 35 ++++++++++++--- 8 files changed, 138 insertions(+), 42 deletions(-) rename src/main/resources/frontend/{booking-view.fxml => booking-form.fxml} (57%) diff --git a/src/main/java/frontend/HelloFX.java b/src/main/java/frontend/HelloFX.java index c55e7717..722548dd 100644 --- a/src/main/java/frontend/HelloFX.java +++ b/src/main/java/frontend/HelloFX.java @@ -16,7 +16,7 @@ public class HelloFX extends Application { public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = new FXMLLoader(HelloFX.class.getResource("main-view.fxml")); Parent root = fxmlLoader.load(); - Scene scene = new Scene(root, 640, 480); + Scene scene = new Scene(root, 680, 500); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); stage.setTitle("Restaurangbokningar"); stage.setScene(scene); diff --git a/src/main/java/frontend/controller/BookingController.java b/src/main/java/frontend/controller/BookingController.java index e115d51e..73aceb1b 100644 --- a/src/main/java/frontend/controller/BookingController.java +++ b/src/main/java/frontend/controller/BookingController.java @@ -14,8 +14,6 @@ public class BookingController { private final BookingService bookingService = new BookingService(); private Restaurant restaurant; - @FXML private Label restaurantNameLabel; - @FXML private TextField firstNameField; @FXML private TextField lastNameField; @FXML private TextField phoneField; @@ -28,12 +26,6 @@ public class BookingController { @FXML private Label statusLabel; - public void setRestaurant(Restaurant restaurant) { - this.restaurant = restaurant; - restaurantNameLabel.setText(restaurant.getName()); - } - - @FXML private void initialize() { @@ -82,4 +74,8 @@ private void BookTable() { statusLabel.setText(e.getMessage()); } } + + public void setRestaurant(Restaurant restaurant) { + this.restaurant = restaurant; + } } diff --git a/src/main/java/frontend/controller/MainController.java b/src/main/java/frontend/controller/MainController.java index 398c549d..8de13f63 100644 --- a/src/main/java/frontend/controller/MainController.java +++ b/src/main/java/frontend/controller/MainController.java @@ -22,6 +22,8 @@ public class MainController { private TextField searchRestaurantField; @FXML private FlowPane restaurantContainer; + @FXML + private VBox mainArea; @FXML private void initialize() { @@ -43,7 +45,7 @@ public void handleRestaurantSearch(ActionEvent event){ private void displayRestaurants(List restaurants){ restaurantContainer.getChildren().clear(); for(Restaurant r : restaurants){ - RestaurantCard restaurantCard = new RestaurantCard(r, restaurantContainer); + RestaurantCard restaurantCard = new RestaurantCard(r, mainArea); restaurantContainer.getChildren().add(restaurantCard); } } diff --git a/src/main/java/frontend/controller/RestaurantController.java b/src/main/java/frontend/controller/RestaurantController.java index c0339123..9b1770f4 100644 --- a/src/main/java/frontend/controller/RestaurantController.java +++ b/src/main/java/frontend/controller/RestaurantController.java @@ -1,19 +1,38 @@ package frontend.controller; +import backend.entities.Booking; import backend.entities.Restaurant; +import backend.services.BookingService; import frontend.model.RestaurantHandler; import javafx.fxml.FXML; +import javafx.scene.control.*; import javafx.scene.layout.Pane; -import javafx.scene.control.Label; +import java.time.LocalDate; +import java.time.LocalTime; public class RestaurantController { @FXML - private Pane restaurantRoot; - + private Pane restaurantPageRoot; @FXML private Label restaurantName; + @FXML + private Label restaurantAdress; + @FXML + private Label adressIcon; + @FXML + private Label categoryIcon; + @FXML + private Label restaurantCategory; + @FXML + private Label meanPriceIcon; + @FXML + private Label restaurantMeanPrice; + @FXML + private Label ratingIcon; + @FXML + private Label restaurantRating; private Restaurant restaurant; @@ -24,6 +43,20 @@ private void initialize() { if (restaurant != null) { restaurantName.setText(restaurant.getName()); } + + setRestaurantData(restaurant); + } + + private void setRestaurantData(Restaurant restaurant){ + restaurantName.setText(restaurant.getName()); + adressIcon.setText("📍"); + restaurantAdress.setText(restaurant.getAddress()); + categoryIcon.setText("🍴"); + restaurantCategory.setText(restaurant.getCategory()); + meanPriceIcon.setText("$"); + restaurantMeanPrice.setText(restaurant.getMeanPrice().toString() + " kr"); + ratingIcon.setText("⭐ "); + restaurantRating.setText(String.valueOf(restaurant.getRating())); } } diff --git a/src/main/resources/frontend/application.css b/src/main/resources/frontend/application.css index 6ed7b73a..98105dc6 100644 --- a/src/main/resources/frontend/application.css +++ b/src/main/resources/frontend/application.css @@ -3,6 +3,7 @@ -fx-font-size: 15; } +/*Restaurant Card*/ .restaurantBox{ -fx-background-color: white; -fx-background-radius: 15; @@ -11,16 +12,56 @@ /* Gives a small shadow behind the cards */ -fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.1), 10, 0, 0, 4); } - .restaurantBox:hover{ -fx-scale-x: 1.15; -fx-scale-y: 1.15; -fx-cursor: hand; } - .restaurantBox .label{ -fx-padding: 10; -fx-font-family: "Agency FB"; -fx-font-size: 16; } +/*Restaurant Page*/ +.restaurantPage-Header{ + -fx-font-family: "Agency FB"; + -fx-font-size: 32px; + -fx-text-fill: #1a1a1a; + -fx-padding: 0 0 10 0; +} +.restaurantPage-Info{ + -fx-font-family: "Verdana"; + -fx-font-size: 12px; + -fx-text-fill: #1a1a1a; + -fx-padding: 8 10 7 5; +} +.restaurantPage-Icon{ + -fx-font-family: "Agency FB"; + -fx-font-size: 12px; + -fx-text-fill: #333333; + -fx-padding: 8 0 10 0; +} + +/*Booking Form*/ +.bookingForm-Header{ + -fx-font-family: "Agency FB"; + -fx-font-size: 20px; + -fx-padding: 0 0 10 0; +} +.bookingForm-Info{ + -fx-font-family: "Verdana"; + -fx-spacing: 10; +} +.bookingForm-Choice{ + -fx-font-family: "Verdana"; + -fx-spacing: 10; + -fx-padding: 15 0 15 0; +} +.bookingForm-Button{ + -fx-alignment: center; + -fx-background-color: #2ecc71; + -fx-text-fill: black; +} + + diff --git a/src/main/resources/frontend/booking-view.fxml b/src/main/resources/frontend/booking-form.fxml similarity index 57% rename from src/main/resources/frontend/booking-view.fxml rename to src/main/resources/frontend/booking-form.fxml index 3f761373..26613004 100644 --- a/src/main/resources/frontend/booking-view.fxml +++ b/src/main/resources/frontend/booking-form.fxml @@ -3,20 +3,15 @@ + + + + + +