Browse Source

Correctly set style names for NativeSelect (#9006)

Fixes #9005
tags/8.1.0.alpha4
Artur 7 years ago
parent
commit
18a0b1e45c

+ 9
- 0
client/src/main/java/com/vaadin/client/ui/VNativeSelect.java View File

@@ -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.

+ 0
- 2
client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java View File

@@ -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()));

+ 44
- 0
uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectStyleNamesTest.java View File

@@ -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());
}
}

Loading…
Cancel
Save