All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.icesoft.faces.component.paneltabset.PanelTabSet Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2004-2013 ICEsoft Technologies Canada Corp.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an "AS
 * IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

package com.icesoft.faces.component.paneltabset;

import com.icesoft.faces.component.CSS_DEFAULT;
import com.icesoft.faces.utils.UpdatableProperty;
import com.icesoft.faces.component.ext.taglib.Util;
import com.icesoft.faces.component.panelseries.UISeries;

import org.icefaces.impl.component.SeriesStateHolder;

import javax.faces.component.NamingContainer;
import javax.faces.component.UIComponent;
import javax.faces.component.UIForm;
import javax.faces.component.UINamingContainer;
import javax.faces.context.FacesContext;
import javax.faces.el.EvaluationException;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
import javax.faces.event.FacesListener;
import javax.faces.event.PhaseId;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 

PanelTabSet is a JSF component class that represents an ICEfaces tab panel * container.

*

* This component extends the ICEfaces UISeries component which is a modified * implementation of UIData.

*

* By default the component is rendered by the "com.icesoft.faces.TabbedPane" * renderer type.

*/ public class PanelTabSet extends UISeries implements SeriesStateHolder { /** * The method binding for a TabChangeListener. */ private MethodBinding _tabChangeListener = null; private Boolean keyboardNavigationEnabled; /* (non-Javadoc) * @see javax.faces.component.UIComponent#decode(javax.faces.context.FacesContext) */ public void decode(FacesContext context) { reconcileListeners(); super.decode(context); } /** * @param context * @param phaseId */ public void applyPhase(FacesContext context, PhaseId phaseId) { if (context == null) { throw new NullPointerException("Null context in PanelTabSet"); } // if(phaseId == PhaseId.APPLY_REQUEST_VALUES) // decode(context); int tabIdx = 0; int selectedIndex = getConsistentSelectedIndex(); if (super.getValue() != null) { int rowIndex = super.getFirst(); setRowIndex(rowIndex); int rowsToBeDisplayed = getRows(); int rowsDisplayed = 0; UIComponent child = getUIComponent((UIComponent) getChildren().get(0)); while (isRowAvailable()) { if (rowsToBeDisplayed > 0 && rowsDisplayed >= rowsToBeDisplayed) { break; } if (child instanceof PanelTab) { //for the selected tab the facet will be processed by applyphase if (tabIdx == selectedIndex) { applyPhase(context, child, phaseId); } else { Iterator facets = child.getFacets().keySet().iterator(); while (facets.hasNext()) { UIComponent facet = (UIComponent) child.getFacets().get(facets.next()); applyPhase(context, facet, phaseId); } } tabIdx++; } rowsDisplayed++; rowIndex++; setRowIndex(rowIndex); } setRowIndex(-1); } else { Iterator it = getFacetsAndChildren(); while (it.hasNext()) { UIComponent childOrFacet = getUIComponent((UIComponent) it.next()); if (childOrFacet instanceof PanelTab) { if (tabIdx == selectedIndex) { applyPhase(context, childOrFacet, phaseId); } else { Iterator facets = childOrFacet.getFacets().keySet().iterator(); while (facets.hasNext()) { UIComponent facet = (UIComponent) childOrFacet.getFacets().get(facets.next()); applyPhase(context, facet, phaseId); } } tabIdx++; } else { applyPhase(context, childOrFacet, phaseId); } } } } /** * @param context * @param component * @param phaseId */ public void applyPhase(FacesContext context, UIComponent component, PhaseId phaseId) { if (phaseId == PhaseId.APPLY_REQUEST_VALUES) { component.processDecodes(context); } else if (phaseId == PhaseId.PROCESS_VALIDATIONS) { component.processValidators(context); } else if (phaseId == PhaseId.UPDATE_MODEL_VALUES) { component.processUpdates(context); } else { throw new IllegalArgumentException(); } } /* (non-Javadoc) * @see javax.faces.component.UIComponent#processDecodes(javax.faces.context.FacesContext) */ public void processDecodes(javax.faces.context.FacesContext context) { if (context == null) { throw new NullPointerException("context"); } if (!isRendered()) { return; } decode(context); applyPhase(context, PhaseId.APPLY_REQUEST_VALUES); if (isImmediate() && eventQueued) { //the panelTabSet is not a UIInput component, so the //_selectedIndex.validate doesn't apply on it but this //methods sets the "value" as the submitted value, so we //need to call it here. _selectedIndex.validate(context, this); context.renderResponse(); } } /* (non-Javadoc) * @see javax.faces.component.UIComponent#processValidators(javax.faces.context.FacesContext) */ public void processValidators(FacesContext context) { if (context == null) { throw new NullPointerException(); } if (!isRendered()) { return; } applyPhase(context, PhaseId.PROCESS_VALIDATIONS); } /* (non-Javadoc) * @see javax.faces.component.UIComponent#processUpdates(javax.faces.context.FacesContext) */ public void processUpdates(FacesContext context) { if (context == null) { throw new NullPointerException(); } if (!isRendered()) { return; } if (!isImmediate() && eventQueued) { _selectedIndex.validate(context, this); } _selectedIndex.updateModel(context, this); applyPhase(context, PhaseId.UPDATE_MODEL_VALUES); } private UIComponent getUIComponent(UIComponent uiComponent) { if (uiComponent instanceof UINamingContainer || uiComponent instanceof UIForm) { if (uiComponent.getChildCount() > 0) { List children = uiComponent.getChildren(); for (int i = 0, len = children.size(); i < len; i++) { uiComponent = getUIComponent((UIComponent) children.get(i)); } } } return uiComponent; } /** * @param listener */ private List listenerList = new ArrayList(); public void addTabChangeListener(TabChangeListener listener) { listenerList.add(listener); addFacesListener(listener); } /** * @param listener */ public void removeTabChangeListener(TabChangeListener listener) { listenerList.remove(listener); removeFacesListener(listener); } /** * reconcile TabChangeListeners */ private void reconcileListeners(){ FacesListener[] listener = getFacesListeners(TabChangeListener.class); for (int i=0; i< listener.length; i++) { super.removeFacesListener(listener[i]); } Iterator it = listenerList.iterator(); Object temp = null; while(it.hasNext()) { temp = it.next(); if(temp instanceof TabChangeListener){ super.addFacesListener((TabChangeListener)temp); } } } /** * @return the tabChangeListener */ public MethodBinding getTabChangeListener() { return _tabChangeListener; } /** * @param tabChangeListener */ public void setTabChangeListener(MethodBinding tabChangeListener) { _tabChangeListener = tabChangeListener; } /* (non-Javadoc) * @see javax.faces.component.UIComponent#broadcast(javax.faces.event.FacesEvent) */ public void broadcast(FacesEvent event) throws AbortProcessingException { super.broadcast(event); if (event instanceof TabChangeEvent) { TabChangeEvent tabChangeEvent = (TabChangeEvent) event; MethodBinding tabChangeListenerBinding = getTabChangeListener(); if (tabChangeListenerBinding != null) { try { tabChangeListenerBinding.invoke( getFacesContext(), new Object[]{tabChangeEvent}); } catch (EvaluationException e) { Throwable cause = e.getCause(); if (cause != null && cause instanceof AbortProcessingException) { throw(AbortProcessingException) cause; } else { throw e; } } } } } /* (non-Javadoc) * @see javax.faces.component.UIComponent#isRendered() */ public boolean isRendered() { if (!Util.isRenderedOnUserRole(this)) { return false; } return super.isRendered(); } /** * The component type. */ public static final String COMPONENT_TYPE = "com.icesoft.faces.PanelTabSet"; /** * The component family. */ public static final String COMPONENT_FAMILY = "javax.faces.Panel"; /** * The default renderer type. */ private static final String DEFAULT_RENDERER_TYPE = "com.icesoft.faces.TabbedPane"; /** * The default selected index. */ private static final int DEFAULT_SELECTEDINDEX = 0; /** * The default tab placement. */ private final String DEFAULT_TABPLACEMENT = "Top"; // Top, Bottom, Left or Right final static String TABPLACEMENT_BOTTOM = "bottom"; // // default styles /** * The default background color of the tab panels. */ private static final String DEFAULT_BG_COLOR = "#FFFFFF"; /** * The current selected tab index. */ private UpdatableProperty _selectedIndex = new UpdatableProperty("selectedIndex"); /** * The current tab placement.

At this time only "top" and "bottom" are * supported. */ private String _tabPlacement = null; /** * The current background color. */ private String _bgcolor = null; /** * The current style. */ private String _style = null; /** * The current style class name. */ private String _styleClass = null; private String tabindex; /** * Creates an instance and sets the default renderer type to * "com.icesoft.faces.TabbedPane". */ public PanelTabSet() { setRendererType(DEFAULT_RENDERER_TYPE); } /* (non-Javadoc) * @see javax.faces.component.UIComponent#getFamily() */ public String getFamily() { return COMPONENT_FAMILY; } /** * @param selectedIndex */ void setSelectedIndex(Integer selectedIndex) { _selectedIndex.setValue(this, selectedIndex); } /** * @param selectedIndex */ public void setSelectedIndex(int selectedIndex) { _selectedIndex.setValue(this, new Integer(selectedIndex)); } /** * @return the value of selectedIndex */ public int getSelectedIndex() { Number selIdx = (Number) _selectedIndex.getValue( FacesContext.getCurrentInstance(), this); if(selIdx != null) { return selIdx.intValue(); } return DEFAULT_SELECTEDINDEX; } /** * The consistent selectedIndex should be saved away regardless of if * there's anything to decode, because applications may have a binding * to this component, and be calling setSelectedIndex(-) or even * setSubmittedSelectedIndex(-). */ void saveConsistentSelectedIndex() { _selectedIndex.saveValue(FacesContext.getCurrentInstance(), this); } /** * There's a tricky issue where were have to update our selectedIndex in * the validation phase, and set its ValueBinding in the update model * phase, but we have to keep the old selectedIndex so that we know which * tab to be forwarding all the phases (including validate, update model, * and invoke application, but not render) invocations to. * This should behave like getSelectedIndex() with default values, etc. */ int getConsistentSelectedIndex() { Number selIdx = (Number) _selectedIndex.getSavedValue( FacesContext.getCurrentInstance(), this); if(selIdx != null) { return selIdx.intValue(); } return DEFAULT_SELECTEDINDEX; } /** * Invoked on decode, to set which tab index the user clicked on */ void setSubmittedSelectedIndex(int selectedIndex) { _selectedIndex.setSubmittedValue(this, new Integer(selectedIndex)); } /** * @param bgcolor */ public void setBgcolor(String bgcolor) { _bgcolor = bgcolor; } /** * @return the value of bgcolor */ public String getBgcolor() { if (_bgcolor != null) { return _bgcolor; } ValueBinding vb = getValueBinding("bgcolor"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } private int border = 0; private boolean border_set = false; /** *

Return the value of the border property. Contents:

* Width (in pixels) of the border to be drawn around this table.

* * @return border */ public int getBorder() { if (this.border_set) { return this.border; } ValueBinding _vb = getValueBinding("border"); if (_vb != null) { Object _result = _vb.getValue(getFacesContext()); if (_result == null) { return 0; } else { return ((Integer) _result).intValue(); } } else { return this.border; } } /** *

Set the value of the border property.

* * @param border */ public void setBorder(int border) { this.border = border; this.border_set = true; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlPanelGroup#setStyle(java.lang.String) */ public void setStyle(String style) { _style = style; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlPanelGroup#getStyle() */ public String getStyle() { if (_style != null) { return _style; } ValueBinding vb = getValueBinding("style"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlPanelGroup#setStyleClass(java.lang.String) */ public void setStyleClass(String styleClass) { _styleClass = styleClass; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlPanelGroup#getStyleClass() */ public String getStyleClass() { return Util.getQualifiedStyleClass(this, _styleClass, CSS_DEFAULT.PANEL_TAB_SET_DEFAULT_TAB_SET, "styleClass"); } /** * @param tabPlacement */ public void setTabPlacement(String tabPlacement) { _tabPlacement = tabPlacement; } /** * @return the value of tabPlacement, currently only "top" and "bottom" are * supported */ public String getTabPlacement() { if (_tabPlacement != null) { return _tabPlacement; } ValueBinding vb = getValueBinding("tabPlacement"); return vb != null ? (String) vb.getValue(getFacesContext()) : this.DEFAULT_TABPLACEMENT; } /* (non-Javadoc) * @see javax.faces.component.StateHolder#saveState(javax.faces.context.FacesContext) */ public Object saveState(FacesContext context) { Object values[] = new Object[37]; values[0] = super.saveState(context); values[1] = _selectedIndex.saveState(this); values[2] = _bgcolor; values[3] = saveAttachedState(context, _tabChangeListener); values[4] = _style; values[5] = _styleClass; values[6] = _tabPlacement; values[7] = onclick; values[8] = ondblclick; values[9] = onmousedown; values[10] = onmouseup; values[11] = onmouseover; values[12] = onmousemove; values[13] = onmouseout; values[14] = onkeypress; values[15] = onkeydown; values[16] = onkeyup; values[17] = align; values[18] = new Integer(border); values[19] = cellpadding; values[20] = cellspacing; values[21] = frame; values[22] = rules; values[23] = summary; values[24] = height; values[25] = width; values[26] = dir; values[27] = lang; values[28] = title; values[29] = partialSubmit; values[30] = renderedOnUserRole; values[31] = visible; values[32] = saveAttachedState(context, listenerList); values[33] = immediate; values[34] = border_set ? Boolean.TRUE : Boolean.FALSE; values[35] = keyboardNavigationEnabled; values[36] = tabindex; return ((Object) (values)); } /* (non-Javadoc) * @see javax.faces.component.StateHolder#restoreState(javax.faces.context.FacesContext, java.lang.Object) */ public void restoreState(FacesContext context, Object state) { Object values[] = (Object[]) state; super.restoreState(context, values[0]); _selectedIndex.restoreState(this, (Object[]) values[1]); _bgcolor = (String) values[2]; _tabChangeListener = (MethodBinding) restoreAttachedState(context, values[3]); _style = (String) values[4]; _styleClass = (String) values[5]; _tabPlacement = (String) values[6]; onclick = (String) values[7]; ondblclick = (String) values[8]; onmousedown = (String) values[9]; onmouseup = (String) values[10]; onmouseover = (String) values[11]; onmousemove = (String) values[12]; onmouseout = (String) values[13]; onkeypress = (String) values[14]; onkeydown = (String) values[15]; onkeyup = (String) values[16]; align = (String) values[17]; border = ((Integer) values[18]).intValue(); cellpadding = (String) values[19]; cellspacing = (String) values[20]; frame = (String) values[21]; rules = (String) values[22]; summary = (String) values[23]; height = (String) values[24]; width = (String) values[25]; dir = (String) values[26]; lang = (String) values[27]; title = (String) values[28]; partialSubmit = (Boolean)values[29]; renderedOnUserRole = (String)values[30]; visible = (Boolean)values[31]; List restoredListenerList = (List) restoreAttachedState(context, values[32]); if (restoredListenerList != null) { if (null != listenerList) { listenerList.clear(); listenerList.addAll(restoredListenerList); } else { listenerList = restoredListenerList; } } immediate = (Boolean)values[33]; border_set = ((Boolean) values[34]).booleanValue(); keyboardNavigationEnabled = (Boolean) values[35]; tabindex = (String)values[36]; } public Object saveSeriesState(FacesContext facesContext) { Object[] values = new Object[1]; values[0] = _selectedIndex.saveState(this); return values; } public void restoreSeriesState(FacesContext facesContext, Object state) { Object[] values = (Object[]) state; _selectedIndex.restoreState(this, (Object[]) values[0]); } private String onclick; private String ondblclick; private String onmousedown = null; private String onmouseup = null; private String onmouseover = null; private String onmousemove = null; private String onmouseout = null; private String onkeypress = null; private String onkeydown = null; private String onkeyup = null; private String align = null; private String cellpadding = null; private String cellspacing = null; private String frame = null; private String rules = null; private String summary = null; private String height = null; private String width = null; private String dir = null; private String lang = null; private String title = null; /** * @param align */ public void setAlign(String align) { this.align = align; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setCellpadding(java.lang.String) */ public void setCellpadding(String cellpadding) { this.cellpadding = cellpadding; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setCellspacing(java.lang.String) */ public void setCellspacing(String cellspacing) { this.cellspacing = cellspacing; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setFrame(java.lang.String) */ public void setFrame(String frame) { this.frame = frame; } /** * @param height */ public void setHeight(String height) { this.height = height; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnclick(java.lang.String) */ public void setOnclick(String onclick) { this.onclick = onclick; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOndblclick(java.lang.String) */ public void setOndblclick(String ondblclick) { this.ondblclick = ondblclick; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnkeydown(java.lang.String) */ public void setOnkeydown(String onkeydown) { this.onkeydown = onkeydown; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnkeypress(java.lang.String) */ public void setOnkeypress(String onkeypress) { this.onkeypress = onkeypress; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnkeyup(java.lang.String) */ public void setOnkeyup(String onkeyup) { this.onkeyup = onkeyup; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnmousedown(java.lang.String) */ public void setOnmousedown(String onmousedown) { this.onmousedown = onmousedown; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnmousemove(java.lang.String) */ public void setOnmousemove(String onmousemove) { this.onmousemove = onmousemove; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnmouseout(java.lang.String) */ public void setOnmouseout(String onmouseout) { this.onmouseout = onmouseout; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnmouseover(java.lang.String) */ public void setOnmouseover(String onmouseover) { this.onmouseover = onmouseover; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setOnmouseup(java.lang.String) */ public void setOnmouseup(String onmouseup) { this.onmouseup = onmouseup; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setRules(java.lang.String) */ public void setRules(String rules) { this.rules = rules; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setSummary(java.lang.String) */ public void setSummary(String summary) { this.summary = summary; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setWidth(java.lang.String) */ public void setWidth(String width) { this.width = width; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setDir(java.lang.String) */ public void setDir(String dir) { this.dir = dir; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setLang(java.lang.String) */ public void setLang(String lang) { this.lang = lang; } /* (non-Javadoc) * @see javax.faces.component.html.HtmlDataTable#setTitle(java.lang.String) */ public void setTitle(String title) { this.title = title; } /** * @return the value of onclick property */ public String getOnclick() { if (onclick != null) { return onclick; } ValueBinding vb = getValueBinding("onclick"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of ondblclick property */ public String getOndblclick() { if (ondblclick != null) { return ondblclick; } ValueBinding vb = getValueBinding("ondblclick"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onmousedown property */ public String getOnmousedown() { if (onmousedown != null) { return onmousedown; } ValueBinding vb = getValueBinding("onmousedown"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onmouseup property */ public String getOnmouseup() { if (onmouseup != null) { return onmouseup; } ValueBinding vb = getValueBinding("onmouseup"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onmouseover property */ public String getOnmouseover() { if (onmouseover != null) { return onmouseover; } ValueBinding vb = getValueBinding("onmouseover"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onmousemove property */ public String getOnmousemove() { if (onmousemove != null) { return onmousemove; } ValueBinding vb = getValueBinding("onmousemove"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onmouseout property */ public String getOnmouseout() { if (onmouseout != null) { return onmouseout; } ValueBinding vb = getValueBinding("onmouseout"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onkeypress property */ public String getOnkeypress() { if (onkeypress != null) { return onkeypress; } ValueBinding vb = getValueBinding("onkeypress"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onkeydown property */ public String getOnkeydown() { if (onkeydown != null) { return onkeydown; } ValueBinding vb = getValueBinding("onkeydown"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of onkeyup property */ public String getOnkeyup() { if (onkeyup != null) { return onkeyup; } ValueBinding vb = getValueBinding("onkeyup"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of align property */ public String getAlign() { if (align != null) { return align; } ValueBinding vb = getValueBinding("align"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of cellpadding property */ public String getCellpadding() { if (cellpadding != null) { return cellpadding; } ValueBinding vb = getValueBinding("cellpadding"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of cellspacing property */ public String getCellspacing() { if (cellspacing != null) { return cellspacing; } ValueBinding vb = getValueBinding("cellspacing"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of frame property */ public String getFrame() { if (frame != null) { return frame; } ValueBinding vb = getValueBinding("frame"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of rules property */ public String getRules() { if (rules != null) { return rules; } ValueBinding vb = getValueBinding("rules"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of summary property */ public String getSummary() { if (summary != null) { return summary; } ValueBinding vb = getValueBinding("summary"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of height property */ public String getHeight() { if (height != null) { return height; } ValueBinding vb = getValueBinding("height"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of width property */ public String getWidth() { if (width != null) { return width; } ValueBinding vb = getValueBinding("width"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of dir property */ public String getDir() { if (dir != null) { return dir; } ValueBinding vb = getValueBinding("dir"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of lang property */ public String getLang() { if (lang != null) { return lang; } ValueBinding vb = getValueBinding("lang"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } /** * @return the value of title property */ public String getTitle() { if (title != null) { return title; } ValueBinding vb = getValueBinding("title"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } private String renderedOnUserRole = null; /** *

Set the value of the renderedOnUserRole property.

* * @param renderedOnUserRole */ public void setRenderedOnUserRole(String renderedOnUserRole) { this.renderedOnUserRole = renderedOnUserRole; } /** *

Return the value of the renderedOnUserRole property.

* * @return renderedOnUserRole */ public String getRenderedOnUserRole() { if (renderedOnUserRole != null) { return renderedOnUserRole; } ValueBinding vb = getValueBinding("renderedOnUserRole"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } private static final boolean DEFAULT_VISIBLE = true; private Boolean visible = null; /** *

Set the value of the visible property.

* * @param visible */ public void setVisible(boolean visible) { this.visible = Boolean.valueOf(visible); } /** *

Return the value of the visible property.

* * @return visible */ public boolean isVisible() { if (visible != null) { return visible.booleanValue(); } ValueBinding vb = getValueBinding("visible"); Boolean boolVal = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null; return boolVal != null ? boolVal.booleanValue() : DEFAULT_VISIBLE; } String getContentClass() { String contentClass = CSS_DEFAULT.PANEL_TAB_CONTENTS_CLASS; if (getTabPlacement().equalsIgnoreCase(TABPLACEMENT_BOTTOM)) { contentClass +=CSS_DEFAULT.PANEL_TAB_SET_DEFAULT_BOTTOM; } return Util.getQualifiedStyleClass(this, contentClass); } String getSpacerClass() { String spacerClass = CSS_DEFAULT.PANEL_TAB_SET_DEFAULT_TABSPACER; if (getTabPlacement().equalsIgnoreCase(TABPLACEMENT_BOTTOM)) { spacerClass +=CSS_DEFAULT.PANEL_TAB_SET_DEFAULT_BOTTOM; } return Util.getQualifiedStyleClass(this, spacerClass); } public String getClientId(FacesContext context) { String clientId = super.getClientId(context); if (super.getValue() == null) { clientId += UINamingContainer.getSeparatorChar(context) + "0"; } return clientId; } public String getClientIdForRootElement(FacesContext context){ return super.getClientId(context); } private Boolean partialSubmit; public boolean isPartialSubmit() { if (partialSubmit != null) { return partialSubmit.booleanValue(); } ValueBinding vb = getValueBinding("partialSubmit"); Boolean boolVal = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null; return boolVal != null ? boolVal.booleanValue() : true; } public void setPartialSubmit(boolean partialSubmit) { this.partialSubmit = new Boolean(partialSubmit); } private Boolean immediate; public boolean isImmediate() { if (immediate != null) { return immediate.booleanValue(); } ValueBinding vb = getValueBinding("immediate"); Boolean boolVal = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null; return boolVal != null ? boolVal.booleanValue() : false; } public void setImmediate(boolean immediate) { this.immediate = new Boolean(immediate); } public void encodeBegin(FacesContext context) throws IOException { super.encodeBegin(context); eventQueued = false; } private transient boolean eventQueued = false; public void queueEvent(FacesEvent event) { if (event instanceof TabChangeEvent) { eventQueued = true; if (isImmediate()) { event.setPhaseId(PhaseId.APPLY_REQUEST_VALUES); } else { event.setPhaseId(PhaseId.INVOKE_APPLICATION); } } super.queueEvent(event); } public boolean isKeyboardNavigationEnabled() { if (keyboardNavigationEnabled != null) { return keyboardNavigationEnabled.booleanValue(); } ValueBinding vb = getValueBinding("keyboardNavigationEnabled"); Boolean boolVal = vb != null ? (Boolean) vb.getValue(getFacesContext()) : null; return boolVal != null ? boolVal.booleanValue() : true; } public void setKeyboardNavigationEnabled(boolean keyboardNavigationEnabled) { this.keyboardNavigationEnabled = new Boolean(keyboardNavigationEnabled); } public void setTabindex(String tabindex) { this.tabindex = tabindex; } public String getTabindex() { if (tabindex != null) { return tabindex; } ValueBinding vb = getValueBinding("tabindex"); return vb != null ? (String) vb.getValue(getFacesContext()) : null; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy