mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Fixed some weird bug with the messages package, trying to add some small QoL changes with potential interaction bugs with the customization/lobby menu.
tags : #story[1142]
This commit is contained in:
@@ -13,14 +13,14 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.InputSource;
|
||||
import seng302.gameServer.server.messages.BoatAction;
|
||||
import seng302.gameServer.server.messages.BoatStatus;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.server.messages.MarkRoundingMessage;
|
||||
import seng302.gameServer.server.messages.MarkType;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.server.messages.RoundingBoatStatus;
|
||||
import seng302.gameServer.server.messages.YachtEventCodeMessage;
|
||||
import seng302.gameServer.messages.BoatAction;
|
||||
import seng302.gameServer.messages.BoatStatus;
|
||||
import seng302.gameServer.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.messages.MarkRoundingMessage;
|
||||
import seng302.gameServer.messages.MarkType;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.gameServer.messages.RoundingBoatStatus;
|
||||
import seng302.gameServer.messages.YachtEventCodeMessage;
|
||||
import seng302.model.GeoPoint;
|
||||
import seng302.model.Limit;
|
||||
import seng302.model.Player;
|
||||
|
||||
@@ -5,8 +5,8 @@ import java.util.Stack;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import seng302.model.Player;
|
||||
import seng302.gameServer.server.messages.Heartbeat;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.messages.Heartbeat;
|
||||
import seng302.gameServer.messages.Message;
|
||||
|
||||
/**
|
||||
* Send Heartbeat messages to connected player at a specified interval
|
||||
|
||||
@@ -7,13 +7,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import seng302.gameServer.server.messages.BoatSubMessage;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.server.messages.RaceStartNotificationType;
|
||||
import seng302.gameServer.server.messages.RaceStartStatusMessage;
|
||||
import seng302.gameServer.server.messages.RaceStatus;
|
||||
import seng302.gameServer.server.messages.RaceStatusMessage;
|
||||
import seng302.gameServer.server.messages.RaceType;
|
||||
import seng302.gameServer.messages.BoatSubMessage;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.gameServer.messages.RaceStartNotificationType;
|
||||
import seng302.gameServer.messages.RaceStartStatusMessage;
|
||||
import seng302.gameServer.messages.RaceStatus;
|
||||
import seng302.gameServer.messages.RaceStatusMessage;
|
||||
import seng302.gameServer.messages.RaceType;
|
||||
import seng302.model.GeoPoint;
|
||||
import seng302.model.Player;
|
||||
import seng302.model.PolarTable;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package seng302.gameServer;
|
||||
|
||||
import java.util.Arrays;
|
||||
import seng302.gameServer.server.messages.BoatAction;
|
||||
import seng302.gameServer.server.messages.ClientType;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.messages.BoatAction;
|
||||
import seng302.gameServer.messages.ClientType;
|
||||
import seng302.gameServer.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.model.stream.packets.StreamPacket;
|
||||
|
||||
|
||||
|
||||
@@ -20,16 +20,16 @@ import java.util.zip.CRC32;
|
||||
import java.util.zip.Checksum;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import seng302.gameServer.server.messages.BoatAction;
|
||||
import seng302.gameServer.server.messages.BoatLocationMessage;
|
||||
import seng302.gameServer.server.messages.ClientType;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.server.messages.RegistrationResponseMessage;
|
||||
import seng302.gameServer.server.messages.RegistrationResponseStatus;
|
||||
import seng302.gameServer.server.messages.XMLMessage;
|
||||
import seng302.gameServer.server.messages.XMLMessageSubType;
|
||||
import seng302.gameServer.server.messages.YachtEventCodeMessage;
|
||||
import seng302.gameServer.messages.BoatAction;
|
||||
import seng302.gameServer.messages.BoatLocationMessage;
|
||||
import seng302.gameServer.messages.ClientType;
|
||||
import seng302.gameServer.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.gameServer.messages.RegistrationResponseMessage;
|
||||
import seng302.gameServer.messages.RegistrationResponseStatus;
|
||||
import seng302.gameServer.messages.XMLMessage;
|
||||
import seng302.gameServer.messages.XMLMessageSubType;
|
||||
import seng302.gameServer.messages.YachtEventCodeMessage;
|
||||
import seng302.model.Player;
|
||||
import seng302.model.ServerYacht;
|
||||
import seng302.model.stream.packets.PacketType;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Created by kre39 on 12/07/17.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public class BoatLocationMessage extends Message {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* The current status of a boat
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
|
||||
public class ChatterMessage extends Message {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public enum ClientType {
|
||||
SPECTATOR(0x00),
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
|
||||
public class CustomizeRequestMessage extends Message {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
|
||||
public enum CustomizeRequestType {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Created by ajm412 on 14/08/17.
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
// TODO: 14/08/17 ajm412: this may eventually need adjusting due to conforming to the agreed spec.
|
||||
public enum CustomizeResponseType {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public enum DeviceType {
|
||||
UNKNOWN(0),
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public class Heartbeat extends Message {
|
||||
private final int MESSAGE_SIZE = 4;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Types of marks boats can round
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.ByteOrder;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Enum containing the types of messages
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* The types of race start status messages
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public class RaceStartStatusMessage extends Message {
|
||||
private final int MESSAGE_SIZE = 20;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* The current status of the race
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.zip.CRC32;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Enum containing the types of races
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
|
||||
public class RegistrationRequestMessage extends Message {
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public class RegistrationResponseMessage extends Message{
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public enum RegistrationResponseStatus {
|
||||
SUCCESS_SPECTATING(0x00),
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* The status of a boat rounding a mark
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* The side the boat rounded the mark
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
public class XMLMessage extends Message{
|
||||
private final MessageType MESSAGE_TYPE = MessageType.XML_MESSAGE;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Enum containing the types of XML messages
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
package seng302.gameServer.messages;
|
||||
|
||||
/**
|
||||
* Created by zyt10 on 10/08/17.
|
||||
@@ -1,60 +0,0 @@
|
||||
package seng302.gameServer.server.messages;
|
||||
|
||||
import seng302.gameServer.GameState;
|
||||
|
||||
public class MarkRoundingMessage extends Message{
|
||||
private final long MESSAGE_VERSION_NUMBER = 1;
|
||||
private final int MESSAGE_SIZE = 21;
|
||||
|
||||
private long time;
|
||||
private long ackNumber;
|
||||
private long raceId;
|
||||
private long sourceId;
|
||||
private RoundingBoatStatus boatStatus;
|
||||
private RoundingSide roundingSide;
|
||||
private long markId;
|
||||
|
||||
|
||||
/**
|
||||
* This message is sent when a boat passes a mark, start line, or finish line
|
||||
* The purpose of this is to record the time when yachts cross marks
|
||||
* @param ackNumber ackNumber
|
||||
* @param raceId raceId
|
||||
* @param sourceId boatSourceId
|
||||
* @param roundingBoatStatus roundingBoatStatus
|
||||
* @param roundingSide roundingSide
|
||||
* @param markId markId
|
||||
*/
|
||||
public MarkRoundingMessage(int ackNumber, int raceId, int sourceId, RoundingBoatStatus roundingBoatStatus,
|
||||
RoundingSide roundingSide, MarkType markType, int markId) {
|
||||
this.time = System.currentTimeMillis();
|
||||
this.ackNumber = ackNumber;
|
||||
this.raceId = raceId;
|
||||
this.sourceId = sourceId;
|
||||
this.boatStatus = roundingBoatStatus;
|
||||
this.roundingSide = roundingSide;
|
||||
this.markId = markId;
|
||||
|
||||
setHeader(new Header(MessageType.MARK_ROUNDING, 1, (short) getSize()));
|
||||
allocateBuffer();
|
||||
writeHeaderToBuffer();
|
||||
|
||||
putByte((byte) MESSAGE_VERSION_NUMBER);
|
||||
putInt((int) time, 6);
|
||||
putInt((int) ackNumber, 2);
|
||||
putInt((int) raceId, 4);
|
||||
putInt((int) sourceId, 4);
|
||||
putByte((byte) boatStatus.getCode());
|
||||
putByte((byte) roundingSide.getCode());
|
||||
putByte((byte) markType.getCode());
|
||||
putByte((byte) markId);
|
||||
|
||||
writeCRC();
|
||||
rewind();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize() {
|
||||
return MESSAGE_SIZE;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import javafx.scene.paint.Color;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import seng302.gameServer.GameState;
|
||||
import seng302.gameServer.server.messages.BoatStatus;
|
||||
import seng302.gameServer.messages.BoatStatus;
|
||||
import seng302.model.mark.Mark;
|
||||
import seng302.utilities.GeoUtility;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package seng302.model.mark;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import seng302.gameServer.server.messages.RoundingSide;
|
||||
import seng302.gameServer.messages.RoundingSide;
|
||||
import seng302.model.GeoPoint;
|
||||
import seng302.utilities.GeoUtility;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package seng302.model.mark;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import seng302.gameServer.server.messages.RoundingSide;
|
||||
import seng302.gameServer.messages.RoundingSide;
|
||||
import seng302.model.GeoPoint;
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
import seng302.gameServer.server.messages.RoundingSide;
|
||||
import seng302.gameServer.messages.RoundingSide;
|
||||
import seng302.model.stream.xml.generator.Race;
|
||||
import seng302.model.stream.xml.parser.RaceXMLData;
|
||||
import seng302.utilities.XMLGenerator;
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.io.OutputStreamWriter;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import seng302.model.stream.xml.generator.Race;
|
||||
import seng302.model.stream.xml.generator.Regatta;
|
||||
import seng302.gameServer.server.messages.XMLMessageSubType;
|
||||
import seng302.gameServer.messages.XMLMessageSubType;
|
||||
|
||||
/**
|
||||
* An XML generator to generate the Race, Boat, and Regatta XML dynamically
|
||||
|
||||
@@ -21,14 +21,14 @@ import javafx.scene.control.Alert.AlertType;
|
||||
import javafx.scene.control.ButtonType;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import seng302.gameServer.server.messages.BoatAction;
|
||||
import seng302.gameServer.server.messages.BoatActionMessage;
|
||||
import seng302.gameServer.server.messages.ClientType;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestMessage;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.server.messages.Message;
|
||||
import seng302.gameServer.server.messages.RegistrationRequestMessage;
|
||||
import seng302.gameServer.server.messages.RegistrationResponseStatus;
|
||||
import seng302.gameServer.messages.BoatAction;
|
||||
import seng302.gameServer.messages.BoatActionMessage;
|
||||
import seng302.gameServer.messages.ClientType;
|
||||
import seng302.gameServer.messages.CustomizeRequestMessage;
|
||||
import seng302.gameServer.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.messages.Message;
|
||||
import seng302.gameServer.messages.RegistrationRequestMessage;
|
||||
import seng302.gameServer.messages.RegistrationResponseStatus;
|
||||
import seng302.model.stream.packets.PacketType;
|
||||
import seng302.model.stream.packets.StreamPacket;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import javafx.scene.input.KeyEvent;
|
||||
import javafx.scene.layout.Pane;
|
||||
import seng302.gameServer.GameState;
|
||||
import seng302.gameServer.MainServerThread;
|
||||
import seng302.gameServer.server.messages.BoatAction;
|
||||
import seng302.gameServer.messages.BoatAction;
|
||||
import seng302.model.ClientYacht;
|
||||
import seng302.model.RaceState;
|
||||
import seng302.model.stream.packets.StreamPacket;
|
||||
|
||||
@@ -6,7 +6,7 @@ import javafx.scene.control.ColorPicker;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.paint.Color;
|
||||
import javafx.stage.Stage;
|
||||
import seng302.gameServer.server.messages.CustomizeRequestType;
|
||||
import seng302.gameServer.messages.CustomizeRequestType;
|
||||
import seng302.visualiser.ClientToServerThread;
|
||||
|
||||
public class CustomizationController {
|
||||
|
||||
@@ -46,6 +46,8 @@ public class LobbyController {
|
||||
@FXML
|
||||
private Button readyButton;
|
||||
@FXML
|
||||
private Button customizeButton;
|
||||
@FXML
|
||||
private TextArea playerOneTxt;
|
||||
@FXML
|
||||
private TextArea playerTwoTxt;
|
||||
@@ -88,6 +90,8 @@ public class LobbyController {
|
||||
|
||||
private ClientToServerThread socketThread;
|
||||
|
||||
private Stage customizeStage;
|
||||
|
||||
private Color playersColor;
|
||||
|
||||
private int MAX_NUM_PLAYERS = 8;
|
||||
@@ -154,7 +158,9 @@ public class LobbyController {
|
||||
FXMLLoader fxmlLoader = new FXMLLoader(LobbyController.class.getResource("/views/customizeView.fxml"));
|
||||
root = fxmlLoader.load();
|
||||
root.getStylesheets().add("/css/master.css");
|
||||
Stage customizeStage = new Stage();
|
||||
customizeStage = new Stage();
|
||||
customizeStage.setTitle("Customize Boat");
|
||||
customizeStage.setScene(new Scene(root, 700, 450));
|
||||
CustomizationController cc = fxmlLoader.getController();
|
||||
cc.setServerThread(this.socketThread);
|
||||
cc.setPlayerName(this.players.get(playerID - 1));
|
||||
@@ -164,8 +170,6 @@ public class LobbyController {
|
||||
}
|
||||
|
||||
cc.setPlayerColor(this.playersColor);
|
||||
customizeStage.setTitle("Customize Boat");
|
||||
customizeStage.setScene(new Scene(root, 700, 450));
|
||||
cc.setStage(customizeStage); // pass the stage through so it can be closed later.
|
||||
cc.setLobbyController(this);
|
||||
customizeStage.show();
|
||||
@@ -194,6 +198,7 @@ public class LobbyController {
|
||||
|
||||
for (LobbyCloseListener readyListener : lobbyListeners)
|
||||
readyListener.notify(CloseStatus.READY);
|
||||
customizeButton.setDisable(true);
|
||||
}
|
||||
|
||||
public void setTitle (String title) {
|
||||
@@ -222,6 +227,12 @@ public class LobbyController {
|
||||
|
||||
public void updateRaceState(RaceState raceState){
|
||||
this.raceState = raceState;
|
||||
/*if (this.customizeStage != null) {
|
||||
this.customizeStage.close();
|
||||
}*/ // TODO: 17/08/17 ajm412: close the customization window if the host starts the game while customizing
|
||||
if (!customizeButton.isDisabled()) {
|
||||
customizeButton.setDisable(true);
|
||||
}
|
||||
timeUntilStart.setText("Starting in: " + raceState.getRaceTimeStr());
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ Table
|
||||
-fx-text-fill: black;
|
||||
}
|
||||
|
||||
server thread
|
||||
/*server thread */
|
||||
.ui-table .column-header {
|
||||
-fx-background-color: transparent;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<children>
|
||||
<Button fx:id="readyButton" focusTraversable="false" mnemonicParsing="false" onAction="#readyButtonPressed" prefWidth="101.0" text="Ready" GridPane.halignment="CENTER" />
|
||||
<Button focusTraversable="false" mnemonicParsing="false" onAction="#leaveLobbyButtonPressed" text="Leave Lobby" GridPane.columnIndex="2" GridPane.halignment="CENTER" />
|
||||
<Button focusTraversable="false" mnemonicParsing="false" onAction="#customize" text="Customization" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
||||
<Button fx:id="customizeButton" focusTraversable="false" mnemonicParsing="false" onAction="#customize" text="Customization" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.valignment="CENTER" />
|
||||
</children>
|
||||
</GridPane>
|
||||
<GridPane GridPane.rowIndex="1">
|
||||
|
||||
Reference in New Issue
Block a user