Skip to content

Instantly share code, notes, and snippets.

@NielsPilgaard
Created November 17, 2016 11:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NielsPilgaard/368d4568c40ddd739e0ef56e55cd5b15 to your computer and use it in GitHub Desktop.
Save NielsPilgaard/368d4568c40ddd739e0ef56e55cd5b15 to your computer and use it in GitHub Desktop.
package gui;
import application.model.Hotel;
import application.service.Service;
import javafx.beans.value.ChangeListener;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import storage.Storage;
public class HotelPane extends GridPane {
private TextField txfName;
private TextField txfDescription;
private TextField txfStars;
private TextField txfPhoneNumber;
private TextField txfAddress;
private TextField txfSingleRoom;
private TextField txfDoubleRoom;
private ListView<Hotel> lvwHotels;
private HotelWindow dia;
private Button btnDelete;
private Button btnUpdate;
private Button btnCreate;
public HotelPane() {
setHgap(10);
setVgap(10);
Label lblHotels = new Label("Hotels:");
// this.add(lblHotels, 0, 0);
lvwHotels = new ListView<>();
this.add(lvwHotels, 0, 1, 1, 10);
lvwHotels.getItems().setAll(Storage.getHotels());
HBox hbxButtons = new HBox();
this.add(hbxButtons, 0, 11, 3, 1);
hbxButtons.setPadding(new Insets(0, 0, 0, 0));
// hbxButtons.setAlignment(Pos.BASELINE_CENTER);
btnCreate = new Button("Create");
hbxButtons.getChildren().add(btnCreate);
btnCreate.setOnAction(event -> createAction());
btnUpdate = new Button("Update");
btnUpdate.setDisable(true);
hbxButtons.getChildren().add(btnUpdate);
btnUpdate.setOnAction(event -> updateAction());
btnDelete = new Button("Delete");
btnDelete.setDisable(true);
hbxButtons.getChildren().add(btnDelete);
btnDelete.setOnAction(event -> deleteAction());
VBox vertBox = new VBox();
vertBox.setSpacing(10);
Label lblName = new Label("Name");
// this.add(lblName, 2, 0);
txfName = new TextField();
// this.add(txfName, 2, 1);
txfName.setEditable(false);
Label lblDescription = new Label("Description");
// this.add(lblDescription, 2, 2);
txfDescription = new TextField();
// this.add(txfDescription, 2, 3);
txfDescription.setEditable(false);
Label lblStars = new Label("Stars");
// this.add(lblStars, 2, 4);
txfStars = new TextField();
// this.add(txfStars, 2, 5);
txfStars.setEditable(false);
Label lblPhoneNumber = new Label("Phonenumber");
// this.add(lblPhoneNumber, 2, 6);
txfPhoneNumber = new TextField();
// this.add(txfPhoneNumber, 2, 7);
txfPhoneNumber.setEditable(false);
Label lblAddress = new Label("Address");
// this.add(lblAddress, 2, 8);
txfAddress = new TextField();
// this.add(txfAddress, 2, 9);
txfAddress.setEditable(false);
Label lblSingleRoom = new Label("Singleroom Price");
// this.add(lblSingleRoom, 2, 10);
txfSingleRoom = new TextField();
// this.add(txfSingleRoom, 2, 11);
txfSingleRoom.setEditable(false);
Label lblDoubleRoom = new Label("Doubleroom Price");
// this.add(lblDoubleRoom, 2, 12);
txfDoubleRoom = new TextField();
// this.add(txfDoubleRoom, 2, 13);
txfDoubleRoom.setEditable(false);
vertBox.getChildren().addAll(lblName, txfName, lblDescription, txfDescription, lblStars, txfStars,
lblPhoneNumber, txfPhoneNumber, lblAddress, txfAddress, lblSingleRoom, txfSingleRoom, lblDoubleRoom,
txfDoubleRoom);
this.add(vertBox, 2, 1);
ChangeListener<Hotel> listener = (ov, oldHotel, newHotel) -> backgroundInformationUpdate();
// TODO
lvwHotels.getSelectionModel().selectedItemProperty().addListener(listener);
dia = new HotelWindow("");
}
private void deleteAction() {
// TODO
Service.deleteHotel(lvwHotels.getSelectionModel().getSelectedItem());
this.lvwHotels.getItems().setAll(Storage.getHotels());
}
private void createAction() {
dia.createHotel();
dia.showAndWait();
lvwHotels.getItems().setAll(Storage.getHotels());
clearTextFields();
}
public void updateAction() {
dia.parseAndUpdateHotel(lvwHotels.getSelectionModel().getSelectedItem());
dia.showAndWait();
lvwHotels.getItems().setAll(Storage.getHotels());
backgroundInformationUpdate();
}
public void backgroundInformationUpdate() {
Hotel h = this.lvwHotels.getSelectionModel().getSelectedItem();
if (h != null) {
btnDelete.setDisable(false);
btnUpdate.setDisable(false);
txfName.setText(h.getName());
txfDescription.setText(h.getDescription());
txfStars.setText(h.getStars());
txfPhoneNumber.setText(h.getPhoneNumber());
txfAddress.setText(h.getAddress());
txfSingleRoom.setText("" + h.getSingleRoomPrice());
txfDoubleRoom.setText("" + h.getDoubleRoomPrice());
} else {
clearTextFields();
btnDelete.setDisable(true);
btnUpdate.setDisable(true);
}
}
private void clearTextFields() {
txfName.clear();
txfDescription.clear();
txfStars.clear();
txfPhoneNumber.clear();
txfAddress.clear();
txfSingleRoom.clear();
txfDoubleRoom.clear();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment