diff --git a/src/main/java/ninja/javafx/smartcsv/fx/validation/ValidationEditorController.java b/src/main/java/ninja/javafx/smartcsv/fx/validation/ValidationEditorController.java index e99cd2a..c9bb88b 100644 --- a/src/main/java/ninja/javafx/smartcsv/fx/validation/ValidationEditorController.java +++ b/src/main/java/ninja/javafx/smartcsv/fx/validation/ValidationEditorController.java @@ -55,6 +55,7 @@ import java.util.regex.Pattern; import static java.util.Arrays.asList; import static java.util.stream.Collectors.joining; import static javafx.beans.binding.Bindings.when; +import static ninja.javafx.smartcsv.validation.ValidationFormatHelper.doubleToInteger; /** * controller for editing column validations @@ -110,9 +111,6 @@ public class ValidationEditorController extends FXMLController { @FXML private Spinner maxLengthSpinner; - @FXML - private TextField dateformatRuleTextField; - @FXML private TextField regexpRuleTextField; @@ -131,9 +129,6 @@ public class ValidationEditorController extends FXMLController { @FXML private CheckBox enableMaxLengthRule; - @FXML - private CheckBox enableDateRule; - @FXML private CheckBox enableRegexpRule; @@ -167,7 +162,6 @@ public class ValidationEditorController extends FXMLController { initSpinner(minLengthSpinner, enableMinLengthRule); initSpinner(maxLengthSpinner, enableMaxLengthRule); - initTextInputControl(dateformatRuleTextField, enableDateRule); initTextInputControl(regexpRuleTextField, enableRegexpRule); initTextInputControl(valueOfRuleTextField, enableValueOfRule); initCodeAreaControl(groovyRuleTextArea, enableGroovyRule); @@ -294,66 +288,45 @@ public class ValidationEditorController extends FXMLController { private void updateForm() { -// updateCheckBox( -// validationConfiguration.getNotEmptyRuleFor(getSelectedColumn()), -// enableNotEmptyRule -// ); -// -// updateCheckBox( -// validationConfiguration.getIntegerRuleFor(getSelectedColumn()), -// enableIntegerRule -// ); -// -// updateCheckBox( -// validationConfiguration.getDoubleRuleFor(getSelectedColumn()), -// enableDoubleRule -// ); -// -// updateCheckBox( -// validationConfiguration.getAlphanumericRuleFor(getSelectedColumn()), -// enableAlphanumericRule -// ); -// -// updateCheckBox( -// validationConfiguration.getUniqueRuleFor(getSelectedColumn()), -// enableUniqueRule -// ); -// -// updateSpinner( -// minLengthSpinner, -// validationConfiguration.getMinLengthRuleFor(getSelectedColumn()), -// enableMinLengthRule -// ); -// -// updateSpinner( -// maxLengthSpinner, -// validationConfiguration.getMaxLengthRuleFor(getSelectedColumn()), -// enableMaxLengthRule -// ); -// -// updateTextInputControl( -// dateformatRuleTextField, -// validationConfiguration.getDateRuleFor(getSelectedColumn()), -// enableDateRule -// ); -// -// updateTextInputControl( -// regexpRuleTextField, -// validationConfiguration.getRegexpRuleFor(getSelectedColumn()), -// enableRegexpRule -// ); -// -// updateTextInputControl( -// valueOfRuleTextField, -// validationConfiguration.getValueOfRuleFor(getSelectedColumn()), -// enableValueOfRule -// ); -// -// updateCodeAreaControl( -// groovyRuleTextArea, -// validationConfiguration.getGroovyRuleFor(getSelectedColumn()), -// enableGroovyRule -// ); + updateCheckBox( + (Boolean)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("required"), + enableNotEmptyRule + ); + + updateCheckBox( + (Boolean)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("unique"), + enableUniqueRule + ); + + updateSpinner( + minLengthSpinner, + doubleToInteger((Double)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("minLength")), + enableMinLengthRule + ); + + updateSpinner( + maxLengthSpinner, + doubleToInteger((Double)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("maxLength")), + enableMaxLengthRule + ); + + updateTextInputControl( + regexpRuleTextField, + (String)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("pattern"), + enableRegexpRule + ); + + updateTextInputControl( + valueOfRuleTextField, + (String)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("enum"), + enableValueOfRule + ); + + updateCodeAreaControl( + groovyRuleTextArea, + (String)validationConfiguration.getFieldConfiguration(getSelectedColumn()).getConstraints().get("groovy"), + enableGroovyRule + ); } private void updateCheckBox(Boolean value, CheckBox ruleEnabled) { diff --git a/src/main/java/ninja/javafx/smartcsv/validation/ValidationConfiguration.java b/src/main/java/ninja/javafx/smartcsv/validation/ValidationConfiguration.java index 0eddd14..08dc1b6 100644 --- a/src/main/java/ninja/javafx/smartcsv/validation/ValidationConfiguration.java +++ b/src/main/java/ninja/javafx/smartcsv/validation/ValidationConfiguration.java @@ -47,6 +47,15 @@ public class ValidationConfiguration { this.fieldConfigurations = fieldConfigurations; } + public FieldConfiguration getFieldConfiguration(String column) { + for (FieldConfiguration fieldConfiguration: fieldConfigurations) { + if (fieldConfiguration.getName().equals(column)) { + return fieldConfiguration; + } + } + return null; + } + public String[] headerNames() { if (fieldConfigurations != null) { List headerNames = new ArrayList<>(); diff --git a/src/main/java/ninja/javafx/smartcsv/validation/DateFormatHelper.java b/src/main/java/ninja/javafx/smartcsv/validation/ValidationFormatHelper.java similarity index 88% rename from src/main/java/ninja/javafx/smartcsv/validation/DateFormatHelper.java rename to src/main/java/ninja/javafx/smartcsv/validation/ValidationFormatHelper.java index f80fc7a..90ade1b 100644 --- a/src/main/java/ninja/javafx/smartcsv/validation/DateFormatHelper.java +++ b/src/main/java/ninja/javafx/smartcsv/validation/ValidationFormatHelper.java @@ -3,7 +3,7 @@ package ninja.javafx.smartcsv.validation; /** * @author abi */ -public class DateFormatHelper { +public class ValidationFormatHelper { public static String dateFormat(String format, String defaultFormat) { @@ -35,4 +35,9 @@ public class DateFormatHelper { } return defaultFormat; } + + public static Integer doubleToInteger(Double value) { + if (value == null) return null; + return (int)Math.round(value); + } } diff --git a/src/main/java/ninja/javafx/smartcsv/validation/Validator.java b/src/main/java/ninja/javafx/smartcsv/validation/Validator.java index 3774c13..a2a2a1a 100644 --- a/src/main/java/ninja/javafx/smartcsv/validation/Validator.java +++ b/src/main/java/ninja/javafx/smartcsv/validation/Validator.java @@ -32,7 +32,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static ninja.javafx.smartcsv.validation.DateFormatHelper.dateFormat; +import static ninja.javafx.smartcsv.validation.ValidationFormatHelper.dateFormat; +import static ninja.javafx.smartcsv.validation.ValidationFormatHelper.doubleToInteger; /** * This class checks all the validations defined in the @@ -252,8 +253,5 @@ public class Validator { return result; } - private Integer doubleToInteger(Double value) { - if (value == null) return null; - return (int)Math.round(value); - } + } diff --git a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.css b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.css index 2042b66..d15dfa5 100644 --- a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.css +++ b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.css @@ -1,16 +1,16 @@ -.list-view { +.table-view .list-view { -fx-background-color: -fx-background; -fx-padding: 1; } -.list-cell { +.table-view .list-cell { -fx-padding: 1.0em 1.0em 1.0em 1.0em; } -.list-cell:odd { +.table-view .list-cell:odd { -fx-background: -fx-control-inner-background-alt; } -.list-cell:even { +.table-view .list-cell:even { -fx-background: -fx-control-inner-background; } diff --git a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.properties b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.properties index 5cc9ef6..027bf1c 100644 --- a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.properties +++ b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv.properties @@ -74,6 +74,8 @@ validation.rules.active = active validation.rules.name = rule validation.rules.value = value validation.rule.label.unique = Unique in column +validation.rule.format = Format: +validation.rule.type = Type: dialog.validation.rules.title = Validation rules dialog.validation.rules.header = Validation rules of column "{0}" diff --git a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv_de.properties b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv_de.properties index ce2dcc3..16f75c0 100644 --- a/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv_de.properties +++ b/src/main/resources/ninja/javafx/smartcsv/fx/smartcsv_de.properties @@ -83,6 +83,8 @@ validation.rules.active = Aktiv validation.rules.name = Regel validation.rules.value = Wert validation.rule.label.unique = Einmalig in Spalte +validation.rule.format = Format: +validation.rule.type = Typ: dialog.validation.rules.title = Pr\u00fcfregeln dialog.validation.rules.header = Pr\u00fcfregeln f\u00fcr die Spalte "{0}" diff --git a/src/main/resources/ninja/javafx/smartcsv/fx/validation/validationEditor.fxml b/src/main/resources/ninja/javafx/smartcsv/fx/validation/validationEditor.fxml index 1b2518e..e85fc6c 100644 --- a/src/main/resources/ninja/javafx/smartcsv/fx/validation/validationEditor.fxml +++ b/src/main/resources/ninja/javafx/smartcsv/fx/validation/validationEditor.fxml @@ -5,6 +5,7 @@ + @@ -12,64 +13,51 @@ - - - - - - - + + + + + + + + + - - - + + + + - - - - - - - - - - - + + +