diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-30 20:16:52 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-11-30 20:16:52 +0100 |
| commit | 7fcb4b7cbd70d55c6c97e2eb4a8a0f9cd500a006 (patch) | |
| tree | b5ec14975da6802d99ca2763bd86e72af85a66e9 | |
| parent | fa8fd8f0eb63198da62b853bab12cc416bc3aee4 (diff) | |
| download | Notepad---7fcb4b7cbd70d55c6c97e2eb4a8a0f9cd500a006.tar.gz Notepad---7fcb4b7cbd70d55c6c97e2eb4a8a0f9cd500a006.zip | |
Add a check for TableCell values
| -rw-r--r-- | src/de/fhswf/in/inf/se/notepadMinusMinus/util/OverLimitIntegerStringConverter.java | 77 | ||||
| -rw-r--r-- | src/de/fhswf/in/inf/se/notepadMinusMinus/view/MainViewController.java | 14 |
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()); }); |
