diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-10-05 14:48:49 +0300 |
---|---|---|
committer | Markus Koivisto <markus@vaadin.com> | 2014-10-14 17:59:31 +0300 |
commit | 26b205d25230b7402e73a0202ed145373eae4bf3 (patch) | |
tree | f270b4ec03c49b3216aa6dd6c955d060fd599b54 | |
parent | 1ec43bde1ced96cb9f2abb5157092c9516e839f2 (diff) | |
download | vaadin-framework-26b205d25230b7402e73a0202ed145373eae4bf3.tar.gz vaadin-framework-26b205d25230b7402e73a0202ed145373eae4bf3.zip |
Add ".v-required" style for required component (#10201).
Change-Id: I889587234acdb79e33e625f993c1918befa6aae3
4 files changed, 114 insertions, 0 deletions
diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index 3e3ad033a7..d182706780 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -141,6 +141,8 @@ public class ApplicationConnection implements HasHandlers { public static final String DISABLED_CLASSNAME = "v-disabled"; + public static final String REQUIRED_CLASSNAME = "v-required"; + public static final String REQUIRED_CLASSNAME_EXT = "-required"; public static final String ERROR_CLASSNAME_EXT = "-error"; diff --git a/client/src/com/vaadin/client/ui/AbstractFieldConnector.java b/client/src/com/vaadin/client/ui/AbstractFieldConnector.java index a3c3779eb6..965e79b6fd 100644 --- a/client/src/com/vaadin/client/ui/AbstractFieldConnector.java +++ b/client/src/com/vaadin/client/ui/AbstractFieldConnector.java @@ -57,5 +57,8 @@ public abstract class AbstractFieldConnector extends AbstractComponentConnector // add / remove error style name to Fields setWidgetStyleNameWithPrefix(getWidget().getStylePrimaryName(), ApplicationConnection.REQUIRED_CLASSNAME_EXT, isRequired()); + + getWidget().setStyleName(ApplicationConnection.REQUIRED_CLASSNAME, + isRequired()); } } diff --git a/uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java new file mode 100644 index 0000000000..79f5a7e83b --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextField.java @@ -0,0 +1,57 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * 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. + */ +package com.vaadin.tests.components.textfield; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Button.ClickListener; +import com.vaadin.ui.TextField; + +/** + * Test for required text field. + * + * @author Vaadin Ltd + */ +public class RequiredTextField extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + final TextField field = new TextField(); + + addComponent(field); + + Button button = new Button("Set/unset required", new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + field.setRequired(!field.isRequired()); + } + }); + addComponent(button); + } + + @Override + protected String getTestDescription() { + return "Add .v-required style when setRequired() is used"; + } + + @Override + protected Integer getTicketNumber() { + return 10201; + } +} diff --git a/uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java new file mode 100644 index 0000000000..c6ed6c1a58 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/textfield/RequiredTextFieldTest.java @@ -0,0 +1,52 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * 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. + */ +package com.vaadin.tests.components.textfield; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.testbench.elements.TextFieldElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * Test for .v-required style + * + * @author Vaadin Ltd + */ +public class RequiredTextFieldTest extends MultiBrowserTest { + + @Test + public void testRequiredStyleName() { + openTestURL(); + + $(ButtonElement.class).first().click(); + + Assert.assertTrue("Text field doesn't contain .v-required style", + getStyles().contains("v-required")); + + $(ButtonElement.class).first().click(); + + Assert.assertFalse( + "Text field contains .v-required style for non-required field", + getStyles().contains("v-required")); + } + + private String getStyles() { + return $(TextFieldElement.class).first().getAttribute("class"); + } + +} |