Changed the competitors list view to eight individual list view.

Added eight individual image view to support future player icon implementation.

#story[1055]
This commit is contained in:
Zhi You Tan
2017-07-23 03:00:29 +12:00
parent 3992073303
commit f542dbb61e
12 changed files with 145 additions and 30 deletions
@@ -15,11 +15,13 @@ import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.control.ListView;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.text.Text;
import seng302.client.ClientState;
import seng302.client.ClientStateQueryingRunnable;
import seng302.gameServer.GameStages;
import seng302.gameServer.GameState;
@@ -30,12 +32,28 @@ import seng302.gameServer.GameState;
*/
public class LobbyController implements Initializable, Observer{
@FXML
private ListView competitorsListView;
// @FXML
// private ListView competitorsListView;
@FXML
private GridPane lobbyScreen;
@FXML
private Text lobbyIpText;
@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;
private static ObservableList competitors;
private ClientStateQueryingRunnable clientStateQueryingRunnable;
@@ -57,9 +75,14 @@ public class LobbyController implements Initializable, Observer{
@Override
public void initialize(URL location, ResourceBundle resources) {
lobbyIpText.setText("Lobby Host IP: " + getLocalHostIp());
if (ClientState.isHost())
lobbyIpText.setText("Lobby Host IP: " + getLocalHostIp());
else
lobbyIpText.setText("Connected to IP: ");
initialiseImageView();
competitors = FXCollections.observableArrayList();
competitorsListView.setItems(competitors);
// competitorsListView.setItems(competitors);
// set up client state query thread, so that when it receives the race-started packet
// it can switch to the race view
@@ -81,6 +104,25 @@ public class LobbyController implements Initializable, Observer{
});
}
private void initialiseImageView() {
Image image1 = new Image(getClass().getResourceAsStream("/ParrotGif/alistair.gif"));
firstImageView.setImage(image1);
Image image2 = new Image(getClass().getResourceAsStream("/ParrotGif/calum.gif"));
secondImageView.setImage(image2);
Image image3 = new Image(getClass().getResourceAsStream("/ParrotGif/haoming.gif"));
thirdImageView.setImage(image3);
Image image4 = new Image(getClass().getResourceAsStream("/ParrotGif/kusal.gif"));
fourthImageView.setImage(image4);
Image image5 = new Image(getClass().getResourceAsStream("/ParrotGif/michael.gif"));
fifthImageView.setImage(image5);
Image image6 = new Image(getClass().getResourceAsStream("/ParrotGif/peter.gif"));
sixthImageView.setImage(image6);
Image image7 = new Image(getClass().getResourceAsStream("/ParrotGif/ryan.gif"));
seventhImageView.setImage(image7);
Image image8 = new Image(getClass().getResourceAsStream("/ParrotGif/will.gif"));
eighthImageView.setImage(image8);
}
private String getLocalHostIp() {
String ipAddress = null;
try {
@@ -117,6 +159,7 @@ public class LobbyController implements Initializable, Observer{
setContentPane("/views/StartScreenView.fxml");
GameState.setCurrentStage(GameStages.CANCELLED);
// TODO: 20/07/17 wmu16 - Implement some way of terminating the game
ClientState.setHost(false);
}
@FXML
@@ -70,6 +70,7 @@ public class StartScreenController {
ClientToServerThread clientToServerThread = new ClientToServerThread("localhost", 4950);
controller.setClientToServerThread(clientToServerThread);
clientToServerThread.start();
ClientState.setHost(true);
// new GameServerThread("Fuck you");
// get the lobby controller so that we can pass the game server thread to it
setContentPane("/views/LobbyView.fxml");
@@ -92,6 +93,7 @@ public class StartScreenController {
ClientToServerThread clientToServerThread = new ClientToServerThread(ipAddress, port);
controller.setClientToServerThread(clientToServerThread);
clientToServerThread.start();
ClientState.setHost(false);
ClientState.setConnectedToHost(true);
setContentPane("/views/LobbyView.fxml");
} catch (Exception e) {