@Override
  protected void doEncodeItemBegin(
      ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {

    super.doEncodeItemBegin(writer, context, component);
    encodeContentBegin(context, component, writer);
  }
  @Override
  protected void doEncodeChildren(
      ResponseWriter writer, FacesContext context, UIComponent component) throws IOException {

    AbstractTab tab = (AbstractTab) component;

    if (tab.shouldProcess() && !tab.isDisabled()) {
      super.doEncodeChildren(writer, context, tab);
    }
  }