aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/AbstractSelect.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/com/vaadin/ui/AbstractSelect.java')
-rw-r--r--server/src/com/vaadin/ui/AbstractSelect.java26
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