From 7c662a179ff996ad244eaf17ce19a84ac8ae5095 Mon Sep 17 00:00:00 2001 From: Teemu Suo-Anttila Date: Tue, 17 Apr 2018 17:40:59 +0300 Subject: Fix using ConnectorResource icons before attaching ComboBox (#10810) * Fix using ConnectorResource icons before attaching ComboBox * Update Chrome and PhantomJS screenshots --- server/src/main/java/com/vaadin/ui/ComboBox.java | 11 +++++++++++ ...consInComboBox_ANY_Chrome__third-combobox-open.png | Bin 2217 -> 2326 bytes ...ComboBox_LINUX_PhantomJS_1_third-combobox-open.png | Bin 2131 -> 2196 bytes .../tests/components/combobox/ComboBoxItemIcon.java | 3 +-- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/vaadin/ui/ComboBox.java b/server/src/main/java/com/vaadin/ui/ComboBox.java index ef1e7cfa84..107e503256 100644 --- a/server/src/main/java/com/vaadin/ui/ComboBox.java +++ b/server/src/main/java/com/vaadin/ui/ComboBox.java @@ -842,6 +842,10 @@ public class ComboBox extends AbstractSingleSelect Resource icon = getItemIconGenerator().apply(value); if (icon != null) { if (icon instanceof ConnectorResource) { + if (!isAttached()) { + // Deferred resource generation. + return; + } setResource("selected", icon); } selectedItemIcon = ResourceReference @@ -851,6 +855,13 @@ public class ComboBox extends AbstractSingleSelect getState().selectedItemIcon = selectedItemIcon; } + @Override + public void attach() { + super.attach(); + + updateSelectedItemIcon(); + } + @Override protected Element writeItem(Element design, T item, DesignContext context) { Element element = design.appendElement("option"); diff --git a/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_ANY_Chrome__third-combobox-open.png b/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_ANY_Chrome__third-combobox-open.png index 00cf570643..dfc0d3ee00 100644 Binary files a/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_ANY_Chrome__third-combobox-open.png and b/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_ANY_Chrome__third-combobox-open.png differ diff --git a/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_LINUX_PhantomJS_1_third-combobox-open.png b/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_LINUX_PhantomJS_1_third-combobox-open.png index 6c2555c5fb..6e8d972046 100644 Binary files a/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_LINUX_PhantomJS_1_third-combobox-open.png and b/uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_LINUX_PhantomJS_1_third-combobox-open.png differ diff --git a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxItemIcon.java b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxItemIcon.java index c12ef2878f..0eb3d7c97f 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxItemIcon.java +++ b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxItemIcon.java @@ -72,8 +72,7 @@ public class ComboBoxItemIcon extends TestBase { cb.setItems(IntStream.range(0, 3).boxed()); cb.setItemIconGenerator(iconGenerator); - // FIXME: Selecting ConnectorResource on init does not work. - // cb.setValue(2); + cb.setValue(1); addComponent(cb); } } -- cgit v1.2.3