summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-12-16 02:24:36 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-12-16 02:24:36 +0100
commit869bbdd24a6c360cb2aab91d7c925d7191a5f07e (patch)
treea5ca0f8fa9f18c2b52bd0e650ce5222ae39a726e /src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java
parentbdec8b2ed49f0473168638c9220209dc77a3afd8 (diff)
downloadProjektthemenvergabe-869bbdd24a6c360cb2aab91d7c925d7191a5f07e.tar.gz
Projektthemenvergabe-869bbdd24a6c360cb2aab91d7c925d7191a5f07e.zip
It partially works (TM)
Diffstat (limited to 'src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java')
-rw-r--r--src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java
new file mode 100644
index 0000000..17a874d
--- /dev/null
+++ b/src/de/fhswf/in/inf/se/projektthemenvergabe/view/StudentenverwaltungsController.java
@@ -0,0 +1,107 @@
+package de.fhswf.in.inf.se.projektthemenvergabe.view;
+
+import java.util.Optional;
+
+import de.fhswf.in.inf.se.projektthemenvergabe.Main;
+import de.fhswf.in.inf.se.projektthemenvergabe.model.Student;
+import javafx.fxml.FXML;
+import javafx.scene.control.Button;
+import javafx.scene.control.TableColumn;
+import javafx.scene.control.TableView;
+import javafx.scene.control.TextInputDialog;
+import javafx.scene.control.cell.TextFieldTableCell;
+import javafx.util.converter.IntegerStringConverter;
+
+public class StudentenverwaltungsController
+{
+ @FXML
+ private TableView<Student> studentTableView;
+
+ @FXML
+ private TableColumn<Student, Integer> matrikelnummerTableColumn;
+
+ @FXML
+ private TableColumn<Student, String> vornameTableColumn;
+
+ @FXML
+ private TableColumn<Student, String> nachnameTableColumn;
+
+ @FXML
+ private Button deleteStudentButton;
+
+ private Main main;
+
+ @FXML
+ private void initialize()
+ {
+ matrikelnummerTableColumn.setCellValueFactory(
+ (data) -> data.getValue().matrikelnummerProperty().asObject());
+ matrikelnummerTableColumn.setCellFactory(
+ TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
+
+ vornameTableColumn
+ .setCellValueFactory((data) -> data.getValue().vornameProperty());
+ vornameTableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
+ vornameTableColumn.setOnEditCommit((data) -> {
+ data.getRowValue().setVorname(data.getNewValue().trim());
+
+ // Hack, aktualisiert TableView, da Observable beim setzen nicht neu
+ // abgefragt wird
+ vornameTableColumn.setVisible(false);
+ vornameTableColumn.setVisible(true);
+ });
+
+ nachnameTableColumn.setCellValueFactory(
+ (data) -> data.getValue().nachnameProperty());
+ nachnameTableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
+ nachnameTableColumn.setOnEditCommit((data) -> {
+ data.getRowValue().setNachname(data.getNewValue().trim());
+
+ // Hack, aktualisiert TableView, da Observable beim setzen nicht neu
+ // abgefragt wird
+ nachnameTableColumn.setVisible(false);
+ nachnameTableColumn.setVisible(true);
+ });
+
+ deleteStudentButton.disableProperty().bind(studentTableView
+ .getSelectionModel().selectedItemProperty().isNull());
+ }
+
+ public void setMain(Main main)
+ {
+ this.main = main;
+ studentTableView.setItems(main.getStudenten());
+ }
+
+ @FXML
+ private void handleAddStudent()
+ {
+ TextInputDialog dialog = new TextInputDialog();
+ dialog.setTitle("Füge neuen Studenten hinzu");
+ dialog.setHeaderText("Geben Sie die Matrikelnummer des Studenten ein.");
+ dialog.setContentText("Matrikelnummer des Stundenten:");
+
+ dialog.initOwner(main.getStudentenverwaltungsStage());
+
+ Optional<String> result = dialog.showAndWait();
+ if (result.isPresent() && !result.get().trim().isEmpty())
+ {
+ Student student = new Student();
+ student.setMatrikelnummer(Integer.parseInt(result.get().trim(), 10));
+ main.getStudenten().add(student);
+ }
+ }
+
+ @FXML
+ private void handleDeleteStudent()
+ {
+ Student selectedItem = studentTableView.getSelectionModel()
+ .getSelectedItem();
+
+ if (selectedItem != null)
+ {
+ main.getProjekte().remove(selectedItem.getProjekt());
+ main.getStudenten().remove(selectedItem);
+ }
+ }
+}