From 11fc2e2ac86f78b05db80d2bb5a7eb3cc802748c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Wed, 12 Mar 2025 15:29:03 +0100 Subject: [PATCH] added main components for joining and leaving rooms --- .../main/java/client/ClientGuiController.java | 61 ++++++++++++++++++- .../src/main/resources/client/clientVue.fxml | 1 + 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/ChatApp/app/src/main/java/client/ClientGuiController.java b/ChatApp/app/src/main/java/client/ClientGuiController.java index f487906..d0ec7ed 100644 --- a/ChatApp/app/src/main/java/client/ClientGuiController.java +++ b/ChatApp/app/src/main/java/client/ClientGuiController.java @@ -3,8 +3,12 @@ package client; import javafx.application.Platform; import javafx.fxml.FXML; import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.ButtonType; +import javafx.scene.control.TextField; import javafx.scene.layout.Border; import javafx.scene.layout.BorderPane; +import javafx.scene.layout.VBox; import javafx.stage.Stage; import network.protocol.packets.ServerResponsePacket; @@ -12,14 +16,23 @@ import java.net.InetSocketAddress; import java.net.SocketException; import java.time.Instant; import java.util.List; +import java.util.Optional; public class ClientGuiController implements ClientListener { private Client client; + private boolean connected = true; + @FXML private BorderPane vueContainer; + @FXML + private VBox roomList; + + @FXML + private VBox chatList; + public void setClient(Client client) { this.client = client; } @@ -42,8 +55,15 @@ public void initialize() throws SocketException { @Override public void handleConnexionError() { - System.out.println("Connection error"); - System.out.println(UsernameSingleton.getInstance().getUsername()); + Platform.runLater(() -> { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Connection"); + alert.setHeaderText("Connection failed"); + Optional res = alert.showAndWait(); + if (res.isPresent() && res.get() == ButtonType.OK) { + ((Stage) vueContainer.getScene().getWindow()).close(); + } + }); } @Override @@ -62,7 +82,44 @@ public void initialize() throws SocketException { @Override public void handleRoomList(List roomNames) { + Platform.runLater(() -> { + roomList.getChildren().clear(); + for (String roomName : roomNames) { + Button button = new Button(roomName); + button.setOnAction(event -> { + client.SendJoinRoom(roomName); + createChatEnv(roomName); + }); + roomList.getChildren().add(button); + } + }); + } + private void createChatEnv(String roomName) { +// +//