diff --git a/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java b/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java index bcfac99f547d24be2b1457b0ac827c955ca70c1e..ff0d0d00bf64eacd665216289b3fb4c8cec33db5 100644 --- a/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java +++ b/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java @@ -160,6 +160,7 @@ public class Strings public static final String WARNING_NAME_CHARACTER_LIMIT_REACHED_45 = "warning.name.character.limit.reached.45"; public static final String WARNING_NAME_CHARACTER_LIMIT_REACHED_150 = "warning.name.character.limit.reached.150"; public static final String WARNING_DESCRIPTION_CHARACTER_LIMIT_REACHED_150 = "warning.description.character.limit.reached.150"; + public static final String WARNING_TAG_CHARACTER_LIMIT_REACHED_45 = "warning.tag.character.limit.reached.45"; public static final String WARNING_PAYMENT_AMOUNT = "warning.payment.amount"; public static final String WARNING_EMPTY_PAYMENT_DATE = "warning.empty.payment.date"; public static final String WARNING_PAYMENT_REPEATING = "warning.payment.repeating"; diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties index b2d1f24ad95864eb89c0a4f6ad1225a163b6093f..47e6bcb32c01adcf18a5bd3b0c977522c6f861f7 100644 --- a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties +++ b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties @@ -157,6 +157,7 @@ warning.empty.payment.name=Das Feld f warning.name.character.limit.reached.45=Der Name darf maximal 45 Zeichen lang sein. warning.name.character.limit.reached.150=Der Name darf maximal 150 Zeichen lang sein. warning.description.character.limit.reached.150=Die Notiz darf maximal 150 Zeichen lang sein. +warning.tag.character.limit.reached.45=Der Name eines Tags darf maximal 45 Zeichen lang sein. warning.payment.amount=Gib eine g�ltige Zahl f�r den Betrag ein. warning.empty.payment.date=Bitte w�hle ein Datum aus. warning.payment.repeating=Wenn Wiederholung aktiviert ist d�rfen nicht beide Eingabefelder 0 sein.\n(Zur Deaktivierung der Wiederholung einfach die Checkbox abw�hlen) diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties index 1a3ae52280c71dd084fe5a3dc25a22415769509f..c8cb26959e359919927bd97dcbaaed1eaafed534 100644 --- a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties +++ b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties @@ -157,6 +157,7 @@ warning.empty.payment.name=The field for the name can not be empty. warning.name.character.limit.reached.45=The name must not exceed 45 characters in length. warning.name.character.limit.reached.150=The name must not exceed 150 characters in length. warning.description.character.limit.reached.150=The description must not exceed 150 characters in length. +warning.tag.character.limit.reached.45=A tag name must not exceed 45 characters in length. warning.payment.amount=Please enter a valid number in the amount field. warning.empty.payment.date=Please select a date. warning.payment.repeating=If repeating is activated, both input fields may not be 0.\n(To deactivate the repeat, simply deselect the checkbox). diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java b/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java index cea51ffa04b925973a9d40ee80398f4036d9720d..ab8d183db5b7857ef1bac8a2ead629b4772362c0 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java @@ -121,7 +121,7 @@ public class NewPaymentController extends BaseController implements Styleable applyStyle(); - tagField = new TagField(new ArrayList<Tag>(), new ArrayList<Tag>()); + tagField = new TagField(new ArrayList<Tag>(), new ArrayList<Tag>(), this); hboxTags.getChildren().add(tagField); tagField.maxWidthProperty().bind(hboxTags.widthProperty()); HBox.setHgrow(tagField, Priority.ALWAYS); @@ -169,6 +169,11 @@ public class NewPaymentController extends BaseController implements Styleable datePicker.setEditable(false); } + public Controller getController() + { + return controller; + } + private void initComboBoxCategory() { buttonCategoryCell = new ButtonCategoryCell(Color.WHITE); diff --git a/src/de/deadlocker8/budgetmaster/ui/tagField/TagField.java b/src/de/deadlocker8/budgetmaster/ui/tagField/TagField.java index 439460fa7b01c5939845f9d026b54621eb32196f..fbd61105cbac32d0687fcfeb66f11cb063574555 100644 --- a/src/de/deadlocker8/budgetmaster/ui/tagField/TagField.java +++ b/src/de/deadlocker8/budgetmaster/ui/tagField/TagField.java @@ -10,9 +10,11 @@ import de.deadlocker8.budgetmaster.logic.tag.Tag; import de.deadlocker8.budgetmaster.logic.utils.Colors; import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.logic.utils.Strings; +import de.deadlocker8.budgetmaster.ui.controller.NewPaymentController; import fontAwesome.FontIconType; import javafx.geometry.Insets; import javafx.geometry.Pos; +import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; @@ -21,6 +23,7 @@ import javafx.scene.layout.FlowPane; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.util.Callback; +import tools.AlertGenerator; import tools.ConvertTo; import tools.Localization; @@ -30,11 +33,13 @@ public class TagField extends VBox private ArrayList<Tag> allTags; private FlowPane flowPane; private TextField textField; + private NewPaymentController parentController; - public TagField(ArrayList<Tag> tags, ArrayList<Tag> allAvailableTags) + public TagField(ArrayList<Tag> tags, ArrayList<Tag> allAvailableTags, NewPaymentController parentController) { this.tags = tags; this.allTags = allAvailableTags; + this.parentController = parentController; this.flowPane = initFlowPane(); this.getChildren().add(flowPane); @@ -128,8 +133,7 @@ public class TagField extends VBox } public void addTag(String tagName) - { - //TODO max length = 45 chars + { if(tagName.equals("")) { return; @@ -143,6 +147,19 @@ public class TagField extends VBox } } + if(tagName.length() > 45) + { + AlertGenerator.showAlert(AlertType.WARNING, + Localization.getString(Strings.TITLE_WARNING), + "", + Localization.getString(Strings.WARNING_TAG_CHARACTER_LIMIT_REACHED_45), + parentController.getController().getIcon(), + parentController.getStage(), + null, + false); + return; + } + tags.add(new Tag(-1, tagName)); refresh(true); }