protected void encodeTabs()

in empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabViewTag.java [347:409]


    protected void encodeTabs(FacesContext context, ResponseWriter writer, String showTabBlindJs)
        throws IOException
    {
        Iterator<UIComponent> ci = getFacetsAndChildren();
        if (ci.hasNext() == false)
        {
            log.warn("Invalid TabPage definition!");
            return;
        }
        UIComponent panel = ci.next();
        int index = 0;
        int activeIndex = getActivePageIndex();
        // Patch for MOJARRA: Remove HtmlCommandLinks
        List<UIComponent> chk = panel.getChildren();
        for (int i = chk.size() - 1; i >= 0; i--)
        {
            if ((chk.get(i) instanceof HtmlCommandLink))
                chk.remove(i);
        }
        // Create Page Links
        for (UIComponent c : panel.getChildren())
        { // Find Tab pages
            if (!(c instanceof TabPageTag))
            {
                continue;
            }
            // found
            boolean active = (index == activeIndex);
            TabPageTag page = (TabPageTag) c;

            // render tab-page? default is true
            boolean visible = isPageVisible(page);
            if (!visible)
            {
                // dont render content
                page.setRendered(false);
                continue;
            }
            if (writer!=null)
            {   // encode Tab
                boolean disabled = isPageDisabled(page);
                writer.startElement(mode.BAR_ITEM_TAG, this);
                // tab label
                String styleClasses = TagStyleClass.TAB_LABEL.get();
                if (active)
                {
                    styleClasses = TagStyleClass.TAB_ACTIVE.addTo(styleClasses);
                }
                else if (disabled)
                {
                    styleClasses = TagStyleClass.TAB_DISABLED.addTo(styleClasses);
                }
                writer.writeAttribute(InputControl.HTML_ATTR_CLASS, styleClasses, null);
                // encode Link
                encodeTabLink(context, writer, index, page, (active || disabled), showTabBlindJs);
                writer.endElement(mode.BAR_ITEM_TAG);
            }
            // set rendered
            page.setRendered(active);
            // next
            index++;
        }
    }