diff options
author | Artur <artur@vaadin.com> | 2017-04-04 13:43:50 +0300 |
---|---|---|
committer | Aleksi Hietanen <aleksi@vaadin.com> | 2017-04-04 13:43:50 +0300 |
commit | 18a0b1e45cea695ac5700ea91c95a26d6accfb5c (patch) | |
tree | 282668a431f106d1a8c5afe607b37cdd76a650e5 | |
parent | 4c9b6745f098244535bfe065f2d85ae900ed9752 (diff) | |
download | vaadin-framework-18a0b1e45cea695ac5700ea91c95a26d6accfb5c.tar.gz vaadin-framework-18a0b1e45cea695ac5700ea91c95a26d6accfb5c.zip |
Correctly set style names for NativeSelect (#9006)
Fixes #9005
3 files changed, 53 insertions, 2 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/VNativeSelect.java b/client/src/main/java/com/vaadin/client/ui/VNativeSelect.java index e39f25f0d8..46df030f95 100644 --- a/client/src/main/java/com/vaadin/client/ui/VNativeSelect.java +++ b/client/src/main/java/com/vaadin/client/ui/VNativeSelect.java @@ -20,6 +20,7 @@ import java.util.Objects; import com.google.gwt.event.dom.client.HasAllFocusHandlers; import com.google.gwt.user.client.ui.ListBox; import com.vaadin.client.widgets.FocusableFlowPanelComposite; +import com.vaadin.shared.ui.nativeselect.NativeSelectState; /** * The client-side widget for the {@code NativeSelect} component. @@ -35,9 +36,17 @@ public class VNativeSelect extends FocusableFlowPanelComposite * Creates a new {@code VNativeSelect} instance. */ public VNativeSelect() { + setStyleName(NativeSelectState.STYLE_NAME); + getListBox().setStyleName(NativeSelectState.STYLE_NAME + "-select"); getWidget().add(listBox); } + @Override + public void setStylePrimaryName(String style) { + super.setStylePrimaryName(style); + setStylePrimaryName(listBox.getElement(), style); + } + /** * Sets the selected item by its value. If given {@code null}, removes * selection. diff --git a/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java b/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java index 2426996ba4..7d363fbeac 100644 --- a/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java @@ -53,8 +53,6 @@ public class NativeSelectConnector @Override protected void init() { super.init(); - getWidget().getListBox() - .setStyleName(NativeSelectState.STYLE_NAME + "-select"); selectionChangeRegistration = getWidget().getListBox() .addChangeHandler(e -> selectionRpc .select(getWidget().getListBox().getSelectedValue())); diff --git a/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectStyleNamesTest.java b/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectStyleNamesTest.java new file mode 100644 index 0000000000..28defc1a58 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectStyleNamesTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2000-2016 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.nativeselect; + +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.testbench.elements.NativeSelectElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +public class NativeSelectStyleNamesTest extends SingleBrowserTest { + + @Override + protected Class<?> getUIClass() { + return NativeSelectInit.class; + } + + @Test + public void correctStyleNames() { + openTestURL(); + + Set<String> expected = Stream.of("v-select", "v-widget") + .collect(Collectors.toSet()); + Assert.assertEquals(expected, + $(NativeSelectElement.class).first().getClassNames()); + } +} |