summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/de/fhswf/in/inf/se/notepadMinusMinus/util/OverLimitIntegerStringConverter.java77
-rw-r--r--src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java14
2 files changed, 84 insertions, 7 deletions
diff --git a/src/de/fhswf/in/inf/se/notepadMinusMinus/util/OverLimitIntegerStringConverter.java b/src/de/fhswf/in/inf/se/notepadMinusMinus/util/OverLimitIntegerStringConverter.java
new file mode 100644
index 0000000..edc1975
--- /dev/null
+++ b/src/de/fhswf/in/inf/se/notepadMinusMinus/util/OverLimitIntegerStringConverter.java
@@ -0,0 +1,77 @@
+/**
+ *
+ */
+package de.fhswf.in.inf.se.notepadMinusMinus.util;
+
+import javafx.util.StringConverter;
+
+/**
+ * TODO Add comment here
+ *
+ * @author $Author: $
+ * @version $Revision: $, $Date: $ UTC
+ */
+public class OverLimitIntegerStringConverter extends StringConverter<Integer>
+{
+ private int minAllowedValue;
+
+ /**
+ * TODO Add constructor comment here
+ *
+ * @param minAllowedValue
+ */
+ public OverLimitIntegerStringConverter(int minAllowedValue)
+ {
+ this.minAllowedValue = minAllowedValue;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javafx.util.StringConverter#toString(java.lang.Object)
+ */
+ @Override
+ public String toString(Integer object)
+ {
+ // If the specified value is null or not positive, return a zero-length
+ // String
+ if (object == null || object.intValue() < minAllowedValue)
+ {
+ return "";
+ }
+
+ return (Integer.toString(object.intValue()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javafx.util.StringConverter#fromString(java.lang.String)
+ */
+ @Override
+ public Integer fromString(String string)
+ {
+ // If the specified value is null or zero-length, return null
+ if (string == null)
+ {
+ return null;
+ }
+
+ string = string.trim();
+
+ if (string.length() < 1)
+ {
+ return null;
+ }
+
+ // If the specified value is 0 or negative, return null
+ Integer object = Integer.valueOf(string);
+
+ if (object.intValue() < minAllowedValue)
+ {
+ return null;
+ }
+
+ return object;
+ }
+}
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 fed6d36..b7bcddd 100644
--- a/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
+++ b/src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java
@@ -6,6 +6,7 @@ import java.math.RoundingMode;
import de.fhswf.in.inf.se.notepadMinusMinus.Main;
import de.fhswf.in.inf.se.notepadMinusMinus.model.Grade;
+import de.fhswf.in.inf.se.notepadMinusMinus.util.OverLimitIntegerStringConverter;
import javafx.application.Platform;
import javafx.collections.ListChangeListener.Change;
import javafx.fxml.FXML;
@@ -17,7 +18,6 @@ import javafx.scene.control.TableView;
import javafx.scene.control.cell.ComboBoxTableCell;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.stage.FileChooser;
-import javafx.util.converter.IntegerStringConverter;
/**
* TODO Add comment here
@@ -71,8 +71,8 @@ public class MainViewController
{
semesterColumn.setCellValueFactory(
cellData -> cellData.getValue().semesterProperty().asObject());
- semesterColumn.setCellFactory(
- TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
+ semesterColumn.setCellFactory(TextFieldTableCell
+ .forTableColumn(new OverLimitIntegerStringConverter(1)));
semesterColumn.setOnEditCommit(data -> {
data.getRowValue().setSemester(data.getNewValue());
});
@@ -86,8 +86,8 @@ public class MainViewController
ectsColumn.setCellValueFactory(
cellData -> cellData.getValue().ectsProperty().asObject());
- ectsColumn.setCellFactory(
- TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
+ ectsColumn.setCellFactory(TextFieldTableCell
+ .forTableColumn(new OverLimitIntegerStringConverter(0)));
ectsColumn.setOnEditCommit(data -> {
data.getRowValue().setEcts(data.getNewValue());
});
@@ -102,8 +102,8 @@ public class MainViewController
attemptColumn.setCellValueFactory(
cellData -> cellData.getValue().attemptProperty().asObject());
- attemptColumn.setCellFactory(
- TextFieldTableCell.forTableColumn(new IntegerStringConverter()));
+ attemptColumn.setCellFactory(TextFieldTableCell
+ .forTableColumn(new OverLimitIntegerStringConverter(1)));
attemptColumn.setOnEditCommit(data -> {
data.getRowValue().setAttempt(data.getNewValue());
});