Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package view;
- import com.sun.javafx.tk.AppletWindow;
- import controller.AddRoomController;
- import javafx.beans.binding.Bindings;
- import javafx.beans.binding.BooleanBinding;
- import javafx.geometry.Insets;
- import javafx.geometry.Pos;
- import javafx.scene.Scene;
- import javafx.scene.control.Alert;
- import javafx.scene.control.Button;
- import javafx.scene.control.Label;
- import javafx.scene.control.RadioButton;
- import javafx.scene.control.TextField;
- import javafx.scene.control.ToggleGroup;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.layout.GridPane;
- import javafx.scene.layout.VBox;
- import javafx.stage.Stage;
- import model.Room;
- import model.exception.InvalidDateException;
- import model.exception.InvalidNumBedsException;
- import model.exception.InvalidRoomIdException;
- public class AddRoomView extends Stage {
- public AddRoomView(Room room) {
- // Create a pane and set its properties
- BorderPane pane = new BorderPane();
- setWidth(900);
- setWidth(700);
- // Place nodes in the pane
- ToggleGroup tg = new ToggleGroup();
- RadioButton suite = new RadioButton("Suite");
- RadioButton standard = new RadioButton("Standard");
- suite.setToggleGroup(tg);
- standard.setToggleGroup(tg);
- tg.selectToggle(suite);
- addRoomPane defaultpane = new addRoomPane("suite");
- defaultpane.addSuite();
- pane.setCenter(defaultpane);
- pane.setTop(new MenuView());
- pane.setLeft(new VBox(suite,standard));
- suite.setOnAction(e -> {
- addRoomPane ar = new addRoomPane("suite");
- ar.addSuite();
- pane.setCenter(ar);
- });
- standard.setOnAction(e -> {
- addRoomPane ar = new addRoomPane("suite");
- ar.addStandardRoom();
- pane.setCenter(ar);
- });
- // adding buttons and fields to pane
- // Create a scene and place it in the stage
- Scene scene1 = new Scene(pane);
- setTitle("Add Room");
- setScene(scene1);
- show();
- }
- }
- class addRoomPane extends GridPane {
- String roomType;
- Room room;
- AddRoomController controller = new AddRoomController(room);
- public addRoomPane(String roomType) {
- this.roomType = roomType;
- }
- public void addStandardRoom() {
- TextField roomIdField = new TextField();
- TextField numBedsField = new TextField();
- //disable and enable fields when suite is selected
- BooleanBinding standardBind =
- Bindings.length(roomIdField.textProperty()).isEqualTo(0)
- .or(Bindings.length(numBedsField.textProperty()).isEqualTo(0)) ;
- //prompt texts for field boxes
- add(new Label("Room ID:"), 2, 0);
- add(roomIdField, 2, 1);
- add(new Label("Number of Beds:"), 4, 0);
- add(numBedsField, 4, 1);
- Button btAdd = new Button("Add Standard Room");
- add(btAdd, 1, 4);
- btAdd.disableProperty().bind(standardBind);
- btAdd.setOnAction(event -> {
- String roomId = roomIdField.getText();
- String numBeds = numBedsField.getText();
- try {
- controller.addStandardRoom(roomId, numBeds);
- } catch (InvalidRoomIdException e) {
- e.printStackTrace();
- } catch (InvalidNumBedsException e) {
- e.printStackTrace();
- }
- });
- }
- public void addSuite() {
- TextField roomIdField = new TextField();
- TextField lastMaintenanceField = new TextField();
- //disable and enable fields when suite is selected
- BooleanBinding suiteBind = roomIdField.textProperty().isEmpty()
- .or(lastMaintenanceField.textProperty().isEmpty());
- Button btAdd = new Button("Add Suite");
- add(btAdd, 1, 4);
- btAdd.disableProperty().bind(suiteBind);
- //prompt texts for field boxes
- lastMaintenanceField.setPromptText("dd/mm/yyyy");
- roomIdField.setPromptText("R_000 or S_000");
- add(new Label("Room ID:"), 2, 0);
- add(roomIdField, 2, 1);
- add(new Label("Last Maintenance Date:"), 3, 0);
- add(lastMaintenanceField, 3, 1);
- btAdd.setOnAction(event -> {
- String lastMaintenanceDate = lastMaintenanceField.getText();
- String roomId = roomIdField.getText();
- try {
- controller.addSuite(roomId, lastMaintenanceDate);
- } catch (InvalidDateException e1) {
- Alert a = new Alert(Alert.AlertType.WARNING, "Invalid Date Format. Date should follow dd/mm/yyyy format.");
- a.show();
- } catch (InvalidRoomIdException e) {
- e.printStackTrace();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement