/**
  * This methods generates the HTML code of the current b:buttonToolbar. <code>encodeBegin</code>
  * generates the start of the component. After the, the JSF framework calls <code>encodeChildren()
  * </code> to generate the HTML code between the beginning and the end of the component. For
  * instance, in the case of a panel component the content of the panel is generated by <code>
  * encodeChildren()</code>. After that, <code>encodeEnd()</code> is called to generate the rest of
  * the HTML code.
  *
  * @param context the FacesContext.
  * @param component the current b:buttonToolbar.
  * @throws IOException thrown if something goes wrong when writing the HTML code.
  */
 @Override
 public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
   if (!component.isRendered()) {
     return;
   }
   ButtonToolbar buttonToolbar = (ButtonToolbar) component;
   ResponseWriter rw = context.getResponseWriter();
   String clientId = buttonToolbar.getClientId();
   rw.endElement("buttonToolbar");
   Tooltip.activateTooltips(fc, c.getAttributes(), c);
 }
  /**
   * This methods generates the HTML code of the current b:buttonToolbar. <code>encodeBegin</code>
   * generates the start of the component. After the, the JSF framework calls <code>encodeChildren()
   * </code> to generate the HTML code between the beginning and the end of the component. For
   * instance, in the case of a panel component the content of the panel is generated by <code>
   * encodeChildren()</code>. After that, <code>encodeEnd()</code> is called to generate the rest of
   * the HTML code.
   *
   * @param context the FacesContext.
   * @param component the current b:buttonToolbar.
   * @throws IOException thrown if something goes wrong when writing the HTML code.
   */
  @Override
  public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
    if (!component.isRendered()) {
      return;
    }
    ButtonToolbar buttonToolbar = (ButtonToolbar) component;
    ResponseWriter rw = context.getResponseWriter();
    String clientId = buttonToolbar.getClientId();

    // put custom code here
    // Simple demo widget that simply renders every attribute value
    rw.startElement("buttonToolbar", buttonToolbar);
    Tooltip.generateTooltip(context, buttonToolbar, rw);

    rw.writeAttribute("binding", buttonToolbar.getBinding(), "binding");
    rw.writeAttribute("id", buttonToolbar.getId(), "id");
    rw.writeAttribute("rendered", String.valueOf(buttonToolbar.isRendered()), "rendered");
    rw.writeAttribute("tooltip", buttonToolbar.getTooltip(), "tooltip");
    rw.writeAttribute("tooltipDelay", buttonToolbar.getTooltipDelay(), "tooltipDelay");
    rw.writeAttribute("tooltipDelayHide", buttonToolbar.getTooltipDelayHide(), "tooltipDelayHide");
    rw.writeAttribute("tooltipDelayShow", buttonToolbar.getTooltipDelayShow(), "tooltipDelayShow");
    rw.writeAttribute("tooltipPosition", buttonToolbar.getTooltipPosition(), "tooltipPosition");
    rw.writeText("Dummy content of b:buttonToolbar", null);
  }