Created
November 17, 2016 11:45
-
-
Save NielsPilgaard/368d4568c40ddd739e0ef56e55cd5b15 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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