diff options
Diffstat (limited to 'server/src/com/vaadin/ui/AbstractSelect.java')
-rw-r--r-- | server/src/com/vaadin/ui/AbstractSelect.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/server/src/com/vaadin/ui/AbstractSelect.java b/server/src/com/vaadin/ui/AbstractSelect.java index 06790ca78d..4c5e6b6ea3 100644 --- a/server/src/com/vaadin/ui/AbstractSelect.java +++ b/server/src/com/vaadin/ui/AbstractSelect.java @@ -2222,4 +2222,30 @@ public abstract class AbstractSelect extends AbstractField<Object> implements } } } + + @Override + public void writeDesign(Element design, DesignContext designContext) { + // Write default attributes + super.writeDesign(design, designContext); + + // Write options if warranted + if (designContext.shouldWriteData(this)) { + for (Object itemId : getItemIds()) { + Element optionElement = design.appendElement("option"); + + optionElement.html(getItemCaption(itemId)); + + Resource icon = getItemIcon(itemId); + if (icon != null) { + DesignAttributeHandler.writeAttribute("icon", + optionElement.attributes(), icon, null, + Resource.class); + } + + if (isSelected(itemId)) { + optionElement.attr("selected", ""); + } + } + } + } }
\ No newline at end of file |