summaryrefslogtreecommitdiffstats
path: root/src/de
diff options
context:
space:
mode:
Diffstat (limited to 'src/de')
-rw-r--r--src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
index 473a273..f0ac2b4 100644
--- a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
+++ b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
@@ -2,10 +2,12 @@ package de.fhswf.in.inf.se.notepadMinusMinus.view;
import java.io.File;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import de.fhswf.in.inf.se.notepadMinusMinus.Main;
import de.fhswf.in.inf.se.notepadMinusMinus.model.Grade;
import javafx.application.Platform;
+import javafx.collections.ListChangeListener.Change;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
@@ -104,6 +106,29 @@ public class MainViewController
{
this.main = main;
gradeTable.setItems(main.getGradeList());
+
+ gradeTable.getItems().addListener((Change<? extends Grade> change) -> {
+ ectsSumLabel.setText("0");
+ averageGradeLabel.setText("0.0");
+ int sumEcts = 0;
+ BigDecimal gradesSumWeighted = BigDecimal.ZERO;
+ for (Grade grade : gradeTable.getItems())
+ {
+ if (grade.getGrade().compareTo(BigDecimal.ZERO) != 0)
+ {
+ sumEcts += grade.getEcts();
+ gradesSumWeighted = gradesSumWeighted.add(grade.getGrade()
+ .multiply(new BigDecimal(grade.getEcts())));
+ }
+ }
+ if (sumEcts > 0)
+ {
+ ectsSumLabel.setText(String.valueOf(sumEcts));
+ averageGradeLabel.setText(gradesSumWeighted
+ .divide(new BigDecimal(sumEcts), RoundingMode.HALF_UP)
+ .toString());
+ }
+ });
}
@FXML