diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java index 12ed944..6aa94b0 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/Client.java @@ -80,16 +80,14 @@ public class Client { } sendMsgToServer(Protocol.clientLogin + "$" + systemName); this.chatApp = new ChatApp(new ClientModel(systemName, this)); - //this.chatGui = new GUI(this.chatApp); + this.gui = new GUI(this.chatApp); clientPinger = new ClientPinger(this, this.socket); this.gameStateModel = new GameStateModel(); this.chatApp = new ChatApp(new ClientModel(systemName, this)); ChatApp.setGameController(new GameController(ChatApp.getClientModel(), gameStateModel)); - this.chatGui = new GUI(this.chatApp); + this.gui = new GUI(this.chatApp); this.gameController = new GameController(ChatApp.getClientModel(), gameStateModel); this.loungeApp = new LoungeApp(ChatApp.getClientModel()); - //this.loungeGui = new GUI(this.loungeApp); - this.gui = new GUI(this.chatApp,this.loungeApp); this.loungeSceneViewController = new LoungeSceneViewController(); LoungeSceneViewController.setClient(ChatApp.getClientModel()); } catch (IOException e) { @@ -273,7 +271,7 @@ public class Client { cP.start(); client.userInputListener(); //this one blocks. //Start the GUI - GUI gui = new GUI(client.chatApp,client.loungeApp); + GUI gui = new GUI(client.chatApp); Thread guiThread = new Thread(gui); guiThread.start(); LOGGER.info("7"); @@ -372,7 +370,7 @@ public class Client { } break; case GuiParameters.listOfLobbies: - //updateListOfLobbies(data); (commented out due to compiling error) + updateListOfLobbies(data); //TODO break; case GuiParameters.VoteIsOver: diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java index a89f608..064dd54 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/ChatApp.java @@ -1,7 +1,10 @@ -package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat; +package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat.ChatController; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.game.GameController; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.lounge.LoungeSceneViewController; import java.net.URL; import java.util.Objects; import javafx.application.Application; @@ -23,8 +26,8 @@ public class ChatApp extends Application { private static GameController gameController; private ClientModel cModel; private GameController gameC; - private static LoungeSceneViewController loungeSceneViewController; + private LoungeSceneViewController lSVController; public ChatApp() { super(); @@ -59,6 +62,11 @@ public class ChatApp extends Application { this.gameC = gameC; } + public void setlSVController( + LoungeSceneViewController lSVController) { + this.lSVController = lSVController; + } + public ClientModel getcModel() { return cModel; } @@ -88,6 +96,10 @@ public class ChatApp extends Application { return chatController; } + public LoungeSceneViewController getlSVController() { + return lSVController; + } + public static void setLoungeSceneViewController(LoungeSceneViewController controller) { loungeSceneViewController = controller; } @@ -110,33 +122,33 @@ public class ChatApp extends Application { public void start(Stage primaryStage) throws Exception { this.setcModel(clientModel); this.setGameC(gameController); + this.setlSVController(loungeSceneViewController); gameC.setClient(cModel); gameC.setGameStateModel(GameController.getGameStateModel()); URL chatResource = ChatApp.class.getResource( "chat/ChatView.fxml"); URL gameResource = ChatApp.class.getResource( "game/GameDayAll.fxml"); + URL loungeResource = ChatApp.class.getResource( + "lounge/LoungeSceneView.fxml"); try { - Parent root = FXMLLoader.load( - Objects.requireNonNull(gameResource)); + Parent lounge = FXMLLoader.load( + Objects.requireNonNull(loungeResource)); + Node chat = FXMLLoader.load(Objects.requireNonNull(chatResource)); + Node game = FXMLLoader.load(Objects.requireNonNull(gameResource)); // TODO bin chatController.getChatPaneRoot() border to root border for rezising - Scene scene = new Scene(root); - scene.setRoot(root); + Scene scene = new Scene(lounge); + scene.setRoot(lounge); primaryStage.setScene(scene); } catch (Exception e) { e.printStackTrace(); } primaryStage.setResizable(false); - Node chat = FXMLLoader.load( - Objects.requireNonNull(chatResource)); + primaryStage.setTitle("Night Train To Budapest"); primaryStage.setResizable(true); - primaryStage.setTitle("Chat"); primaryStage.show(); - - - - } + } public static void main(String[] args) { launch(args); diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GUI.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GUI.java index f3049be..7263b12 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GUI.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/GUI.java @@ -1,7 +1,7 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; -import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat.ChatApp; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ChatApp; import javafx.application.Application; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,21 +12,21 @@ public class GUI implements Runnable { public static final BudaLogConfig l = new BudaLogConfig(LOGGER); private ChatApp chatApp; - private LoungeApp loungeApp; + //private LoungeApp loungeApp; public GUI(ChatApp chatApp) { this.chatApp = chatApp; } - public GUI(LoungeApp loungeApp) { + /*public GUI(LoungeApp loungeApp) { this.loungeApp = loungeApp; - } + }*/ - public GUI(ChatApp chatApp, + /*public GUI(ChatApp chatApp, LoungeApp loungeApp) { this.chatApp = chatApp; this.loungeApp = loungeApp; - } + }*/ /** * When an object implementing interface {@code Runnable} is used to create a thread, starting the @@ -42,6 +42,6 @@ public class GUI implements Runnable { public void run() { LOGGER.info("here"); //Application.launch(this.chatApp.getClass()); - Application.launch(this.loungeApp.getClass()); + Application.launch(this.chatApp.getClass()); } } diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeApp.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeApp.java index ce2df98..ee9aa5b 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeApp.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeApp.java @@ -1,8 +1,8 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.lounge; import ch.unibas.dmi.dbis.cs108.BudaLogConfig; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ChatApp; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; -import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat.ChatApp; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat.ChatController; import java.net.URL; import java.util.Objects; diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java index 479d0a1..ac083a3 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneViewController.java @@ -1,7 +1,7 @@ package ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.lounge; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ClientModel; -import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.chat.ChatApp; +import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.ChatApp; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.events.ChangeNameButtonPressedEventHandler; import ch.unibas.dmi.dbis.cs108.multiplayer.client.gui.events.LeaveServerButtonPressedEventHandler; import ch.unibas.dmi.dbis.cs108.multiplayer.helpers.Protocol; @@ -38,8 +38,10 @@ import javafx.scene.text.Text; public class LoungeSceneViewController implements Initializable { - Protocol protocol; + @FXML + public Button leaveLobbyButton; + @FXML public Button newGameButton; @FXML private ListView LobbyListView; @@ -80,9 +82,8 @@ public class LoungeSceneViewController implements Initializable { @Override public void initialize(URL location, ResourceBundle resources) { ChatApp.setLoungeSceneViewController(this); - this.protocol = new Protocol(); ChangeNameButton.setOnAction(event -> changeName()); - LeaveServerButton.setOnAction(new LeaveServerButtonPressedEventHandler()); + LeaveServerButton.setOnAction(event -> leaveServer()); newGameButton.setOnAction(event -> newGame()); LobbyListView.setVisible(true); ClientListView.setVisible(true); @@ -169,8 +170,9 @@ public class LoungeSceneViewController implements Initializable { client.getClient().sendMsgToServer(Protocol.startANewGame); } - ; + public void leaveLobby() {client.getClient().sendMsgToServer(Protocol.leaveLobby);} + public void leaveServer() {client.getClient().sendMsgToServer(Protocol.clientQuitRequest);} /** * Used to add a new player to the list of players. * "NPLOS" {@link ch.unibas.dmi.dbis.cs108.multiplayer.helpers.GuiParameters} diff --git a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml index 0de7e45..eff7e85 100644 --- a/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml +++ b/src/main/resources/ch/unibas/dmi/dbis/cs108/multiplayer/client/gui/lounge/LoungeSceneView.fxml @@ -7,36 +7,37 @@ - + - + - +