Ajax Action
a4j:ajax
a4j:commandButton
a4j:commandLink
a4j:actionListener
a4j:jsFunction
a4j:poll
a4j:push
a4j:param
Ajax Queue
a4j:queue
a4j:attachQueue
Ajax Output/Containers
a4j:outputPanel
a4j:status
a4j:region
a4j:mediaOutput
a4j:log
Validation
Client Side Validation
rich:graphValidator
rich:message
rich:messages
rich:notify
Data Iteration
a4j:repeat
rich:dataTable
rich:extendedDataTable
rich:collapsibleSubTable
rich:dataScroller
rich:list
rich:dataGrid
Trees
rich:tree
Tree Adaptors
Output/Panels
rich:chart
rich:panel
rich:togglePanel
rich:tabPanel
rich:collapsiblePanel
rich:accordion
rich:popupPanel
rich:progressBar
rich:tooltip
Menus
rich:panelMenu
rich:toolbar
rich:contextMenu
rich:dropDownMenu
Inputs
rich:autocomplete
rich:calendar
rich:editor
rich:inputNumberSlider
rich:inputNumberSpinner
rich:inplaceInput
rich:fileUpload
Selects
rich:inplaceSelect
rich:select
rich:orderingList
rich:pickList
Drag and Drop
Drag and Drop
Miscellaneous
Standard elements skinning
rich:placeholder
RichFaces functions
rich:focus
rich:componentControl
rich:hashParam
rich:hotKey
rich:jQuery

This is a more complex use-case of a wizard constructed using the rich:togglePanel component.

Main advantages of using this component for wizard creation:

  • You're not defining any navigation rules and not managing current page shown in your code. You're just inserting rich:togglePanelItem components where needed and switching between them. Also the current page state could be stored using activeItem.
  • You are not bound anywhere in controls to which panel you need to switch. Just the @next and @prev shortcuts are used. In that case you could easily add/remove additional panels without making changes in switching code. Though you still could use names in targetItem in case you really need to perform a specific switch.
  • Opposite to 3.3.x where toggle controls were encoded as links - in RF 4.x rich:toggleControl is just a behavior so any control can be used for switching.

Using rich:togglePanel for Wizard-like behaviour
First Name:
Last Name:
Company: