protected void encodeToolbarGroups(FacesContext context, Toolbar toolbar) throws IOException {
    ResponseWriter writer = context.getResponseWriter();

    for (UIComponent child : toolbar.getChildren()) {
      if (child.isRendered() && child instanceof ToolbarGroup) {
        ToolbarGroup group = (ToolbarGroup) child;

        String defaultGroupClass = "ui-toolbar-group-" + group.getAlign();
        String groupClass = group.getStyleClass();
        String groupStyle = group.getStyle();
        groupClass = groupClass == null ? defaultGroupClass : defaultGroupClass + " " + groupClass;

        writer.startElement("div", null);
        writer.writeAttribute("class", groupClass, null);
        if (groupStyle != null) {
          writer.writeAttribute("style", groupStyle, null);
        }

        for (UIComponent groupChild : group.getChildren()) {
          if (groupChild instanceof UISeparator && groupChild.isRendered())
            encodeSeparator(context, (UISeparator) groupChild);
          else groupChild.encodeAll(context);
        }

        writer.endElement("div");
      }
    }
  }