diff --git a/src/WarehouseGUI.java b/src/WarehouseGUI.java index 2efab7d..c489508 100644 --- a/src/WarehouseGUI.java +++ b/src/WarehouseGUI.java @@ -7,8 +7,14 @@ import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.stage.Stage; -public class WarehouseGUI extends Player{ +/** + * 2019-03-19 + * Authors:Siddhant, Vikram, Harkamal, Haris, Nathan + * WarehouseGUI allows the user to store goods in a warehouse in order to have more hold on the ship + */ +public class WarehouseGUI extends Player{ + //Create the labels, buttons and textfields required private HBox hBox; private VBox vBox; private TextField textField; @@ -36,13 +42,23 @@ public class WarehouseGUI extends Player{ private Label houseOpium; private BorderPane borderPane; + /** + * constructor that creates an object of type player + * @param player + */ public WarehouseGUI(Player player) { Player playerDummy = new Player(player); setPlayer(playerDummy); } + /** + * + * @param stage + * @return stage after creating buttons and layout + */ public Stage initializeWarehouse(Stage stage){ + //Initializes the instances created above to a new type hBox = new HBox(); vBox = new VBox(); generalRadio = new RadioButton(); @@ -70,6 +86,7 @@ public class WarehouseGUI extends Player{ borderPane = new BorderPane(); textField = new TextField(); + //Creating the box for the warehouse GUI borderPane.setAlignment(hBox, javafx.geometry.Pos.CENTER); hBox.setAlignment(javafx.geometry.Pos.CENTER); hBox.setPrefHeight(100.0); @@ -80,40 +97,50 @@ public class WarehouseGUI extends Player{ vBox.setPrefHeight(200.0); vBox.setPrefWidth(100.0); + //Adding general button generalRadio.setMnemonicParsing(false); generalRadio.setSelected(true); generalRadio.setText("General"); generalRadio.setToggleGroup(Goods); + //Adding Arms Button armsRadio.setMnemonicParsing(false); armsRadio.setText("Arms"); armsRadio.setToggleGroup(Goods); + //Adding Silk button silkRadio.setMnemonicParsing(false); silkRadio.setText("Silk"); silkRadio.setToggleGroup(Goods); + // Adding opium button opiumRadio.setMnemonicParsing(false); opiumRadio.setText("Opium"); opiumRadio.setToggleGroup(Goods); + // Remove materials button withdrawButton.setMnemonicParsing(false); withdrawButton.setText("Withdraw"); + // Add materials button depositButton.setMnemonicParsing(false); depositButton.setText("Deposit"); + //Go back to the previous screen button quitButton.setMnemonicParsing(false); quitButton.setText("Go back"); borderPane.setBottom(hBox); + + //Takes you to the HK warehouse borderPane.setAlignment(title, javafx.geometry.Pos.CENTER); title.setText("Hong Kong Warehouse"); title.setFont(new Font(24.0)); title.setPadding(new Insets(10.0, 0.0, 0.0, 0.0)); borderPane.setTop(title); + // Making the BOX again borderPane.setAlignment(hBox0, javafx.geometry.Pos.CENTER); hBox0.setAlignment(javafx.geometry.Pos.CENTER); hBox0.setPrefHeight(100.0); @@ -126,12 +153,19 @@ public class WarehouseGUI extends Player{ playerLabel.setText("Player:"); playerLabel.setFont(new Font(18.0)); + // displays the hold of general playerGeneral.setText("General:"); + // displays the hold of Arms + playerArms.setText("Arms:"); + // displays the hold of Silk + playerSilk.setText("Silk:"); + // displays the hold of Opium + playerOpium.setText("Opium:"); vBox1.setAlignment(javafx.geometry.Pos.CENTER_LEFT); @@ -141,6 +175,7 @@ public class WarehouseGUI extends Player{ houseLabel.setText("Warehouse:"); houseLabel.setFont(new Font(18.0)); + houseGeneral.setText("General:"); houseArms.setText("Arms:"); @@ -148,28 +183,34 @@ public class WarehouseGUI extends Player{ houseSilk.setText("Silk:"); houseOpium.setText("Opium:"); + + //Shows the values of the goods that are in the warehouse borderPane.setMargin(hBox0, new Insets(0.0)); hBox0.setPadding(new Insets(10.0, 0.0, 0.0, 0.0)); vBox0.setPadding(new Insets(0, 0.0, 0.0, 0.0)); borderPane.setCenter(hBox0); + //Add buttons for the goods vBox.getChildren().add(generalRadio); vBox.getChildren().add(armsRadio); vBox.getChildren().add(silkRadio); vBox.getChildren().add(opiumRadio); + //Adds the buttons for withdraw, deposit and quitting hBox.getChildren().add(vBox); hBox.getChildren().add(textField); hBox.getChildren().add(withdrawButton); hBox.getChildren().add(depositButton); hBox.getChildren().add(quitButton); + //Adds the buttons for the amount of the good the player has vBox0.getChildren().add(playerLabel); vBox0.getChildren().add(playerGeneral); vBox0.getChildren().add(playerArms); vBox0.getChildren().add(playerSilk); vBox0.getChildren().add(playerOpium); + //Amount of stock the warehouse has of the goods vBox1.getChildren().add(houseLabel); vBox1.getChildren().add(houseGeneral); vBox1.getChildren().add(houseArms); @@ -187,7 +228,7 @@ public class WarehouseGUI extends Player{ taipanShopGUI.initializeShop(stage); stage.show(); }); - + //Runs when the withdraw button is selected. and removes the amount of the selected good withdrawButton.setOnAction(event -> { try { int withdraw = Integer.parseInt(textField.getText()); @@ -195,22 +236,27 @@ public class WarehouseGUI extends Player{ if(withdraw <= 0){ title.setText("Please enter a valid value"); } + //Transfers general amount else if(Goods.getSelectedToggle() == generalRadio && withdraw <= getwGeneral()){ setGeneralHeld(getPlayer().getGeneralHeld()+withdraw); setwGeneral(getPlayer().getwGeneral()-withdraw); } + //Transfers Arms amount else if(Goods.getSelectedToggle() == armsRadio && withdraw <= getwArms()){ setArmsHeld(getPlayer().getArmsHeld()+withdraw); setwArms(getPlayer().getwArms()-withdraw); } + //Transfers Silk Amount else if(Goods.getSelectedToggle() == silkRadio && withdraw <= getwSilk()){ setSilkHeld(getPlayer().getSilkHeld()+withdraw); setwSilk(getPlayer().getwSilk()-withdraw); } - else if(Goods.getSelectedToggle() == opiumRadio && withdraw <= getwOpium()){ - setOpiumHeld(getPlayer().getOpiumHeld()+withdraw); - setwOpium(getPlayer().getwOpium()-withdraw); + //Transfers Opium amount + else if(Goods.getSelectedToggle() == opiumRadio && withdraw <= getwOpium()) { + setOpiumHeld(getPlayer().getOpiumHeld() + withdraw); + setwOpium(getPlayer().getwOpium() - withdraw); } + // Ensures a valid value is entered else{ title.setText("Please enter a valid value"); } @@ -220,7 +266,7 @@ public class WarehouseGUI extends Player{ title.setText("Please enter a valid value"); } }); - + //Button to add a user entered amount to the warehouse depositButton.setOnAction(event -> { try { int deposit = Integer.parseInt(textField.getText()); @@ -228,22 +274,27 @@ public class WarehouseGUI extends Player{ if(deposit <= 0){ title.setText("Please enter a valid value"); } + //Transfers general amount else if(Goods.getSelectedToggle() == generalRadio && deposit <= getGeneralHeld()){ setGeneralHeld(getPlayer().getGeneralHeld()-deposit); setwGeneral(getPlayer().getwGeneral()+deposit); } + //Transfers Arms amount else if(Goods.getSelectedToggle() == armsRadio && deposit <= getArmsHeld()){ setArmsHeld(getPlayer().getArmsHeld()-deposit); setwArms(getPlayer().getwArms()+deposit); } + //Transfers Silk amount else if(Goods.getSelectedToggle() == silkRadio && deposit <= getSilkHeld()){ setSilkHeld(getPlayer().getSilkHeld()-deposit); setwSilk(getPlayer().getwSilk()+deposit); } + //Transfers Opium amount else if(Goods.getSelectedToggle() == opiumRadio && deposit <= getOpiumHeld()){ setOpiumHeld(getPlayer().getOpiumHeld()-deposit); setwOpium(getPlayer().getwOpium()+deposit); } + //Checks if the correct value is entered else{ title.setText("Please enter a valid value"); } @@ -255,7 +306,7 @@ public class WarehouseGUI extends Player{ }); - + //Create the sceene and box of the desired size Scene root = new Scene(borderPane, 600, 480); root.getStylesheets().add("styleguide.css"); @@ -265,6 +316,9 @@ public class WarehouseGUI extends Player{ return stage; } + /** + * As soon as the transfer is made the table of the amount of goods is updated using this method + */ public void updateLabels(){ playerLabel.setText("Player: " + (getPlayer().getCargoSpace()-((getPlayer().getGuns()*10)+ getPlayer().getGeneralHeld() + getPlayer().getArmsHeld() + getPlayer().getSilkHeld() + getPlayer().getOpiumHeld()))); houseLabel.setText("Warehouse: " + (10000 -(getPlayer().getwGeneral() + getPlayer().getwArms() + getPlayer().getwSilk() + getPlayer().getwOpium())));