@Override public void decode(FacesContext context, UIComponent component) { Map<String, String> params = context.getExternalContext().getRequestParameterMap(); TabView tabView = (TabView) component; String activeIndexValue = params.get(tabView.getClientId(context) + "_activeIndex"); if (!LangUtils.isValueBlank(activeIndexValue)) { tabView.setActiveIndex(Integer.parseInt(activeIndexValue)); } decodeBehaviors(context, component); }
encodeContents(context, tabView); encodeHeaders(context, tabView); encodeHeaders(context, tabView); encodeContents(context, tabView); encodeStateHolder(context, tabView, clientId + "_activeIndex", String.valueOf(tabView.getActiveIndex())); String scrollState = context.getExternalContext().getRequestParameterMap().get(scrollParam); String scrollValue = scrollState == null ? "0" : scrollState; encodeStateHolder(context, tabView, scrollParam, scrollValue);
@Override public void encodeEnd(FacesContext context, UIComponent component) throws IOException { Map<String, String> params = context.getExternalContext().getRequestParameterMap(); TabView tabView = (TabView) component; String clientId = tabView.getClientId(context); String var = tabView.getVar(); if (tabView.isContentLoadRequest(context)) { Tab tabToLoad = null; if (var == null) { String tabClientId = params.get(clientId + "_newTab"); tabToLoad = tabView.findTab(tabClientId); tabToLoad.encodeAll(context); tabToLoad.setLoaded(true); } else { int tabindex = Integer.parseInt(params.get(clientId + "_tabindex")); tabView.setIndex(tabindex); tabToLoad = (Tab) tabView.getChildren().get(0); tabToLoad.encodeAll(context); tabView.setIndex(-1); } } else { tabView.resetLoadedTabsState(); encodeMarkup(context, tabView); encodeScript(context, tabView); } }
writer.writeAttribute("class", TabView.NAVIGATOR_SCROLLER_CLASS, null); encodeScrollerButton(context, tabView, TabView.NAVIGATOR_LEFT_CLASS, TabView.NAVIGATOR_LEFT_ICON_CLASS); encodeScrollerButton(context, tabView, TabView.NAVIGATOR_RIGHT_CLASS, TabView.NAVIGATOR_RIGHT_ICON_CLASS); UIComponent child = tabView.getChildren().get(i); if (child.isRendered() && child instanceof Tab) { encodeTabHeader(context, tabView, (Tab) child, j, (j == activeIndex)); j++; tabView.setIndex(i); encodeTabHeader(context, tabView, tab, i, (i == activeIndex));
protected void encodeScript(FacesContext context, TabView tabView) throws IOException { String clientId = tabView.getClientId(context); boolean dynamic = tabView.isDynamic(); WidgetBuilder wb = getWidgetBuilder(context); wb.init("TabView", tabView.resolveWidgetVar(), clientId); if (dynamic) { wb.attr("dynamic", true).attr("cache", tabView.isCache()); } wb.callback("onTabChange", "function(index)", tabView.getOnTabChange()) .callback("onTabShow", "function(index)", tabView.getOnTabShow()) .callback("onTabClose", "function(index)", tabView.getOnTabClose()); wb.attr("effect", tabView.getEffect(), null) .attr("effectDuration", tabView.getEffectDuration(), null) .attr("scrollable", tabView.isScrollable()) .attr("tabindex", tabView.getTabindex(), null); encodeClientBehaviors(context, tabView); wb.finish(); }
protected void encodeContents(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String var = tabView.getVar(); int activeIndex = tabView.getActiveIndex(); boolean dynamic = tabView.isDynamic(); writer.startElement("div", null); writer.writeAttribute("class", TabView.PANELS_CLASS, null); if (var == null) { int j = 0; for (int i = 0; i < tabView.getChildCount(); i++) { UIComponent child = tabView.getChildren().get(i); if (child.isRendered() && child instanceof Tab) { encodeTabContent(context, (Tab) child, j, (j == activeIndex), dynamic); j++; } } } else { int dataCount = tabView.getRowCount(); //boundary check activeIndex = activeIndex >= dataCount ? 0 : activeIndex; Tab tab = (Tab) tabView.getChildren().get(0); for (int i = 0; i < dataCount; i++) { tabView.setIndex(i); encodeTabContent(context, tab, i, (i == activeIndex), dynamic); } tabView.setIndex(-1); } writer.endElement("div"); }
protected void encodeScript(FacesContext context, TabView tabView) throws IOException { String clientId = tabView.getClientId(context); boolean dynamic = tabView.isDynamic(); WidgetBuilder wb = getWidgetBuilder(context); wb.init("TabView", tabView.resolveWidgetVar(), clientId); if (dynamic) { wb.attr("dynamic", true).attr("cache", tabView.isCache()); } wb.callback("onTabChange", "function(index)", tabView.getOnTabChange()) .callback("onTabShow", "function(index)", tabView.getOnTabShow()) .callback("onTabClose", "function(index)", tabView.getOnTabClose()); wb.attr("effect", tabView.getEffect(), null) .attr("effectDuration", tabView.getEffectDuration(), null) .attr("scrollable", tabView.isScrollable()) .attr("tabindex", tabView.getTabindex(), null); encodeClientBehaviors(context, tabView); wb.finish(); }
writer.writeAttribute("class", TabView.NAVIGATOR_SCROLLER_CLASS, null); encodeScrollerButton(context, tabView, TabView.NAVIGATOR_LEFT_CLASS, TabView.NAVIGATOR_LEFT_ICON_CLASS); encodeScrollerButton(context, tabView, TabView.NAVIGATOR_RIGHT_CLASS, TabView.NAVIGATOR_RIGHT_ICON_CLASS); for (UIComponent kid : tabView.getChildren()) { if (kid.isRendered() && kid instanceof Tab) { encodeTabHeader(context, tabView, (Tab) kid, i, (i == activeIndex)); i++; tabView.setIndex(i); encodeTabHeader(context, tabView, tab, i, (i == activeIndex));
protected void encodeContents(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String var = tabView.getVar(); int activeIndex = tabView.getActiveIndex(); boolean dynamic = tabView.isDynamic(); writer.startElement("div", null); writer.writeAttribute("class", TabView.PANELS_CLASS, null); if (var == null) { int i = 0; for (UIComponent kid : tabView.getChildren()) { if (kid.isRendered() && kid instanceof Tab) { encodeTabContent(context, (Tab) kid, i, (i == activeIndex), dynamic); i++; } } } else { int dataCount = tabView.getRowCount(); //boundary check activeIndex = activeIndex >= dataCount ? 0 : activeIndex; Tab tab = (Tab) tabView.getChildren().get(0); for (int i = 0; i < dataCount; i++) { tabView.setIndex(i); encodeTabContent(context, tab, i, (i == activeIndex), dynamic); } tabView.setIndex(-1); } writer.endElement("div"); }
encodeContents(context, tabView); encodeHeaders(context, tabView); encodeHeaders(context, tabView); encodeContents(context, tabView); encodeStateHolder(context, tabView, clientId + "_activeIndex", String.valueOf(tabView.getActiveIndex())); String scrollState = context.getExternalContext().getRequestParameterMap().get(scrollParam); String scrollValue = scrollState == null ? "0" : scrollState; encodeStateHolder(context, tabView, scrollParam, scrollValue);
@Override public void encodeEnd(FacesContext context, UIComponent component) throws IOException { Map<String, String> params = context.getExternalContext().getRequestParameterMap(); TabView tabView = (TabView) component; String clientId = tabView.getClientId(context); String var = tabView.getVar(); if (tabView.isContentLoadRequest(context)) { Tab tabToLoad = null; if (var == null) { String tabClientId = params.get(clientId + "_newTab"); tabToLoad = tabView.findTab(tabClientId); tabToLoad.encodeAll(context); tabToLoad.setLoaded(true); } else { int tabindex = Integer.parseInt(params.get(clientId + "_tabindex")); tabView.setIndex(tabindex); tabToLoad = (Tab) tabView.getChildren().get(0); tabToLoad.encodeAll(context); tabView.setIndex(-1); } } else { tabView.resetLoadedTabsState(); encodeMarkup(context, tabView); encodeScript(context, tabView); } }
@Override public void decode(FacesContext context, UIComponent component) { Map<String, String> params = context.getExternalContext().getRequestParameterMap(); TabView tabView = (TabView) component; String activeIndexValue = params.get(tabView.getClientId(context) + "_activeIndex"); if (!ComponentUtils.isValueBlank(activeIndexValue)) { tabView.setActiveIndex(Integer.parseInt(activeIndexValue)); } decodeBehaviors(context, component); }