in empire-db-jsf2/src/main/java/org/apache/empire/jsf2/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++;
}
}