summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
blob: 51e8e066109f894bd75952845f50287af582e6c8 (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
package de.fhswf.in.inf.se.notepadMinusMinus.view;

import java.math.BigDecimal;

import de.fhswf.in.inf.se.notepadMinusMinus.Main;
import de.fhswf.in.inf.se.notepadMinusMinus.model.Grade;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.ComboBoxTableCell;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.util.converter.IntegerStringConverter;

public class MainViewController
{
   @FXML
   private TableView<Grade> gradeTable;

   @FXML
   private TableColumn<Grade, Integer> semesterColumn;

   @FXML
   private TableColumn<Grade, String> modulenameColumn;

   @FXML
   private TableColumn<Grade, Integer> ectsColumn;

   @FXML
   private TableColumn<Grade, BigDecimal> gradeColumn;

   @FXML
   private TableColumn<Grade, Integer> attemptColumn;

   @FXML
   private Label ectsSumLabel;

   @FXML
   private Label averageNoteLabel;

   @FXML
   private ComboBox<Double> colloquiumComboBox;

   @FXML
   private ComboBox<Double> thesisComboBox;

   @FXML
   private void initialize()
   {
      semesterColumn.setCellValueFactory(
            cellData -> cellData.getValue().semesterProperty().asObject());
      semesterColumn.setCellFactory(
            TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
      semesterColumn.setOnEditCommit(data -> {
         data.getRowValue().setSemester(data.getNewValue());
      });

      modulenameColumn.setCellValueFactory(
            cellData -> cellData.getValue().modulenameProperty());
      modulenameColumn.setCellFactory(TextFieldTableCell.forTableColumn());
      modulenameColumn.setOnEditCommit(data -> {
         data.getRowValue().setModulename(data.getNewValue());
      });

      ectsColumn.setCellValueFactory(
            cellData -> cellData.getValue().ectsProperty().asObject());
      ectsColumn.setCellFactory(
            TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
      ectsColumn.setOnEditCommit(data -> {
         data.getRowValue().setEcts(data.getNewValue());
      });

      gradeColumn.setCellValueFactory(
            cellData -> cellData.getValue().gradeProperty());
      gradeColumn.setCellFactory(
            ComboBoxTableCell.forTableColumn(Grade.gradeValuesProperty()));
      gradeColumn.setOnEditCommit(data -> {
         data.getRowValue().setGrade(data.getNewValue());
      });

      attemptColumn.setCellValueFactory(
            cellData -> cellData.getValue().semesterProperty().asObject());
      attemptColumn.setCellFactory(
            TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
      attemptColumn.setOnEditCommit(data -> {
         data.getRowValue().setAttempt(data.getNewValue());
      });
   }

   public void setMain(Main main)
   {
      gradeTable.setItems(main.getGradeList());
   }

   @FXML
   private void handleNew()
   {
      Grade grade = new Grade();
      gradeTable.getItems().add(grade);
   }
}