Переглянути джерело

Fix using ConnectorResource icons before attaching ComboBox (#10810)

* Fix using ConnectorResource icons before attaching ComboBox

* Update Chrome and PhantomJS screenshots
tags/8.5.0.alpha1
Teemu Suo-Anttila 6 роки тому
джерело
коміт
7c662a179f

+ 11
- 0
server/src/main/java/com/vaadin/ui/ComboBox.java Переглянути файл

@@ -842,6 +842,10 @@ public class ComboBox<T> extends AbstractSingleSelect<T>
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<T> extends AbstractSingleSelect<T>
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");

BIN
uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_ANY_Chrome__third-combobox-open.png Переглянути файл


BIN
uitest/reference-screenshots/ComboBoxItemIconTest-testIconsInComboBox_LINUX_PhantomJS_1_third-combobox-open.png Переглянути файл


+ 1
- 2
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);
}
}

Завантаження…
Відмінити
Зберегти