diff options
Diffstat (limited to 'src/de/fhswf/in/inf/se')
3 files changed, 113 insertions, 4 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegen.fxml b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegen.fxml new file mode 100644 index 0000000..2e11c58 --- /dev/null +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegen.fxml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.scene.control.*?> +<?import java.lang.*?> +<?import javafx.scene.layout.*?> +<?import javafx.scene.layout.AnchorPane?> + +<GridPane xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1"> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="94.0" + minWidth="10.0" prefWidth="78.0" /> + <ColumnConstraints hgrow="SOMETIMES" maxWidth="122.0" + minWidth="10.0" prefWidth="122.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" prefHeight="30.0" + vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" + vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <Label text="Nachname" GridPane.rowIndex="1" /> + <TextField fx:id="vornameTextField" GridPane.columnIndex="1" /> + <TextField fx:id="nachnameTextField" GridPane.columnIndex="1" + GridPane.rowIndex="1" /> + <Label text="Vorname" /> + </children> +</GridPane> diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegenController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegenController.java new file mode 100644 index 0000000..0fd15de --- /dev/null +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerHinzufuegenController.java @@ -0,0 +1,67 @@ +package de.fhswf.in.inf.se.projektthemenvergabe.view; + +import java.io.IOException; + +import de.fhswf.in.inf.se.projektthemenvergabe.model.Ansprechpartner; +import javafx.application.Platform; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.control.ButtonType; +import javafx.scene.control.Dialog; +import javafx.scene.control.TextField; +import javafx.scene.layout.GridPane; +import javafx.util.Pair; + +public class AnsprechpartnerHinzufuegenController + extends Dialog<Pair<String, String>> +{ + @FXML + private TextField vornameTextField; + + @FXML + private TextField nachnameTextField; + + /** + * Create a {@link Dialog} for entering Vorname und Nachname of an + * {@link Ansprechpartner} + * + * @throws IOException + */ + public AnsprechpartnerHinzufuegenController() + { + setTitle("Neuer Ansprechpartner"); + setHeaderText("Geben Sie den Namen des Ansprechpartners ein."); + + FXMLLoader fxmlLoader = new FXMLLoader( + getClass().getResource("AnsprechpartnerHinzufuegen.fxml")); + fxmlLoader.setController(this); + + try + { + getDialogPane().setContent((GridPane) fxmlLoader.load()); + } + catch (IOException e) + { + // Ignoriert, da die FXML Datei immer da sein sollte :-P + e.printStackTrace(); + } + + // Setze die Button Typen für den Dialog + getDialogPane().getButtonTypes().addAll(ButtonType.OK, + ButtonType.CANCEL); + + // Setze Focus auf Vorname TextField + Platform.runLater(() -> vornameTextField.requestFocus()); + + // Wenn OK gedrückt wurde, gib ein Vorname-Nachname-Paar zurück + setResultConverter(dialogButton -> { + if (dialogButton == ButtonType.OK) + { + return new Pair<>(vornameTextField.getText(), + nachnameTextField.getText()); + } + + return null; + }); + } +} diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java index 27f85c9..ac6bb34 100644 --- a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java +++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/AnsprechpartnerListeController.java @@ -20,6 +20,7 @@ import javafx.scene.control.TableView; import javafx.scene.control.TextInputDialog; import javafx.scene.control.cell.ComboBoxTableCell; import javafx.scene.control.cell.TextFieldTableCell; +import javafx.util.Pair; /** * The controller for the FXML-View AnsprechpartnerListe. @@ -255,11 +256,24 @@ public class AnsprechpartnerListeController Organisation organisation = organisationComboBox.getValue(); if (organisation != null) { - Ansprechpartner ansprechpartner = new Ansprechpartner(organisation); - ansprechpartner.setVorname("Petra"); - ansprechpartner.setNachname("Muster"); + AnsprechpartnerHinzufuegenController dialog; - main.getAnsprechpartner().add(ansprechpartner); + dialog = new AnsprechpartnerHinzufuegenController(); + + dialog.initOwner(main.getPrimaryStage()); + + Optional<Pair<String, String>> result = dialog.showAndWait(); + + if (result.isPresent() && !result.get().getKey().trim().isEmpty() + && !result.get().getValue().trim().isEmpty()) + { + Ansprechpartner ansprechpartner = new Ansprechpartner( + organisation); + ansprechpartner.setVorname(result.get().getKey().trim()); + ansprechpartner.setNachname(result.get().getValue().trim()); + + main.getAnsprechpartner().add(ansprechpartner); + } } } } |
