JBoss.orgCommunity Documentation
The <rich:panelMenuGroup> component is used to define an expandable group of items inside the panel menu or other group.
Highly customizable look-and-feel
Different submission modes inside every group
Optional submissions on expand collapse groups
Custom and predefined icons supported
Support for disabling
Table 6.239. rich : panelMenuGroup attributes
Table 6.240. Component identification parameters
Name | Value |
---|---|
component-type | org.richfaces.PanelMenuGroup |
component-class | org.richfaces.component.html.HtmlPanelMenuGroup |
component-family | org.richfaces.PanelMenuGroup |
renderer-type | org.richfaces.PanelMenuGroupRenderer |
tag-class | org.richfaces.taglib.PanelMenuGroupTag |
To create the simplest variant on a page use the following syntax:
Example:
...
<rich:panelMenu>
<rich:panelMenuGroup label="Group1">
<!--Nested panelMenu components-->
</rich:panelMenuGroup>
</rich:panelMenu>
...
Example:
import org.richfaces.component.html.HtmlPanelMenuGroup;
...
HtmlPanelMenuGroup myPanelMenuGroup = new HtmlPanelMenuGroup();
...
All attributes except "label" are optional. The "label" attribute defines text to be represented.
Switching mode could be chosen with the "expandMode" attribute for the concrete panelMenu group.
The "expandMode" attribute could be used with three possible parameters:
ServerM
(default)
Regular form submission request is used.
Ajax
Ajax submission is used for switching.
None
"Action" and "actionListener" attributes are ignored. Items don't fire any submits itself. Behavior is fully defined by the components nested into items.
There are three icon-related attributes. The "iconExpanded" attribute defines an icon for an expanded state. The "iconCollapsed" attribute defines an icon for a collapsed state. The "iconDisabled" attribute defines an icon for a disabled state.
Default icons are shown on the picture below:
Here is an example:
Example:
...
<rich:panelMenu>
<rich:panelMenuGroup label="Group1" iconExpanded="disc" iconCollapsed="chevron">
<!--Nested panelMenu components-->
</rich:panelMenuGroup>
</rich:panelMenu>
...
As the result the pictures are shown below. The first one represents the collapsed state, the second one - expanded state:
It's also possible to define a path to the icon. Simple code is placed below.
...
<rich:panelMenu>
<rich:panelMenuGroup label="Group1" iconExpanded="\images\img1.png" iconCollapsed="\images\img2.png">
<!--Nested menu components-->
</rich:panelMenuGroup>
</rich:panelMenu>
...
Information about the "process" attribute usage you can find " Decide what to process " guide section.
In Java Script code for expanding/collapsing group element creation it's
necessary to use expand()
/collapse()
function.
Table 6.241. JavaScript API
Function | Description |
---|---|
expand() | Expand group element |
collapse() | Collapse group element |
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:panelMenuGroup> components at once:
Redefine the corresponding skin parameters
Add to your style sheets style classes used by a <rich:panelMenuGroup> component
Table 6.242. Skin parameters redefinition for a table element of the first level group
Skin parameters | CSS properties |
---|---|
headerWeightFont | font-weight |
generalFamilyFont | font-family |
headerSizeFont | font-size |
headerTextColor | color |
headerBackgroundColor | background-color |
Table 6.243. Skin parameters redefinition for a table element of second and next level groups
Skin parameters | CSS properties |
---|---|
headerWeightFont | font-weight |
headerFamilyFont | font-family |
headerSizeFont | font-size |
generalTextColor | color |
tableBorderColor | border-top-color |
Table 6.244. Skin parameters redefinition for wrapper div element of the first level group
Skin parameters | CSS properties |
---|---|
panelBorderColor | border-color |
Table 6.245. Skin parameters redefinition for a hovered group element
Skin parameters | CSS properties |
---|---|
additionalBackgroundColor | background-color |
Table 6.246. Skin parameters redefinition for a disabled group element
Skin parameters | CSS properties |
---|---|
tabDisabledTextColor | color |
On the screenshot there are classes names that define styles for component elements.
Table 6.247. Classes names that define an upper level groups
Class name | Description |
---|---|
rich-pmenu-top-group-self-icon | Defines styles for a top group icon |
rich-pmenu-top-group-self-label | Defines styles for a top group label |
Table 6.248. Classes names that define a second and lower level groups
Class name | Description |
---|---|
rich-pmenu-group | Defines styles for a group |
rich-pmenu-group-self-icon | Defines styles for a group icon |
rich-pmenu-group-self-label | Defines styles for a group label |
Table 6.249. Classes names that define a group state
Class name | Description |
---|---|
rich-pmenu-hovered-element | Defines styles for a hovered group element |
rich-pmenu-disabled-element | Defines styles for a disabled group element |
In order to redefine styles for all <rich:panelMenuGroup> 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-pmenu-disabled-element{
color: #87b9ff;
}
...
This is a result:
In the example a disabled element font style and color were changed.
Also it's possible to change styles of particular <rich:panelMenuGroup> component. In this case you should create own style classes and use them in corresponding <rich:panelMenuGroup> styleClass attributes. An example is placed below:
Example:
...
.myClass{
background-color: #ecf4fe;
}
...
The "hoverClass" attribute for <rich:panelMenuGroup> is defined as it's shown in the example below:
Example:
<rich:panelMenuGroup ... hoverClass="myClass"/>
This is a result:
As it could be seen on the picture above, the background color for hovered item was changed.
Some additional information about usage of component can be found on the component Live Demo page.