Menu - PanelMenu
PanelMenu is a hybrid of accordion-tree components.
Documentation
<h:form>
<p:growl>
<p:autoUpdate />
</p:growl>
<p:panelMenu style="width:300px">
<p:submenu label="Ajax Menuitems">
<p:menuitem value="Save" action="#{menuView.save}" icon="pi pi-save" />
<p:menuitem value="Update" action="#{menuView.update}" icon="pi pi-refresh" />
</p:submenu>
<p:submenu label="Non-Ajax Menuitem">
<p:menuitem value="Delete" action="#{menuView.delete}" ajax="false" icon="pi pi-times"/>
</p:submenu>
<p:separator />
<p:submenu label="Navigations" >
<p:submenu label="Links" icon="pi pi-home">
<p:submenu label="PrimeFaces" icon="pi pi-briefcase">
<p:menuitem value="Home" url="http://www.primefaces.org" icon="pi pi-home" />
<p:menuitem value="Docs" url="http://www.primefaces.org/documentation" icon="pi pi-file" />
<p:menuitem value="Download" url="http://www.primefaces.org/downloads" icon="pi pi-arrow-down" />
<p:menuitem value="Support" url="http://www.primefaces.org/support" icon="pi pi-briefcase" />
</p:submenu>
</p:submenu>
<p:menuitem value="Mobile" icon="pi pi-mobile" />
</p:submenu>
</p:panelMenu>
</h:form>
@Named
@RequestScoped
public class MenuView {
private MenuModel model;
@PostConstruct
public void init() {
model = new DefaultMenuModel();
//First submenu
DefaultSubMenu firstSubmenu = DefaultSubMenu.builder()
.label("Dynamic Submenu")
.build();
DefaultMenuItem item = DefaultMenuItem.builder()
.value("External")
.url("http://www.primefaces.org")
.icon("pi pi-home")
.build();
firstSubmenu.getElements().add(item);
model.getElements().add(firstSubmenu);
//Second submenu
DefaultSubMenu secondSubmenu = DefaultSubMenu.builder()
.label("Dynamic Actions")
.build();
item = DefaultMenuItem.builder()
.value("Save")
.icon("pi pi-save")
.command("#{menuView.save}")
.update("messages")
.build();
secondSubmenu.getElements().add(item);
item = DefaultMenuItem.builder()
.value("Delete")
.icon("pi pi-times")
.command("#{menuView.delete}")
.ajax(false)
.build();
secondSubmenu.getElements().add(item);
item = DefaultMenuItem.builder()
.value("Redirect")
.icon("pi pi-search")
.command("#{menuView.redirect}")
.build();
secondSubmenu.getElements().add(item);
model.getElements().add(secondSubmenu);
}
public MenuModel getModel() {
return model;
}
public void save() {
addMessage("Success", "Data saved");
}
public void update() {
addMessage("Success", "Data updated");
}
public void delete() {
addMessage("Success", "Data deleted");
}
public void addMessage(String summary, String detail) {
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, detail);
FacesContext.getCurrentInstance().addMessage(null, message);
}
}