From 43187b7d90c70a69828ca0cf858f824551fde3b8 Mon Sep 17 00:00:00 2001 From: BenDol Date: Mon, 9 Jul 2018 17:13:42 +1200 Subject: [PATCH] Rework the status text design (HasStatusText, HasErrorText, HasSuccessText, HasHelperText). --- .../client/base/AbstractValueWidget.java | 58 ++++++-- .../base/{HasError.java => HasErrorText.java} | 17 +-- .../design/client/base/HasHelperText.java | 38 +++++ .../design/client/base/HasStatusText.java | 25 ++++ .../design/client/base/HasSuccessText.java | 38 +++++ .../base/error/DefaultErrorHandler.java | 11 +- .../{ErrorMixin.java => StatusTextMixin.java} | 136 +++++++++++++----- .../design/client/ui/MaterialDatePicker.java | 30 ++-- .../client/ui/MaterialListValueBox.java | 14 +- .../design/client/ui/MaterialRange.java | 45 ++++-- .../design/client/ui/MaterialSwitch.java | 26 ++-- .../design/client/ui/MaterialValueBox.java | 24 ++-- .../design/client/MaterialWidgetTestCase.java | 13 +- .../client/ui/MaterialDatePickerTest.java | 2 +- .../design/client/ui/MaterialRangeTest.java | 2 +- 15 files changed, 344 insertions(+), 135 deletions(-) rename gwt-material/src/main/java/gwt/material/design/client/base/{HasError.java => HasErrorText.java} (74%) create mode 100644 gwt-material/src/main/java/gwt/material/design/client/base/HasHelperText.java create mode 100644 gwt-material/src/main/java/gwt/material/design/client/base/HasStatusText.java create mode 100644 gwt-material/src/main/java/gwt/material/design/client/base/HasSuccessText.java rename gwt-material/src/main/java/gwt/material/design/client/base/mixin/{ErrorMixin.java => StatusTextMixin.java} (52%) diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java index c68f42053..20087cfbf 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/AbstractValueWidget.java @@ -31,7 +31,7 @@ import gwt.material.design.client.base.error.ErrorHandlerType; import gwt.material.design.client.base.error.HasErrorHandler; import gwt.material.design.client.base.mixin.ErrorHandlerMixin; -import gwt.material.design.client.base.mixin.ErrorMixin; +import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.base.mixin.ValidatorMixin; import gwt.material.design.client.base.validator.BlankValidator; import gwt.material.design.client.base.validator.HasValidators; @@ -42,13 +42,13 @@ //TODO: HasRawValue public abstract class AbstractValueWidget extends MaterialWidget implements HasValue, LeafValueEditor, - HasEditorErrors, HasErrorHandler, HasError, HasValidators { + HasEditorErrors, HasErrorHandler, HasStatusText, HasValidators { private boolean allowBlank = true; private boolean autoValidate; private BlankValidator blankValidator; private ValidatorMixin, V> validatorMixin; - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; private ErrorHandlerMixin errorHandlerMixin; public AbstractValueWidget(Element element) { @@ -85,23 +85,53 @@ public void setValue(V value, boolean fireEvents, boolean reload) { //setSanitizer(); @Override - public void setError(String error) { - getErrorMixin().setError(error); + public void setErrorText(String errorText) { + getStatusTextMixin().setErrorText(errorText); } @Override - public void setSuccess(String success) { - getErrorMixin().setSuccess(success); + public void setSuccessText(String successText) { + getStatusTextMixin().setSuccessText(successText); } @Override public void setHelperText(String helperText) { - getErrorMixin().setHelperText(helperText); + getStatusTextMixin().setHelperText(helperText); } @Override - public void clearErrorOrSuccess() { - getErrorMixin().clearErrorOrSuccess(); + public void clearErrorText() { + getStatusTextMixin().clearErrorText(); + } + + @Override + public void clearHelperText() { + getStatusTextMixin().clearHelperText(); + } + + @Override + public void clearSuccessText() { + getStatusTextMixin().clearSuccessText(); + } + + @Override + public void clearStatusText() { + getStatusTextMixin().clearStatusText(); + } + + @Override + public boolean isErrorTextVisible() { + return getStatusTextMixin().isErrorTextVisible(); + } + + @Override + public boolean isHelperTextVisible() { + return getStatusTextMixin().isHelperTextVisible(); + } + + @Override + public boolean isSuccessTextVisible() { + return getStatusTextMixin().isSuccessTextVisible(); } @Override @@ -249,11 +279,11 @@ protected ValidatorMixin, V> getValidatorMixin() { return validatorMixin; } - protected ErrorMixin getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this); + protected StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this); } - return errorMixin; + return statusTextMixin; } protected ErrorHandlerMixin getErrorHandlerMixin() { diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasError.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasErrorText.java similarity index 74% rename from gwt-material/src/main/java/gwt/material/design/client/base/HasError.java rename to gwt-material/src/main/java/gwt/material/design/client/base/HasErrorText.java index a641210e1..c13445237 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/HasError.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasErrorText.java @@ -19,7 +19,7 @@ */ package gwt.material.design.client.base; -public interface HasError { +public interface HasErrorText { /** * Errors occur when an app fails to complete what is expected, such as: @@ -27,20 +27,15 @@ public interface HasError { * - The system or app fails * - A user intends to run incompatible operations concurrently */ - void setError(String error); + void setErrorText(String errorText); /** - * Set the success message marking a widget as success. + * Is the error text applied and visible. */ - void setSuccess(String success); + boolean isErrorTextVisible(); /** - * Apply a widgets help text. + * Clear the error states. */ - void setHelperText(String helperText); - - /** - * Clear the error or success states. - */ - void clearErrorOrSuccess(); + void clearErrorText(); } diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasHelperText.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasHelperText.java new file mode 100644 index 000000000..671b21bd6 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasHelperText.java @@ -0,0 +1,38 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2018 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasHelperText { + + /** + * Apply a widgets help text. + */ + void setHelperText(String helperText); + + /** + * Is the helper text applied and visible. + */ + boolean isHelperTextVisible(); + + /** + * Clear the helper states. + */ + void clearHelperText(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusText.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusText.java new file mode 100644 index 000000000..7019c2410 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasStatusText.java @@ -0,0 +1,25 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2018 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasStatusText extends HasHelperText, HasErrorText, HasSuccessText { + + void clearStatusText(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/HasSuccessText.java b/gwt-material/src/main/java/gwt/material/design/client/base/HasSuccessText.java new file mode 100644 index 000000000..38f4d4bc9 --- /dev/null +++ b/gwt-material/src/main/java/gwt/material/design/client/base/HasSuccessText.java @@ -0,0 +1,38 @@ +/* + * #%L + * GwtMaterial + * %% + * Copyright (C) 2015 - 2018 GwtMaterialDesign + * %% + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ +package gwt.material.design.client.base; + +public interface HasSuccessText { + + /** + * Set the success message marking a widget as success. + */ + void setSuccessText(String successText); + + /** + * Is the success text applied and visible. + */ + boolean isSuccessTextVisible(); + + /** + * Clear the success text states. + */ + void clearSuccessText(); +} diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/error/DefaultErrorHandler.java b/gwt-material/src/main/java/gwt/material/design/client/base/error/DefaultErrorHandler.java index bfa4ceee2..33002c905 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/error/DefaultErrorHandler.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/error/DefaultErrorHandler.java @@ -22,7 +22,8 @@ import com.google.gwt.editor.client.EditorError; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.Widget; -import gwt.material.design.client.base.HasError; +import gwt.material.design.client.base.HasErrorText; +import gwt.material.design.client.base.HasStatusText; import gwt.material.design.client.ui.MaterialHelpBlock; import java.util.List; @@ -74,8 +75,8 @@ public void cleanup() { @Override public void clearErrors() { - if (inputWidget instanceof HasError) { - ((HasError) inputWidget).clearErrorOrSuccess(); + if (inputWidget instanceof HasStatusText) { + ((HasStatusText) inputWidget).clearStatusText(); } if (helpBlock != null) { helpBlock.removeStyleName("field-error-label"); @@ -139,8 +140,8 @@ public void showErrors(List errors) { } } - if (inputWidget instanceof HasError) { - ((HasError) inputWidget).setError(errorMsg); + if (inputWidget instanceof HasErrorText) { + ((HasErrorText) inputWidget).setErrorText(errorMsg); } if (helpBlock != null) { diff --git a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/ErrorMixin.java b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java similarity index 52% rename from gwt-material/src/main/java/gwt/material/design/client/base/mixin/ErrorMixin.java rename to gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java index 29e00cf07..600023c2b 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/base/mixin/ErrorMixin.java +++ b/gwt-material/src/main/java/gwt/material/design/client/base/mixin/StatusTextMixin.java @@ -21,79 +21,81 @@ import com.google.gwt.user.client.ui.HasText; import com.google.gwt.user.client.ui.UIObject; -import gwt.material.design.client.base.HasError; +import gwt.material.design.client.base.HasStatusText; import gwt.material.design.client.constants.CssName; /** * @author Ben Dol */ -public class ErrorMixin - extends AbstractMixin implements HasError { +public class StatusTextMixin + extends AbstractMixin implements HasStatusText { private H textObject; private UIObject target; private UIObject lblPlaceholder; private String helperText; - public ErrorMixin(final T widget) { + public StatusTextMixin(final T widget) { this(widget, null); } - public ErrorMixin(final T widget, final H textObject) { + public StatusTextMixin(final T widget, final H textObject) { this(widget, textObject, widget); } - public ErrorMixin(final T widget, final H textObject, UIObject target) { + public StatusTextMixin(final T widget, final H textObject, UIObject target) { super(widget); this.textObject = textObject; this.target = target; } - public ErrorMixin(final T widget, final H textObject, UIObject target, UIObject lblPlaceholder) { + public StatusTextMixin(final T widget, final H textObject, UIObject target, UIObject lblPlaceholder) { this(widget, textObject, target); this.lblPlaceholder = lblPlaceholder; } @Override - public void setError(String error) { + public void setErrorText(String errorText) { + clearSuccessText(); + clearHelperText(); + if (textObject != null) { - textObject.setText(error); - textObject.addStyleName(CssName.FIELD_ERROR_LABEL); - textObject.removeStyleName(CssName.FIELD_HELPER_LABEL); - textObject.removeStyleName(CssName.FIELD_SUCCESS_LABEL); textObject.setVisible(true); + textObject.setText(errorText); + textObject.addStyleName(CssName.FIELD_ERROR_LABEL); } + if (target != null) { target.addStyleName(CssName.FIELD_ERROR); - target.removeStyleName(CssName.FIELD_SUCCESS); } + if (lblPlaceholder != null) { - lblPlaceholder.removeStyleName("green-text"); lblPlaceholder.addStyleName("red-text"); - if (error != null && !error.isEmpty()) { + if (errorText != null && !errorText.isEmpty()) { lblPlaceholder.addStyleName(CssName.ACTIVE); } } } @Override - public void setSuccess(String success) { + public void setSuccessText(String successText) { + clearErrorText(); + clearHelperText(); + if (textObject != null) { - textObject.setText(success); - textObject.addStyleName(CssName.FIELD_SUCCESS_LABEL); - textObject.removeStyleName(CssName.FIELD_HELPER_LABEL); - textObject.removeStyleName(CssName.FIELD_ERROR_LABEL); textObject.setVisible(true); + textObject.setText(successText); + textObject.addStyleName(CssName.FIELD_SUCCESS_LABEL); } + if (target != null) { target.addStyleName(CssName.FIELD_SUCCESS); - target.removeStyleName(CssName.FIELD_ERROR); } + if (lblPlaceholder != null) { - lblPlaceholder.removeStyleName("red-text"); lblPlaceholder.addStyleName("green-text"); - if (success != null && !success.isEmpty()) { + if (successText != null && !successText.isEmpty()) { lblPlaceholder.addStyleName(CssName.ACTIVE); } } @@ -102,29 +104,95 @@ public void setSuccess(String success) { @Override public void setHelperText(String helperText) { this.helperText = helperText; - clearErrorOrSuccess(); + + // Clear any other status states + clearStatusText(); + + if (helperText != null) { + applyHelperText(); + } else { + textObject.setText(""); + textObject.removeStyleName(CssName.FIELD_HELPER_LABEL); + textObject.setVisible(false); + } + } + + @Override + public void clearStatusText() { + clearErrorText(); + clearSuccessText(); } @Override - public void clearErrorOrSuccess() { + public void clearErrorText() { if (textObject != null) { - textObject.setText(helperText == null ? "" : helperText); - if (helperText != null) { - textObject.addStyleName(CssName.FIELD_HELPER_LABEL); - } else { - textObject.removeStyleName(CssName.FIELD_HELPER_LABEL); - } + textObject.setText(""); + textObject.setVisible(false); textObject.removeStyleName(CssName.FIELD_ERROR_LABEL); - textObject.removeStyleName(CssName.FIELD_SUCCESS_LABEL); - textObject.setVisible(helperText != null); } + if (target != null) { target.removeStyleName(CssName.FIELD_ERROR); - target.removeStyleName(CssName.FIELD_SUCCESS); } + if (lblPlaceholder != null) { lblPlaceholder.removeStyleName("red-text"); + } + + applyHelperText(); + } + + @Override + public void clearSuccessText() { + if (textObject != null) { + textObject.setText(""); + textObject.setVisible(false); + textObject.removeStyleName(CssName.FIELD_SUCCESS_LABEL); + } + + if (target != null) { + target.removeStyleName(CssName.FIELD_SUCCESS); + } + + if (lblPlaceholder != null) { lblPlaceholder.removeStyleName("green-text"); } + + applyHelperText(); + } + + @Override + public void clearHelperText() { + if (textObject != null) { + textObject.setText(""); + textObject.setVisible(false); + textObject.removeStyleName(CssName.FIELD_HELPER_LABEL); + } + } + + public void applyHelperText() { + if (textObject != null && helperText != null) { + textObject.setText(helperText); + textObject.addStyleName(CssName.FIELD_HELPER_LABEL); + textObject.setVisible(helperText != null); + } + } + + @Override + public boolean isErrorTextVisible() { + return textObject != null && textObject.getStyleName().contains(CssName.FIELD_ERROR_LABEL) + && textObject.isVisible(); + } + + @Override + public boolean isHelperTextVisible() { + return textObject != null && textObject.getStyleName().contains(CssName.FIELD_HELPER_LABEL) + && textObject.isVisible(); + } + + @Override + public boolean isSuccessTextVisible() { + return textObject != null && textObject.getStyleName().contains(CssName.FIELD_SUCCESS_LABEL) + && textObject.isVisible(); } } diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDatePicker.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDatePicker.java index 26e2dafa8..6b877de1f 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDatePicker.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialDatePicker.java @@ -32,7 +32,7 @@ import com.google.gwt.user.client.DOM; import gwt.material.design.client.base.*; import gwt.material.design.client.base.helper.DateFormatHelper; -import gwt.material.design.client.base.mixin.ErrorMixin; +import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.base.mixin.FieldTypeMixin; import gwt.material.design.client.base.mixin.ReadOnlyMixin; import gwt.material.design.client.constants.*; @@ -101,7 +101,7 @@ public enum MaterialDatePickerType { private JsDatePickerOptions options = new JsDatePickerOptions(); private HandlerRegistration autoCloseHandlerRegistration, attachHandler; - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; private ReadOnlyMixin readOnlyMixin; private FieldTypeMixin fieldTypeMixin; @@ -356,28 +356,28 @@ public Orientation getOrientation() { } @Override - public void setError(String error) { - super.setError(error); + public void setErrorText(String errorText) { + super.setErrorText(errorText); dateInput.addStyleName(CssName.INVALID); dateInput.removeStyleName(CssName.VALID); } @Override - public void setSuccess(String success) { - super.setSuccess(success); + public void setSuccessText(String successText) { + super.setSuccessText(successText); dateInput.addStyleName(CssName.VALID); dateInput.removeStyleName(CssName.INVALID); } @Override - public void clearErrorOrSuccess() { - super.clearErrorOrSuccess(); + public void setHelperText(String helperText) { + super.setHelperText(helperText); removeErrorModifiers(); } @Override - public void setHelperText(String helperText) { - super.setHelperText(helperText); + public void clearStatusText() { + super.clearStatusText(); removeErrorModifiers(); } @@ -673,7 +673,7 @@ public void clear() { getPicker().set("select", null); } // Clear all active / error styles on datepicker - clearErrorOrSuccess(); + clearStatusText(); label.removeStyleName(CssName.ACTIVE); dateInput.removeStyleName(CssName.VALID); @@ -720,11 +720,11 @@ public HandlerRegistration addOpenHandler(final OpenHandler } @Override - protected ErrorMixin getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this, errorLabel, dateInput, placeholderLabel); + protected StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this, errorLabel, dateInput, placeholderLabel); } - return errorMixin; + return statusTextMixin; } protected ReadOnlyMixin getReadOnlyMixin() { diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialListValueBox.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialListValueBox.java index 1cac1cf02..83710493b 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialListValueBox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialListValueBox.java @@ -30,7 +30,7 @@ import com.google.gwt.user.client.ui.HasConstrainedValue; import com.google.gwt.user.client.ui.ListBox; import gwt.material.design.client.base.*; -import gwt.material.design.client.base.mixin.ErrorMixin; +import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.base.mixin.FieldTypeMixin; import gwt.material.design.client.base.mixin.ReadOnlyMixin; import gwt.material.design.client.base.mixin.ToggleStyleMixin; @@ -86,7 +86,7 @@ public class MaterialListValueBox extends AbstractValueWidget implements J private ToggleStyleMixin toggleOldMixin; private ReadOnlyMixin, ListBox> readOnlyMixin; - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; private FieldTypeMixin fieldTypeMixin; private String emptyPlaceHolder = null; @@ -529,7 +529,7 @@ public void clear() { values.clear(); listBox.clear(); - clearErrorOrSuccess(); + clearStatusText(); if (emptyPlaceHolder != null) { insertEmptyPlaceHolder(emptyPlaceHolder); } @@ -928,11 +928,11 @@ public ListBox getListBox() { } @Override - public ErrorMixin getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this, errorLabel, this, label); + public StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this, errorLabel, this, label); } - return errorMixin; + return statusTextMixin; } public Label getLabel() { diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRange.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRange.java index 8b6d1ff17..f661dc514 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRange.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialRange.java @@ -26,8 +26,8 @@ import com.google.gwt.event.dom.client.HasChangeHandlers; import com.google.gwt.event.shared.HandlerRegistration; import gwt.material.design.client.base.AbstractValueWidget; -import gwt.material.design.client.base.HasError; -import gwt.material.design.client.base.mixin.ErrorMixin; +import gwt.material.design.client.base.HasStatusText; +import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.constants.CssName; import gwt.material.design.client.constants.InputType; import gwt.material.design.client.ui.html.Paragraph; @@ -51,7 +51,7 @@ * @see Material Design Specification */ //@formatter:on -public class MaterialRange extends AbstractValueWidget implements HasChangeHandlers, HasError { +public class MaterialRange extends AbstractValueWidget implements HasChangeHandlers, HasStatusText { private Paragraph paragraph = new Paragraph(); private MaterialInput rangeInputElement = new MaterialInput(); @@ -61,7 +61,7 @@ public class MaterialRange extends AbstractValueWidget implements HasCh private static String MAX = "max"; private static String MIN = "min"; private MaterialLabel errorLabel = new MaterialLabel(); - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; /** * Creates a range @@ -196,23 +196,38 @@ public void setMax(Integer max) { } @Override - public void setError(String error) { - getErrorMixin().setError(error); + public void setErrorText(String errorText) { + getStatusTextMixin().setErrorText(errorText); } @Override - public void setSuccess(String success) { - getErrorMixin().setSuccess(success); + public void setSuccessText(String successText) { + getStatusTextMixin().setSuccessText(successText); } @Override public void setHelperText(String helperText) { - getErrorMixin().setHelperText(helperText); + getStatusTextMixin().setHelperText(helperText); } @Override - public void clearErrorOrSuccess() { - getErrorMixin().clearErrorOrSuccess(); + public void clearStatusText() { + getStatusTextMixin().clearStatusText(); + } + + @Override + public void clearErrorText() { + getStatusTextMixin().clearErrorText(); + } + + @Override + public void clearHelperText() { + getStatusTextMixin().clearHelperText(); + } + + @Override + public void clearSuccessText() { + getStatusTextMixin().clearSuccessText(); } public MaterialLabel getErrorLabel() { @@ -242,10 +257,10 @@ public HandlerRegistration addChangeHandler(final ChangeHandler handler) { } @Override - public ErrorMixin getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this, errorLabel, null); + public StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this, errorLabel, null); } - return errorMixin; + return statusTextMixin; } } \ No newline at end of file diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java index 36cc56037..ca20cf030 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSwitch.java @@ -26,7 +26,7 @@ import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.user.client.ui.HasValue; import gwt.material.design.client.base.AbstractValueWidget; -import gwt.material.design.client.base.mixin.ErrorMixin; +import gwt.material.design.client.base.mixin.StatusTextMixin; import gwt.material.design.client.constants.CssName; import gwt.material.design.client.constants.InputType; import gwt.material.design.client.ui.html.Label; @@ -58,7 +58,7 @@ public class MaterialSwitch extends AbstractValueWidget implements HasV private Span onLabel = new Span(); private Span offLabel = new Span(); - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; /** * Creates a switch element @@ -199,23 +199,23 @@ public void setLabel(Label label) { } @Override - public void setError(String error) { - getErrorMixin().setError(error); + public void setErrorText(String errorText) { + getStatusTextMixin().setErrorText(errorText); } @Override - public void setSuccess(String success) { - getErrorMixin().setSuccess(success); + public void setSuccessText(String successText) { + getStatusTextMixin().setSuccessText(successText); } @Override public void setHelperText(String helperText) { - getErrorMixin().setHelperText(helperText); + getStatusTextMixin().setHelperText(helperText); } @Override - public void clearErrorOrSuccess() { - getErrorMixin().clearErrorOrSuccess(); + public void clearStatusText() { + getStatusTextMixin().clearStatusText(); } /** @@ -250,10 +250,10 @@ public HandlerRegistration addValueChangeHandler(final ValueChangeHandler getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this, errorLabel, null); + protected StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this, errorLabel, null); } - return errorMixin; + return statusTextMixin; } } \ No newline at end of file diff --git a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java index 4cd22bfa5..379e64fba 100644 --- a/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java +++ b/gwt-material/src/main/java/gwt/material/design/client/ui/MaterialValueBox.java @@ -84,7 +84,7 @@ public class MaterialValueBox extends AbstractValueWidget implements HasCh protected ValueBoxBase valueBoxBase; private CounterMixin> counterMixin; - private ErrorMixin errorMixin; + private StatusTextMixin statusTextMixin; private ReadOnlyMixin readOnlyMixin; private FocusableMixin focusableMixin; private ActiveMixin activeMixin; @@ -153,7 +153,7 @@ public void reset() { */ public void clear() { valueBoxBase.setText(""); - clearErrorOrSuccess(); + clearStatusText(); if (getPlaceholder() == null || getPlaceholder().isEmpty()) { label.removeStyleName(CssName.ACTIVE); @@ -314,15 +314,15 @@ public String getName() { } @Override - public void setError(String error) { - super.setError(error); + public void setErrorText(String errorText) { + super.setErrorText(errorText); removeErrorModifiers(); valueBoxBase.getElement().addClassName(CssName.INVALID); } @Override - public void setSuccess(String success) { - super.setSuccess(success); + public void setSuccessText(String successText) { + super.setSuccessText(successText); removeErrorModifiers(); valueBoxBase.getElement().addClassName(CssName.VALID); } @@ -334,8 +334,8 @@ public void setHelperText(String helperText) { } @Override - public void clearErrorOrSuccess() { - super.clearErrorOrSuccess(); + public void clearStatusText() { + super.clearStatusText(); removeErrorModifiers(); } @@ -824,11 +824,11 @@ protected FocusableMixin getFocusableMixin() { } @Override - protected ErrorMixin getErrorMixin() { - if (errorMixin == null) { - errorMixin = new ErrorMixin<>(this, errorLabel, valueBoxBase, label); + protected StatusTextMixin getStatusTextMixin() { + if (statusTextMixin == null) { + statusTextMixin = new StatusTextMixin<>(this, errorLabel, valueBoxBase, label); } - return errorMixin; + return statusTextMixin; } protected ReadOnlyMixin getReadOnlyMixin() { diff --git a/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestCase.java b/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestCase.java index 2c686fee3..8915b6b20 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestCase.java +++ b/gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestCase.java @@ -418,14 +418,13 @@ public void checkFieldErrorSuccess(H widget, UIO public void checkFieldErrorSuccess(AbstractValueWidget widget, UIObject errorLabel, UIObject target, UIObject placeholder) { if (errorLabel != null) { - widget.setError("error"); - + widget.setErrorText("error"); assertTrue(errorLabel.getElement().hasClassName(CssName.FIELD_ERROR_LABEL)); assertFalse(errorLabel.getElement().hasClassName(CssName.FIELD_HELPER_LABEL)); assertFalse(errorLabel.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); errorLabel.setVisible(true); - widget.setSuccess("success"); + widget.setSuccessText("success"); assertFalse(errorLabel.getElement().hasClassName(CssName.FIELD_ERROR_LABEL)); assertFalse(errorLabel.getElement().hasClassName(CssName.FIELD_HELPER_LABEL)); assertTrue(errorLabel.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); @@ -436,11 +435,11 @@ public void checkFieldErrorSuccess(AbstractValueWidget widget, UIObject errorLab assertFalse(errorLabel.getElement().hasClassName(CssName.FIELD_SUCCESS_LABEL)); } if (target != null) { - widget.setError("error"); + widget.setErrorText("error"); assertTrue(target.getElement().hasClassName(CssName.FIELD_ERROR)); assertFalse(target.getElement().hasClassName(CssName.FIELD_SUCCESS)); - widget.setSuccess("success"); + widget.setSuccessText("success"); assertFalse(target.getElement().hasClassName(CssName.FIELD_ERROR)); assertTrue(target.getElement().hasClassName(CssName.FIELD_SUCCESS)); @@ -449,11 +448,11 @@ public void checkFieldErrorSuccess(AbstractValueWidget widget, UIObject errorLab assertFalse(target.getElement().hasClassName(CssName.FIELD_SUCCESS)); } if (placeholder != null) { - widget.setError("error"); + widget.setErrorText("error"); assertFalse(placeholder.getElement().hasClassName("green-text")); assertTrue(placeholder.getElement().hasClassName("red-text")); - widget.setSuccess("success"); + widget.setSuccessText("success"); assertTrue(placeholder.getElement().hasClassName("green-text")); assertFalse(placeholder.getElement().hasClassName("red-text")); diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialDatePickerTest.java b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialDatePickerTest.java index 1cd56b231..23b00cf6e 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialDatePickerTest.java +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialDatePickerTest.java @@ -179,7 +179,7 @@ public void testClear() { protected void checkClear(MaterialDatePicker picker) { picker.setValue(DATE); - picker.setError("error"); + picker.setErrorText("error"); picker.clear(); assertEquals("", picker.getDateInput().getElement().getInnerText()); diff --git a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialRangeTest.java b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialRangeTest.java index d4900c527..661bbb00d 100644 --- a/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialRangeTest.java +++ b/gwt-material/src/test/java/gwt/material/design/client/ui/MaterialRangeTest.java @@ -106,7 +106,7 @@ public void testReset() { range.setMax(MAX); range.setValue(VALUE); assertEquals(VALUE, range.getValue()); - range.setError("some-error"); + range.setErrorText("some-error"); range.reset(); assertEquals(MIN, range.getValue()); assertFalse(range.getElement().hasClassName(CssName.FIELD_ERROR));