### Create new RichFaces Documentation Jira issue

Summary
255 characters left
Description
Environment
This will launch the RichFaces Jira page - to complete your feedback please login if needed, and submit the Jira.

JBoss.org Community Documentation

- Prev
- Next

## 6.74. < rich:panelBar >

### 6.74.1. Description

panelBar is used for grouping any content which is loaded on the client side and appears as groups divided on child panels after the header is clicked.

Figure 6.215. <rich:panelBar> with content inside

### 6.74.2. Key Features

- Skinnable slide panel and child items

- Groups any content inside each panel

Table 6.415. rich : panelBar attributes

Attribute Name | Description
--- | ---
binding | The attribute takes a value-binding expression for a component property of a backing bean
contentClass | The component content style class
contentStyle | The component content style
headerClass | The component header style class
headerClassActive | The component header style class active
headerStyle | The component header style
headerStyleActive | The component header style active
height | The height of the slide panel. Might be defined as pixels or as percentage. Default value is "100%".
id | Every component may have a unique id that is automatically created if omitted
immediate | A flag indicating that this component value must be converted and validated immediately (that is, during Apply Request Values phase), rather than waiting until a Process Validations phase
onclick | HTML: script expression; before on the header is clicked
onitemchange | HTML: script expression; a item is changed
onmousemove | HTML: a script expression; a pointer is moved within
onmouseout | HTML: a script expression; a pointer is moved away
onmouseover | HTML: script expression; a pointer was moved onto.
rendered | If "false", this component is not rendered
selectedPanel | Attribure defines name of selected item
style | CSS style(s) is/are to be applied when this component is rendered
styleClass | Corresponds to the HTML class attribute.
value | The current value of this component
valueChangeListener | Listener for value changes
width | The width of the slide panel. Might be defined as pixels or as percentage. Default value is "100%".

Table 6.416. Component identification parameters

Name | Value
--- | ---
component-type | org.richfaces.PanelBar
component-class | org.richfaces.component.html.HtmlPanelBar
component-family | org.richfaces.PanelBar
renderer-type | org.richfaces.PanelBarRenderer
tag-class | org.richfaces.taglib.PanelBarTag

### 6.74.3. Creating the Component with a Page Tag

To create the simplest variant on a page use the following syntax:

Example:

    ...

        <rich:panelBar>

            <!--//... -->

            <rich:panelBarItem label="Canon">

                ...

            </rich:panelBarItem>

            <rich:panelBarItem label="Nikon">

                ...

            </rich:panelBarItem>

        </rich:panelBar>

    ...

### 6.74.4. Creating the Component Dynamically Using Java

Example:

    import org.richfaces.component.html.HtmlPanelBar;

    ...

    HtmlPanelBar myBar = new HtmlPanelBar();

    ...

### 6.74.5. Details of Usage

As it was mentioned above, panelBar is used for grouping any content on the client, thus its customization deals only with specification of sizes and styles for rendering.

"width" and "height" (both are 100% on default) attributes stand apart.

Style attributes are described further.

panelBar could contain any number of child panelBarItem components inside, which content is uploaded onto the client and headers are controls to open the corresponding child element.

The "label" attribute is a generic attribute. The "label" attribute provides an association between a component, and the message that the component (indirectly) produced. This attribute defines the parameters of localized error and informational messages that occur as a result of conversion, validation, or other application actions during the request processing lifecycle. With the help of this attribute you can replace the last parameter substitution token shown in the messages. For example, {1} for `"DoubleRangeValidator.MAXIMUM"`, {2} for `"ShortConverter.SHORT"`.

### 6.74.6. Look-and-Feel Customization

For skinnability implementation, the components use a style class redefinition method. Default style classes are mapped on skin parameters.

There are two ways to redefine the appearance of all <rich:panelBar> components at once:

- Redefine the corresponding skin parameters

- Add to your style sheets style classes used by a <rich:panelBar> component

### 6.74.7. Skin Parameters Redefinition

Table 6.417. Skin parameter redefinition for a whole component

Skin parameter | CSS properties
--- | ---
headerBackgroundColor | border-color

### 6.74.8. Definition of Custom Style Classes

There is one predefined class for the <rich:panelBar> , which is applicable to a whole component, specifying padding, borders, and etc.

Figure 6.216. Style classes

Table 6.418. Class name that define a component appearance

Class name | Class description
--- | ---
rich-panelbar | Defines styles for a wrapper <div> element of a component

Other classes responsible for elements rendering are described for child <rich:panelBarItem> elements and could be found in the components chapters.

Table 6.419. Style component classes

A class attribute | A component element defined by an attribute
--- | ---
styleClass | Applicable to a whole component (together with headers)
headerClass | Applicable to a header element
contentClass | Applicable to a content

In order to redefine styles for all <rich:panelBar> components on a page using CSS, it's enough to create classes with the same names (possible classes could be found in the tables above) and define necessary properties in them.

Example:

    ...

    .rich-panelbar{

            font-style: italic;

    }

    ...

This is a result:

Figure 6.217. Redefinition styles with predefined classes

In the example header and content font style was changed.

Also it's possible to change styles of particular <rich:panelBar> component. In this case you should create own style classes and use them in corresponding <rich:panelBar> styleClass attributes. An example is placed below:

Example:

    ...

    .myClass{

           font-family: Tahoma;

    }

    ...

The "contentClass" attribute for <rich:panelBar> is defined as it's shown in the example below:

Example:

    <rich:panelBar ... contentClass="myClass"/>

This is a result:

Figure 6.218. Redefinition styles with own classes and styleClass attributes

As it could be seen on the picture above, the font family for content were changed.

### 6.74.9. Relevant Resources Links

On the component LiveDemo page you can see the example of <rich:panelBar> usage and sources for the given example.

- Prev6.73. < rich:panel >
- Top of page
- Front page
- Next6.75. < rich:panelBarItem >