diff --git a/pom.xml b/pom.xml index fca06536..3aa99728 100644 --- a/pom.xml +++ b/pom.xml @@ -1,3 +1,4 @@ + 4.0.0 @@ -70,6 +71,12 @@ 1.4 + + com.jfoenix + jfoenix + 1.8.0 + + diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 8c6f85ac..7739e99b 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -1,6 +1,7 @@ package seng302; import ch.qos.logback.classic.Level; +import com.jfoenix.controls.JFXDecorator; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; @@ -14,7 +15,7 @@ import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import seng302.model.PolarTable; +import seng302.visualiser.controllers.ViewManager; public class App extends Application { @@ -68,24 +69,24 @@ public class App extends Application { @Override public void start(Stage primaryStage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("/views/StartScreenView.fxml")); - primaryStage.setTitle("RaceVision"); - Scene scene = new Scene(root, 1530, 960); - scene.getStylesheets().add(getClass().getResource("/css/master.css").toString()); - primaryStage.setScene(scene); -// primaryStage.setMaxWidth(1530); -// primaryStage.setMaxHeight(960); - primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/PP.png"))); -// primaryStage.setMaximized(true); + primaryStage.setTitle("Party Parrots At Sea"); + JFXDecorator decorator = new JFXDecorator(primaryStage, root,false, true, true); + decorator.setCustomMaximize(true); + decorator.applyCss(); + decorator.getStylesheets() + .add(getClass().getResource("/css/master.css").toExternalForm()); + + ViewManager.getInstance().setDecorator(decorator); + + primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("/PP.png"))); + Scene scene = new Scene(decorator, 1200, 800); + primaryStage.setMinHeight(800); + primaryStage.setMinWidth(1200); + primaryStage.setScene(scene); primaryStage.show(); - primaryStage.setOnCloseRequest(e -> { -// ClientPacketParser.appClose(); -// ClientPacketParser.appClose(); - System.exit(0); - }); - -// ClientState.primaryStage = primaryStage; + primaryStage.setOnCloseRequest(e -> System.exit(0)); } public static void main(String[] args) { diff --git a/src/main/java/seng302/visualiser/GameClient.java b/src/main/java/seng302/visualiser/GameClient.java index 968d9a92..443342de 100644 --- a/src/main/java/seng302/visualiser/GameClient.java +++ b/src/main/java/seng302/visualiser/GameClient.java @@ -31,8 +31,8 @@ import seng302.model.stream.xml.parser.RegattaXMLData; import seng302.utilities.StreamParser; import seng302.utilities.XMLParser; import seng302.visualiser.controllers.FinishScreenViewController; -import seng302.visualiser.controllers.LobbyController; -import seng302.visualiser.controllers.LobbyController.CloseStatus; +import seng302.visualiser.controllers.LobbyController_old; +import seng302.visualiser.controllers.LobbyController_old.CloseStatus; import seng302.visualiser.controllers.RaceViewController; /** @@ -51,7 +51,7 @@ public class GameClient { private RegattaXMLData regattaData; private RaceXMLData courseData; private RaceState raceState = new RaceState(); - private LobbyController lobbyController; + private LobbyController_old lobbyController; private ObservableList clientLobbyList = FXCollections.observableArrayList(); @@ -77,7 +77,7 @@ public class GameClient { Platform.runLater(this::loadStartScreen); }); socketThread.addStreamObserver(this::parsePackets); - LobbyController lobbyController = loadLobby(); + LobbyController_old lobbyController = loadLobby(); lobbyController.setSocketThread(socketThread); lobbyController.setPlayerID(socketThread.getClientId()); lobbyController.setPlayerListSource(clientLobbyList); @@ -111,7 +111,7 @@ public class GameClient { socketThread.addDisconnectionListener((cause) -> { Platform.runLater(this::loadStartScreen); }); - LobbyController lobbyController = loadLobby(); + LobbyController_old lobbyController = loadLobby(); lobbyController.setSocketThread(socketThread); lobbyController.setPlayerID(socketThread.getClientId()); lobbyController.setPlayerListSource(clientLobbyList); @@ -176,7 +176,7 @@ public class GameClient { * * @return the lobby controller. */ - private LobbyController loadLobby() { + private LobbyController_old loadLobby() { FXMLLoader fxmlLoader = new FXMLLoader( GameClient.class.getResource("/views/LobbyView.fxml")); try { diff --git a/src/main/java/seng302/visualiser/controllers/BoatCustomizeController.java b/src/main/java/seng302/visualiser/controllers/BoatCustomizeController.java new file mode 100644 index 00000000..fdab7cc8 --- /dev/null +++ b/src/main/java/seng302/visualiser/controllers/BoatCustomizeController.java @@ -0,0 +1,26 @@ +package seng302.visualiser.controllers; + +import com.jfoenix.controls.JFXColorPicker; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.paint.Color; + +import java.net.URL; +import java.util.ResourceBundle; + +public class BoatCustomizeController implements Initializable{ + + @FXML + private JFXColorPicker colorPicker; + + @FXML + void colorChanged(ActionEvent event) { + Color color = colorPicker.getValue(); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + colorPicker.setValue(Color.BISQUE); + } +} diff --git a/src/main/java/seng302/visualiser/controllers/CustomizationController.java b/src/main/java/seng302/visualiser/controllers/CustomizationController_old.java similarity index 92% rename from src/main/java/seng302/visualiser/controllers/CustomizationController.java rename to src/main/java/seng302/visualiser/controllers/CustomizationController_old.java index 1a5b5e4d..de3090c1 100644 --- a/src/main/java/seng302/visualiser/controllers/CustomizationController.java +++ b/src/main/java/seng302/visualiser/controllers/CustomizationController_old.java @@ -9,7 +9,7 @@ import javafx.stage.Stage; import seng302.gameServer.messages.CustomizeRequestType; import seng302.visualiser.ClientToServerThread; -public class CustomizationController { +public class CustomizationController_old { @FXML private TextField nameField; @@ -20,7 +20,7 @@ public class CustomizationController { @FXML private Button customizeSubmit; - private LobbyController lc; + private LobbyController_old lc; private ClientToServerThread socketThread; private Stage windowStage; @@ -54,7 +54,7 @@ public class CustomizationController { windowStage.close(); } - public void setLobbyController(LobbyController lc) { + public void setLobbyController(LobbyController_old lc) { this.lc = lc; } diff --git a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java index b2e49f1a..7a0fe2f2 100644 --- a/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java +++ b/src/main/java/seng302/visualiser/controllers/FinishScreenViewController.java @@ -85,6 +85,6 @@ public class FinishScreenViewController implements Initializable { } public void switchToStartScreenView() { - setContentPane("/views/StartScreenView.fxml"); + setContentPane("/views/StartScreenView_old.fxml"); } } diff --git a/src/main/java/seng302/visualiser/controllers/LobbyController.java b/src/main/java/seng302/visualiser/controllers/LobbyController.java index 4dc5293f..6cd9a2e2 100644 --- a/src/main/java/seng302/visualiser/controllers/LobbyController.java +++ b/src/main/java/seng302/visualiser/controllers/LobbyController.java @@ -1,248 +1,68 @@ package seng302.visualiser.controllers; -import com.sun.media.jfxmedia.logging.Logger; +import com.jfoenix.controls.JFXButton; +import com.jfoenix.controls.JFXDialog; +import com.jfoenix.controls.JFXDialog.DialogTransition; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.net.URL; +import java.util.ResourceBundle; import javafx.application.Platform; -import javafx.collections.ListChangeListener; -import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.control.Button; -import javafx.scene.control.TextArea; -import javafx.scene.image.Image; -import javafx.scene.image.ImageView; -import javafx.scene.paint.Color; -import javafx.scene.text.Text; -import javafx.stage.Stage; -import seng302.gameServer.GameStages; -import seng302.gameServer.GameState; -import seng302.model.Colors; -import seng302.model.RaceState; -import seng302.visualiser.ClientToServerThread; +import javafx.fxml.Initializable; +import javafx.scene.control.ScrollPane; +import javafx.scene.layout.StackPane; +import javafx.scene.layout.VBox; -/** - * A class describing the actions of the lobby screen - * Created by wmu16 on 10/07/17. - */ -public class LobbyController { - - public enum CloseStatus { - LEAVE, - READY - } - - @FunctionalInterface - public interface LobbyCloseListener { - void notify(CloseStatus exitCause); - } +public class LobbyController implements Initializable { @FXML - private Text lobbyIpText; - @FXML - private Button readyButton; - @FXML - private Button customizeButton; - @FXML - private TextArea playerOneTxt; - @FXML - private TextArea playerTwoTxt; - @FXML - private TextArea playerThreeTxt; - @FXML - private TextArea playerFourTxt; - @FXML - private TextArea playerFiveTxt; - @FXML - private TextArea playerSixTxt; - @FXML - private TextArea playerSevenTxt; - @FXML - private TextArea playerEightTxt; - @FXML - private ImageView firstImageView; - @FXML - private ImageView secondImageView; - @FXML - private ImageView thirdImageView; - @FXML - private ImageView fourthImageView; - @FXML - private ImageView fifthImageView; - @FXML - private ImageView sixthImageView; - @FXML - private ImageView seventhImageView; - @FXML - private ImageView eighthImageView; - @FXML - private Text timeUntilStart; - @FXML - private Text courseNameText; + private VBox playerListVBox; - private List imageViews = new ArrayList<>(); - private List