package com.revolsys.ui.html.decorator; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import com.revolsys.record.io.format.xml.XmlWriter; import com.revolsys.ui.html.view.Element; import com.revolsys.ui.html.view.ElementContainer; import com.revolsys.util.HtmlAttr; import com.revolsys.util.HtmlElem; public class InputGroup extends ElementContainer { private final Element input; private final List<Element> buttons = new ArrayList<>(); public InputGroup(final Element input) { this.input = input; add(input); } public InputGroup addButton(final Element button) { this.buttons.add(button); add(button); return this; } @Override public void serializeElement(final XmlWriter out) { if (this.buttons.isEmpty()) { this.input.serialize(out); } else { out.startTag(HtmlElem.DIV); out.attribute(HtmlAttr.CLASS, "input-group"); { this.input.serialize(out); QName tag; if (this.buttons.size() == 1) { tag = HtmlElem.SPAN; } else { tag = HtmlElem.DIV; } out.startTag(tag); out.attribute(HtmlAttr.CLASS, "input-group-btn"); for (final Element button : this.buttons) { button.serialize(out); } out.endTag(tag); } out.endTag(HtmlElem.DIV); } } }