summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VComboBox.java5
-rw-r--r--uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java23
-rw-r--r--uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java14
3 files changed, 27 insertions, 15 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/VComboBox.java b/client/src/main/java/com/vaadin/client/ui/VComboBox.java
index 61e9b46e68..bb75385007 100644
--- a/client/src/main/java/com/vaadin/client/ui/VComboBox.java
+++ b/client/src/main/java/com/vaadin/client/ui/VComboBox.java
@@ -1989,12 +1989,10 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
ClickEvent.getType());
selectedItemIcon.addDomHandler(VComboBox.this,
MouseDownEvent.getType());
- iconUpdating = true;
selectedItemIcon.addDomHandler(new LoadHandler() {
@Override
public void onLoad(LoadEvent event) {
afterSelectedItemIconChange();
- iconUpdating = false;
}
}, LoadEvent.getType());
panel.insert(selectedItemIcon, 0);
@@ -2449,7 +2447,6 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
boolean preventNextBlurEventInIE = false;
private String explicitSelectedCaption;
- private boolean iconUpdating = false;
/*
* (non-Javadoc)
@@ -2709,7 +2706,7 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
@Override
public boolean isWorkPending() {
return dataReceivedHandler.isWaitingForFilteringResponse()
- || suggestionPopup.lazyPageScroller.isRunning() || iconUpdating;
+ || suggestionPopup.lazyPageScroller.isRunning();
}
/**
diff --git a/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java b/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java
index d92130c863..08c1a51a7b 100644
--- a/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java
+++ b/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java
@@ -18,14 +18,13 @@ package com.vaadin.tests.elements.combobox;
import java.util.ArrayList;
import java.util.List;
+import com.vaadin.annotations.Widgetset;
+import com.vaadin.server.ThemeResource;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.ComboBox;
-/**
- *
- */
-@SuppressWarnings("serial")
+@Widgetset("com.vaadin.DefaultWidgetSet")
public class ComboBoxUI extends AbstractTestUI {
public static final List<String> currencies = new ArrayList<String>();
@@ -37,12 +36,24 @@ public class ComboBoxUI extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
- ComboBox comboBox = new ComboBox("NullAllowedComboBox", currencies);
+ ComboBox<String> comboBox = new ComboBox<>("NullAllowedComboBox",
+ currencies);
addComponent(comboBox);
- comboBox = new ComboBox("NullForbiddenComboBox", currencies);
+ comboBox = new ComboBox<>("NullForbiddenComboBox", currencies);
comboBox.setEmptySelectionAllowed(false);
addComponent(comboBox);
+
+ comboBox = new ComboBox<>("With icons", currencies);
+ comboBox.setId("with-icons");
+ comboBox.setItemIconGenerator(item -> {
+ if (item.equals("EUR")) {
+ return new ThemeResource("shared/img/spinner.gif");
+ } else {
+ return new ThemeResource("notfound.png");
+ }
+ });
+ addComponent(comboBox);
}
@Override
diff --git a/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java b/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java
index fb84ea3055..cecd748c9d 100644
--- a/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java
+++ b/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java
@@ -24,11 +24,6 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ComboBoxElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
-/**
- * Validates that multiple calls to ComboBoxElement.selectByText(String) do not
- * append the input given each time to the previous one. The value in the
- * combobox's search field should be cleared before searching for a new one.
- */
public class ComboBoxUITest extends MultiBrowserTest {
@Before
@@ -54,6 +49,15 @@ public class ComboBoxUITest extends MultiBrowserTest {
cb.selectByText("foobar");
}
+ @Test
+ public void testSelectByTextWithIcons() {
+ ComboBoxElement cb = $(ComboBoxElement.class).id("with-icons");
+ cb.selectByText("GBP");
+ assertEquals("GBP", cb.getValue());
+ cb.selectByText("EUR");
+ assertEquals("EUR", cb.getValue());
+ }
+
private void testMultipleSelectByTextOperationsIn(
ComboBoxElement comboBox) {
// Select all items from the menu