summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/projektthemenvergabe/view/ProjektthemenverwaltungsController.java
blob: 7d0badb90b19455a3ec07d6631be19582c392676 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package de.fhswf.in.inf.se.projektthemenvergabe.view;

import de.fhswf.in.inf.se.projektthemenvergabe.Main;
import de.fhswf.in.inf.se.projektthemenvergabe.model.Projekt;
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.ComboBoxTableCell;

public class ProjektthemenverwaltungsController
{
   @FXML
   private TableView<Projekt> projektTableView;

   @FXML
   private TableColumn<Projekt, String> projektThemaTableColumn;

   @FXML
   private TableColumn<Projekt, String> ansprechpatnerTableColumn;

   @FXML
   private TableColumn<Projekt, Integer> student1TableColumn;

   @FXML
   private TableColumn<Projekt, Integer> student2TableColumn;

   @FXML
   private TableColumn<Projekt, Integer> student3TableColumn;

   @FXML
   private TableColumn<Projekt, String> statusTableColumn;

   @FXML
   private Button editProjektButton;

   @FXML
   private Button deleteProjektButton;

   private Main main;

   @FXML
   private void initialize()
   {
      projektThemaTableColumn.setCellValueFactory(
            (data) -> data.getValue().projektthemaProperty());
      ansprechpatnerTableColumn.setCellValueFactory((data) -> data.getValue()
            .getAnsprechpartner().nachnameProperty());
      student1TableColumn.setCellValueFactory((data) -> data.getValue()
            .getStudents().get(0).matrikelnummerProperty().asObject());
      student2TableColumn.setCellValueFactory((data) -> data.getValue()
            .getStudents().get(1).matrikelnummerProperty().asObject());
      student3TableColumn.setCellValueFactory((data) -> data.getValue()
            .getStudents().get(2).matrikelnummerProperty().asObject());
      statusTableColumn
            .setCellValueFactory((data) -> data.getValue().statusProperty());
      statusTableColumn.setCellFactory(
            ComboBoxTableCell.forTableColumn(Projekt.getStatusList()));

      editProjektButton.disableProperty().bind(projektTableView
            .getSelectionModel().selectedItemProperty().isNull());
      deleteProjektButton.disableProperty().bind(projektTableView
            .getSelectionModel().selectedItemProperty().isNull());
   }

   public void setMain(Main main)
   {
      this.main = main;
      projektTableView.setItems(main.getProjekte());
   }

   @FXML
   private void handleAddProjekt()
   {
      Projekt projekt = main.showProjekthinzufuegenStage(null);

      if (projekt != null)
      {
         main.getProjekte().add(projekt);
      }
   }

   @FXML
   private void handleEditProjekt()
   {
      Projekt selectedItem = projektTableView.getSelectionModel()
            .getSelectedItem();

      if (selectedItem != null)
      {
         main.showProjekthinzufuegenStage(selectedItem);
      }
   }

   @FXML
   private void handleDeleteProjekt()
   {
      Projekt selectedItem = projektTableView.getSelectionModel()
            .getSelectedItem();

      if (selectedItem != null)
      {
         main.getProjekte().remove(selectedItem);
      }
   }

   @FXML
   private void handleStudentenverwaltung()
   {
      main.showStudentenverwaltung();
   }

   @FXML
   private void handleAnsprechpartnerverwaltungs()
   {
      main.showAnsprechpartnerverwaltungsStage();
   }

   @FXML
   private void handleClose()
   {
      Platform.exit();
   }
}