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"); }
@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); }
@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 processUpdates(FacesContext context) { if (!isRendered()) { return; } super.processUpdates(context); ValueExpression expr = getValueExpression(PropertyKeys.activeIndex.toString()); if (expr != null) { expr.setValue(getFacesContext().getELContext(), getActiveIndex()); resetActiveIndex(); } } }
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(); }
tabView.setId( FacesUtils.createUniqueId() ); tabView.setActiveIndex( mActiveIndex ); tabView.setEffect( mEffect ); tabView.setEffectDuration( mEffectDuration ); tabView.setDynamic( mDynamic ); tabView.setCache( mCache ); tabView.setOrientation( mOrientation ); tabView.setStyle( mStyle); tabView.setStyleClass( mStyleClass ); tabView.getAttributes().put( UIMetawidget.COMPONENT_ATTRIBUTE_METADATA, tabPanelAttributes ); tabView.getChildren().add( tab );
protected void encodeHeaders(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String var = tabView.getVar(); int activeIndex = tabView.getActiveIndex(); boolean scrollable = tabView.isScrollable(); for (int i = 0; i < tabView.getChildCount(); i++) { UIComponent child = tabView.getChildren().get(i); if (child.isRendered() && child instanceof Tab) { encodeTabHeader(context, tabView, (Tab) child, j, (j == activeIndex)); int dataCount = tabView.getRowCount(); Tab tab = (Tab) tabView.getChildren().get(0); tabView.setIndex(i); tabView.setIndex(-1);
protected void encodeMarkup(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String clientId = tabView.getClientId(context); String widgetVar = tabView.resolveWidgetVar(); String orientation = tabView.getOrientation(); String styleClass = tabView.getStyleClass(); String defaultStyleClass = TabView.CONTAINER_CLASS + " ui-tabs-" + orientation; if (tabView.isScrollable()) { defaultStyleClass = defaultStyleClass + " " + TabView.SCROLLABLE_TABS_CLASS; writer.writeAttribute("id", clientId, null); writer.writeAttribute("class", styleClass, "styleClass"); if (tabView.getStyle() != null) { writer.writeAttribute("style", tabView.getStyle(), "style"); encodeStateHolder(context, tabView, clientId + "_activeIndex", String.valueOf(tabView.getActiveIndex())); if (tabView.isScrollable()) { String scrollParam = clientId + "_scrollState"; String scrollState = context.getExternalContext().getRequestParameterMap().get(scrollParam);
@Override public void queueEvent(FacesEvent event) { FacesContext context = getFacesContext(); String clientId = getClientId(context); boolean repeating = isRepeating(); AjaxBehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event; TabChangeEvent changeEvent = new TabChangeEvent(this, behaviorEvent.getBehavior(), findTab(tabClientId)); setIndex(tabindex); changeEvent.setData(getIndexData()); changeEvent.setTab((Tab) getChildren().get(0)); setIndex(-1); TabCloseEvent closeEvent = new TabCloseEvent(this, behaviorEvent.getBehavior(), findTab(tabClientId)); setIndex(tabindex); closeEvent.setData(getIndexData()); closeEvent.setTab((Tab) getChildren().get(0)); setIndex(-1);
@Override protected void encodeContents(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); int activeIndex = tabView.getActiveIndex(); boolean dynamic = tabView.isDynamic(); writer.startElement("div", null); writer.writeAttribute("class", TabView.PANELS_CLASS, null); if (!tabView.isRepeating()) { 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(); 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"); }
@Override 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()); encodeClientBehaviors(context, tabView); wb.finish(); }
@Override protected void encodeMarkup(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String clientId = tabView.getClientId(context); String widgetVar = tabView.resolveWidgetVar(); String style = tabView.getStyle(); String styleClass = tabView.getStyleClass(); styleClass = (styleClass == null) ? TabView.MOBILE_CONTAINER_CLASS : TabView.MOBILE_CONTAINER_CLASS + " " + styleClass; writer.startElement("div", tabView); writer.writeAttribute("id", clientId, null); writer.writeAttribute("class", styleClass, "styleClass"); writer.writeAttribute(HTML.WIDGET_VAR, widgetVar, null); if (style != null) { writer.writeAttribute("style", tabView.getStyle(), "style"); } encodeHeaders(context, tabView); encodeContents(context, tabView); encodeStateHolder(context, tabView, clientId + "_activeIndex", String.valueOf(tabView.getActiveIndex())); renderDynamicPassThruAttributes(context, tabView); writer.endElement("div"); }
public Tab findTab(String tabClientId) { for (UIComponent component : getChildren()) { if (component.getClientId().equals(tabClientId)) { return (Tab) component; } } return null; }
public void tabChanged(TabChangeEvent event) { TabView tv = (TabView) event.getComponent(); this.activeTabIndex = tv.getActiveIndex(); if (this.activeTabIndex == 1 || this.activeTabIndex == 2 ) { setFileMetadatasForTab(loadFileMetadataTabList()); } else { setFileMetadatasForTab( new ArrayList<>()); } }
public boolean isContentLoadRequest(FacesContext context) { return context.getExternalContext().getRequestParameterMap().containsKey(getClientId(context) + "_contentLoad"); }
public boolean isRTL() { return this.getDir().equalsIgnoreCase("rtl"); }
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 encodeHeaders(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String var = tabView.getVar(); int activeIndex = tabView.getActiveIndex(); boolean scrollable = tabView.isScrollable(); for (UIComponent kid : tabView.getChildren()) { if (kid.isRendered() && kid instanceof Tab) { encodeTabHeader(context, tabView, (Tab) kid, i, (i == activeIndex)); int dataCount = tabView.getRowCount(); Tab tab = (Tab) tabView.getChildren().get(0); tabView.setIndex(i); tabView.setIndex(-1);
protected void encodeMarkup(FacesContext context, TabView tabView) throws IOException { ResponseWriter writer = context.getResponseWriter(); String clientId = tabView.getClientId(context); String widgetVar = tabView.resolveWidgetVar(); String orientation = tabView.getOrientation(); String styleClass = tabView.getStyleClass(); String defaultStyleClass = TabView.CONTAINER_CLASS + " ui-tabs-" + orientation; if (tabView.isScrollable()) { defaultStyleClass = defaultStyleClass + " " + TabView.SCROLLABLE_TABS_CLASS; writer.writeAttribute("id", clientId, null); writer.writeAttribute("class", styleClass, "styleClass"); if (tabView.getStyle() != null) { writer.writeAttribute("style", tabView.getStyle(), "style"); encodeStateHolder(context, tabView, clientId + "_activeIndex", String.valueOf(tabView.getActiveIndex())); if (tabView.isScrollable()) { String scrollParam = clientId + "_scrollState"; String scrollState = context.getExternalContext().getRequestParameterMap().get(scrollParam);
@Override public void queueEvent(FacesEvent event) { FacesContext context = getFacesContext(); String clientId = this.getClientId(context); boolean repeating = this.isRepeating(); AjaxBehaviorEvent behaviorEvent = (AjaxBehaviorEvent) event; TabChangeEvent changeEvent = new TabChangeEvent(this, behaviorEvent.getBehavior(), findTab(tabClientId)); setIndex(tabindex); changeEvent.setData(this.getIndexData()); changeEvent.setTab((Tab) getChildren().get(0)); this.setIndex(-1); TabCloseEvent closeEvent = new TabCloseEvent(this, behaviorEvent.getBehavior(), findTab(tabClientId)); setIndex(tabindex); closeEvent.setData(this.getIndexData()); closeEvent.setTab((Tab) getChildren().get(0)); this.setIndex(-1);