aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/com/vaadin/ui/AbstractSelect.java
diff options
context:
space:
mode:
authorpatrik <patrik@vaadin.com>2015-04-13 12:23:04 +0300
committerVaadin Code Review <review@vaadin.com>2015-04-14 08:07:29 +0000
commit05ce7f4158231b9ddcea69ead3bc26681c6d77f8 (patch)
tree3e76fbc5f097b06ad79a27b9175a24c7ded259df /server/src/com/vaadin/ui/AbstractSelect.java
parent718eb3e49ad7fef3fca392989b246f38823a3018 (diff)
downloadvaadin-framework-05ce7f4158231b9ddcea69ead3bc26681c6d77f8.tar.gz
vaadin-framework-05ce7f4158231b9ddcea69ead3bc26681c6d77f8.zip
Add declarative OptionGroup support (#15549)
Change-Id: I5edb32ffb8282fa76fc21cf6e134eeb48fec04d1
Diffstat (limited to 'server/src/com/vaadin/ui/AbstractSelect.java')
-rw-r--r--server/src/com/vaadin/ui/AbstractSelect.java22
1 files changed, 19 insertions, 3 deletions
diff --git a/server/src/com/vaadin/ui/AbstractSelect.java b/server/src/com/vaadin/ui/AbstractSelect.java
index 629d2fb504..6ac0dad5e4 100644
--- a/server/src/com/vaadin/ui/AbstractSelect.java
+++ b/server/src/com/vaadin/ui/AbstractSelect.java
@@ -2233,17 +2233,27 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
throw new DesignException("Unrecognized child element in "
+ getClass().getSimpleName() + ": " + child.tagName());
}
- String itemId = child.html();
- addItem(itemId);
+
+ String itemId;
+ if (child.hasAttr("item-id")) {
+ itemId = child.attr("item-id");
+ addItem(itemId);
+ setItemCaption(itemId, child.html());
+ } else {
+ addItem(itemId = child.html());
+ }
+
if (child.hasAttr("icon")) {
setItemIcon(
itemId,
DesignAttributeHandler.readAttribute("icon",
child.attributes(), Resource.class));
}
+
if (child.hasAttr("selected")) {
selected.add(itemId);
}
+
return itemId;
}
@@ -2291,7 +2301,13 @@ public abstract class AbstractSelect extends AbstractField<Object> implements
DesignContext context) {
Element element = design.appendElement("option");
- element.html(itemId.toString());
+ String caption = getItemCaption(itemId);
+ if (caption != null && !caption.equals(itemId.toString())) {
+ element.html(caption);
+ element.attr("item-id", itemId.toString());
+ } else {
+ element.html(itemId.toString());
+ }
Resource icon = getItemIcon(itemId);
if (icon != null) {