aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur <artur@vaadin.com>2017-04-04 13:43:50 +0300
committerAleksi Hietanen <aleksi@vaadin.com>2017-04-04 13:43:50 +0300
commit18a0b1e45cea695ac5700ea91c95a26d6accfb5c (patch)
tree282668a431f106d1a8c5afe607b37cdd76a650e5
parent4c9b6745f098244535bfe065f2d85ae900ed9752 (diff)
downloadvaadin-framework-18a0b1e45cea695ac5700ea91c95a26d6accfb5c.tar.gz
vaadin-framework-18a0b1e45cea695ac5700ea91c95a26d6accfb5c.zip
Correctly set style names for NativeSelect (#9006)
Fixes #9005
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VNativeSelect.java9
-rw-r--r--client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectStyleNamesTest.java44
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());
+ }
+}