Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package guifx;
- import java.time.LocalDate;
- import java.util.ArrayList;
- import app.controller.Controller;
- import app.model.Konference;
- import app.model.Udflugt;
- import javafx.geometry.HPos;
- import javafx.geometry.Insets;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.ComboBox;
- import javafx.scene.control.Label;
- import javafx.scene.control.TextField;
- import javafx.scene.layout.GridPane;
- import javafx.stage.Modality;
- import javafx.stage.Stage;
- import javafx.stage.StageStyle;
- public class UdflugtWindow extends Stage {
- private Udflugt udflugt;
- private Konference konference;
- public UdflugtWindow(String title, Udflugt udflugt) {
- this.initStyle(StageStyle.UTILITY);
- this.initModality(Modality.APPLICATION_MODAL);
- this.setResizable(false);
- this.udflugt = udflugt;
- this.setTitle(title);
- GridPane pane = new GridPane();
- this.initContent(pane);
- Scene scene = new Scene(pane);
- this.setScene(scene);
- }
- public UdflugtWindow(String title) {
- this(title, null);
- }
- // ----------------------------------------------------------------------
- private TextField txfName, txfBeskrivelse, txfPris, txfDato;
- private Label lblError;
- private ComboBox <Konference> cbbKon;
- private void initContent(GridPane pane) {
- pane.setPadding(new Insets(10));
- pane.setHgap(10);
- pane.setVgap(10);
- pane.setGridLinesVisible(false);
- Label lblName = new Label("Navn");
- pane.add(lblName, 0, 0);
- txfName = new TextField();
- pane.add(txfName, 0, 1);
- txfName.setPrefWidth(200);
- Label lblbesk = new Label("Beskrivelse");
- pane.add(lblbesk, 0, 2);
- txfBeskrivelse = new TextField();
- pane.add(txfBeskrivelse, 0, 3);
- Label lblPris = new Label("Pris");
- pane.add(lblPris, 0, 4);
- txfPris = new TextField();
- pane.add(txfPris, 0, 5);
- Label lblDato = new Label("Dato");
- pane.add(lblDato, 0, 6);
- txfDato = new TextField();
- pane.add(txfDato, 0, 7);
- Label lblKonf = new Label("Konference");
- pane.add(lblKonf, 0, 8);
- cbbKon = new ComboBox();
- pane.add(cbbKon, 0, 9);
- cbbKon.getItems().addAll(Controller.getKonferencer());
- Button btnCancel = new Button("Cancel");
- pane.add(btnCancel, 0, 10);
- GridPane.setHalignment(btnCancel, HPos.LEFT);
- btnCancel.setOnAction(event -> this.cancelAction());
- Button btnOK = new Button("OK");
- pane.add(btnOK, 0, 10);
- GridPane.setHalignment(btnOK, HPos.RIGHT);
- btnOK.setOnAction(event -> this.okAktion());
- lblError = new Label();
- pane.add(lblError, 0, 11);
- lblError.setStyle("-fx-text-fill: red");
- this.initControls();
- }
- private void initControls() {
- if (udflugt != null) {
- txfName.setText(udflugt.getNavn());
- txfBeskrivelse.setText(udflugt.getBeskrivelse());
- txfPris.setText("" + udflugt.getPris());
- txfDato.setText("" + udflugt.getDato());
- } else {
- txfName.clear();
- txfBeskrivelse.clear();
- txfPris.clear();
- txfDato.clear();
- }
- }
- // ------------------------------------------------------------------------
- private void cancelAction() {
- this.hide();
- }
- private void okAktion() {
- String navn = txfName.getText().trim();
- if (navn.length() == 0) {
- lblError.setText("Navnefeltet er tomt");
- return;
- }
- String beskrivelse = txfBeskrivelse.getText().trim();
- if (beskrivelse.length() == 0) {
- lblError.setText("Beskrivelsesfeltet er tomt");
- return;
- }
- int pris = -1;
- try {
- pris = Integer.parseInt(txfPris.getText().trim());
- } catch (NumberFormatException ex) {
- }
- if (pris < 0) {
- lblError.setText("Prisen skal være et positivt tal");
- return;
- }
- String dato = txfDato.getText().trim();
- if (dato.length() == 0) {
- lblError.setText("Datoen dur ikke");
- }
- Konference nyKonf = cbbKon.getSelectionModel().getSelectedItem();
- if (udflugt != null) {
- Controller.updateUdflugt(udflugt, beskrivelse, navn, pris, LocalDate.parse(dato), nyKonf);
- } else {
- Udflugt udflugt = Controller.createUdflugt(beskrivelse, navn, pris, LocalDate.parse(dato), nyKonf);
- }
- this.hide();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement