A skinnable panel that is rendered as a bordered rectangle with or without a header.
Highly customizable look and feel
Support for any content inside
Header adding feature
Table 6.328. rich : panel attributes
Attribute Name | Description |
---|---|
binding | The attribute takes a value-binding expression for a component property of a backing bean |
bodyClass | A class that defines a style for a panel content |
header | Label text appears on a panel header |
headerClass | A class that defines a style for a panel header |
id | Every component may have a unique id that is automatically created if omitted |
onclick | HTML: a script expression; a pointer button is clicked |
ondblclick | HTML: a script expression; a pointer button is double-clicked |
onkeydown | HTML: a script expression; a key is pressed down |
onkeypress | HTML: a script expression; a key is pressed and released |
onkeyup | HTML: a script expression; a key is released |
onmousedown | HTML: script expression; a pointer button is pressed down |
onmousemove | HTML: a script expression; a pointer is moved within |
onmouseout | HTML: a script expression; a pointer is moved away |
onmouseover | HTML: a script expression; a pointer is moved onto |
onmouseup | HTML: script expression; a pointer button is released |
rendered | If "false", this component is not rendered |
style | CSS style(s) is/are to be applied when this component is rendered |
styleClass | Corresponds to the HTML class attribute |
Table 6.329. Component identification parameters
Name | Value |
---|---|
component-type | org.richfaces.panel |
component-class | org.richfaces.component.html.HtmlPanel |
component-family | org.richfaces.panel |
renderer-type | org.richfaces.PanelRenderer |
tag-class | org.richfaces.taglib.PanelTag |
Here is a simple example as it could be used on a page:
Example:
...
<rich:panel header="Panel Header">
...
<!--Any Content inside-->
...
</rich:panel>
...
Example:
import org.richfaces.component.html.HtmlPanel;
...
HtmlPanel myPanel = new HtmlPanel();
...
The "header" attribute defines text to be represented. If you can use the "header" facet, you can even not use the "header" attribute.
Example:
...
<rich:panel>
<f:facet name="header">
<h:graphicImage value="/images/img1.png"/>
</f:facet>
...
<!--Any Content inside-->
...
</rich:panel>
...
<rich:panel> components are used to group page content pieces on similarly formatted rectangular panels.
Example:
...
<rich:panel>
...
</rich:panel>
...
It's generating on a page in the following way:
The example shows that similar rectangular areas are formed with a particular style.
When creating a panel with a header element, one more <div> element is added with content defined for a header.
Example:
...
<rich:panel>
<f:facet name="header">
<h:outputText value="Olympus EVOLT E-500 "/>
</f:facet>
...
</rich:panel>
...
It's displayed on a page in the following way:
As it has been mentioned above, the component is mostly used for a page style definition, hence the main attributes are style ones.
"styleClass" and "style"
"headerClass" and "headerStyle"
"bodyClass" and "bodyStyle"
Moreover, to add e.g. some JavaScript effects, events defined on it are used.
"onmouseover"
"onclick"
"onmouseout"
etc.
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:panel> components at once:
Redefine the corresponding skin parameters
Add to your style sheets style classes used by a <rich:panel> component
Table 6.330. Skin parameters redefinition for a whole component
Skin parameters | CSS properties |
---|---|
generalBackgroundColor | background-color |
panelBorderColor | border-color |
Table 6.331. Skin parameters redefinition for a header element
Skin parameters | CSS properties |
---|---|
headerBackgroundColor | background-color |
headerBackgroundColor | border-color |
headerSizeFont | font-size |
headerTextColor | color |
headerWeightFont | font-weight |
headerFamilyFont | font-family |
Table 6.332. Skin parameters redefinition for a body element
Skin parameters | CSS properties |
---|---|
generalSizeFont | font-size |
generalTextColor | color |
generalFamilyFont | font-family |
On the screenshot there are classes names that define styles for component elements.
Table 6.333. Classes names that define a component appearance
Class name | Class description |
---|---|
rich-panel | Defines styles for a wrapper <div> element of a component |
rich-panel-header | Defines styles for a header element |
rich-panel-body | Defines styles for a body element |
In order to redefine styles for all <rich:panel> components on a page using CSS, it's enough to create classes with the same names (possible classes could be found in the table above) and define necessary properties in them. An example is placed below:
Example:
...
.rich-panel-body{
background-color: #ebf3fd;
}
...
This is a result:
In the example a body background color was changed.
Also it’s possible to change styles of particular <rich:panel> component. In this case you should create own style classes and use them in corresponding <rich:panel> styleClass attributes. An example is placed below:
Example:
...
.myClass{
text-align: justify;
}
...
The "bodyClass" attribute for <rich:panel> is defined as it’s shown in the example below:
Example:
<h:panel... bodyClass="myClass"/>
This is a result:
As it could be seen on the picture above, text align of body was changed.
Here you can see the example of <rich:panel> usage and sources for the given example.