diff options
author | patrik <patrik@vaadin.com> | 2015-04-13 12:23:04 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2015-04-14 08:07:29 +0000 |
commit | 05ce7f4158231b9ddcea69ead3bc26681c6d77f8 (patch) | |
tree | 3e76fbc5f097b06ad79a27b9175a24c7ded259df /server/src/com/vaadin/ui/AbstractSelect.java | |
parent | 718eb3e49ad7fef3fca392989b246f38823a3018 (diff) | |
download | vaadin-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.java | 22 |
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) { |