ICEfaces ACE Components
Tag tabSet


The TabSet component is a container for its TabPane children, each of which may contain any arbitrary components. Only one TabPane component is currently active, and its contents shown, at any given time. The TabSet may operate in a server-side mode, where only the current TabPane's contents exist in the browser; or in client-side mode, where every TabPane's contents exist in the browser, and no server round-trip is necessary to change TabPanes. The entire TabSet may exist within a single parent form, so that validation will apply to all of its contents, and so that validation may enforce remaining on the current TabPane if the user attempts to change the selected TabPane while other input components are in an invalid state. Also, a TabSet may exist outside of any form, perhaps with each TabPane containing their own child form, so that validation may be more limited in scope. In this case, a TabSetProxy may be used, in conjunction with the TabSet, so that the TabSetProxy may be placed in a form, for communicating with the server, removing the need for the TabSet itself to be in a form. When changing the selected TabPane, the TabSet may use application configurable animations to accentuate the transition from the previously selected TabPane to the newly selected TabPane. The label portion of the TabPanes may be shown on the bottom, top, left, or right of the TabSet. To support the capability of dynamically adding and removing TabPane(s) without updating the entire TabSet, there is a side-effect where any iframe(s) within them can get loaded twice in rapid succession, when first shown or subsequently updated. To eliminate the redundant load by deferring the loading until the TabSet is ready, do not use a src attribute on the iframe(s), but rather set the org.icefaces.ace.component.tabset.deferred_src attribute to what src would have been.

For more information, see the TabSet Wiki Documentation.


Client Events
NameDescriptionSupported Classes for ArgumentDefault Event Scopes
clientSideTabChangeFired when the tabSet has clientSide=true, and a tab change occurs. Use onstart="return false;" to limit javascript execution.javax.faces.event.AjaxBehaviorEventexecute=@none render=@none
serverSideTabChangeFired when the tabSet has clientSide=false, and a tab change occurs (default event).javax.faces.event.AjaxBehaviorEventexecute=@all render=@all
Client events can be used with Client Behaviors and the ace:ajax tag.


Tag Information
Tag Classorg.icefaces.ace.component.tabset.TabSetTag
TagExtraInfo ClassNone
Body ContentJSP
Display NameNone

Attributes
NameRequiredRequest-timeTypeDescription
bindingnotruejavax.el.ValueExpressionUsing an EL expression, bind the component reference to a bean property, so that the component may be accessed in the bean.
cancelOnInvalidnotrueboolean

Controls how input component validation affects changing the selected TabPane. When false, then irrespective of immediate, selectedIndex will be set and tabChangeListener will be invoked in APPLY_REQUEST_VALUES phase. PROCESS_VALIDATIONS phase will still execute and create any FacesMessage(s), but won't interfere with the changing TabPane selection.

Otherwise, when true, then it depends on immediate. When immediate is true, selectedIndex will be set and tabChangeListener will be invoked in APPLY_REQUEST_VALUES phase, but PROCESS_VALIDATIONS phase will not execute, so no FacesMessage(s) can be created. When immediate is false, then selectedIndex will be set in UPDATE_MODEL and tabChangeListener will be invoked in INVOKE_APPLICATION, and so any validation error in PROCESS_VALIDATIONS will stop the changing of the selected TabPane. Default = 'true'.

clientSidenotruebooleanThis component supports both client and server side tab change models. When clientSide is true, then the contents of all TabPanes get rendered on the client and clientSideTabChange will fire when changing the selected TabPane. Otherwise, in server side mode, typically only the selected TabPane contents will get rendered to the client, depending on the TabPane cache property, and serverSideTabChange will fire or the form will be submitted, so that the tabChangeListener will be invoked, and the newly selected TabPane contents may be sent to the browser. Default = 'false'.
disablednotruebooleanIf true then all tabs except the active one will be disabled and can not be selected.
idnotruejava.lang.StringThe component identifier for this component. This value must be unique within the closest parent component that is a naming container.
immediatenotruebooleanIf true (and/or cancelOnInvalid is false) then tabChangeListener will be invoked in APPLY_REQUEST_VALUES phase, otherwise INVOKE_APPLICATION phase. Default = 'false'.
orientationnotruejava.lang.StringWhere the clickable TabPane labels are shown. Valid values are bottom, top, left and right. Default = 'top'.
prependIdnotruebooleanFlag indicating whether or not this component should prepend its id to its descendent's id during the clientId generation process. If this flag is not set, the default value is false. Default = 'false'.
renderednotruebooleanReturn true if this component (and its children) should be rendered during the Render Response phase of the request processing lifecycle. Default = 'true'.
scrollableTabsnotruebooleanIf true then if the tabs in the tabSet don't fit in the available width in a single row of tabs, instead of rendering the rest of the tabs in the next row, they all will be rendered in the same row, and two arrow buttons, one pointing left and the other pointing right, will be rendered at the ends of the row of tabs, making it possible to scroll through all the tabs in the tabSet. This functionality only applies to the 'top' and 'bottom' orientations.
selectedIndexnotrueintThe index of the current selected tab. Default = '0'.
showEffectnotruejava.lang.StringThe effect when showing the contents of a tab after selecting it.
showEffectLengthnotrueintThe duration of the show effect in milliseconds. The default value varies depending on the effect.
stylenotruejava.lang.StringCustom inline CSS styles to use for this component. These styles are generally applied to the root DOM element of the component. This is intended for per-component basic style customizations. Note that due to browser CSS precedence rules, CSS rendered on a DOM element will take precedence over the external stylesheets used to provide the ThemeRoller theme on this component. If the CSS properties applied with this attribute do not affect the DOM element you want to style, you may need to create a custom theme styleClass for the theme CSS class that targets the particular DOM elements you wish to customize.
styleClassnotruejava.lang.StringCustom CSS style class(es) to use for this component. These style classes can be defined in your page or in a theme CSS file.
tabChangeListenernotruejavax.el.MethodExpressionMethodExpression representing a method that will be invoked when the selected TabPane has changed. The expression must evaluate to a public method that takes a ValueChangeEvent parameter, with a return type of void.

Variables
No Variables Defined.


Output Generated by Tag Library Documentation Generator. Java, JSP, and JavaServer Pages are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries. Copyright 2002-4 Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054, U.S.A. All Rights Reserved.