Menu
Menu is a highly customizable navigation/command component that supports dynamic and static positioning.
Source
<h:form>
<p:growl id="messages"/>
<h3>Plain Menu</h3>
<p:menu>
<p:submenu label="Ajax Menuitems">
<p:menuitem value="Save" actionListener="#{buttonBean.save}" update="messages" icon="ui-icon-disk"/>
<p:menuitem value="Update" actionListener="#{buttonBean.update}" update="messages" icon="ui-icon-arrowrefresh-1-w"/>
</p:submenu>
<p:submenu label="Non-Ajax Menuitem">
<p:menuitem value="Delete" actionListener="#{buttonBean.delete}" update="messages" ajax="false" icon="ui-icon-close"/>
</p:submenu>
<p:submenu label="Navigations">
<p:menuitem value="Home" url="http://www.primefaces.org" icon="ui-icon-home"/>
<p:menuitem value="TouchFaces" url="/touch" icon="ui-icon-star"/>
</p:submenu>
</p:menu>
<h3>Overlay</h3>
<p:commandButton id="dynaButton" value="Show" type="button"/>
<p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom">
<p:submenu label="Ajax Menuitems">
<p:menuitem value="Save" actionListener="#{buttonBean.save}" update="messages" icon="ui-icon-disk"/>
<p:menuitem value="Update" actionListener="#{buttonBean.update}" update="messages" icon="ui-icon-arrowrefresh-1-w"/>
</p:submenu>
<p:submenu label="Non-Ajax Menuitem">
<p:menuitem value="Delete" actionListener="#{buttonBean.delete}" update="messages" ajax="false" icon="ui-icon-close"/>
</p:submenu>
<p:submenu label="Navigations">
<p:menuitem value="Home" url="http://www.primefaces.org" icon="ui-icon-home"/>
<p:menuitem value="TouchFaces" url="/touch" icon="ui-icon-star"/>
</p:submenu>
</p:menu>
<h3>Programmatic Menu</h3>
<p:menu model="#{menuBean.model}"/>
</h:form>
public class MenuBean {
private MenuModel model;
public MenuBean() {
model = new DefaultMenuModel();
//First submenu
Submenu submenu = new Submenu();
submenu.setLabel("Dynamic Submenu 1");
MenuItem item = new MenuItem();
item.setValue("Dynamic Menuitem 1.1");
item.setUrl("#");
submenu.getChildren().add(item);
model.addSubmenu(submenu);
//Second submenu
submenu = new Submenu();
submenu.setLabel("Dynamic Submenu 2");
item = new MenuItem();
item.setValue("Dynamic Menuitem 2.1");
item.setUrl("#");
submenu.getChildren().add(item);
item = new MenuItem();
item.setValue("Dynamic Menuitem 2.2");
item.setUrl("#");
submenu.getChildren().add(item);
model.addSubmenu(submenu);
}
public MenuModel getModel() {
return model;
}
}