SelectManyCheckbox is used to choose multiple items displayed in an overlay.
Documentation<h:form>
<p:growl>
<p:autoUpdate />
</p:growl>
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="menu" value="Basic:" />
<p:selectCheckboxMenu id="menu" value="#{checkboxView.selectedCities}" label="Cities"
filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
<f:selectItems value="#{checkboxView.cities}" />
</p:selectCheckboxMenu>
<h:outputLabel for="multiple" value="Multiple:" />
<p:selectCheckboxMenu id="multiple" value="#{checkboxView.selectedCities2}" label="Cities" multiple="true"
filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
<p:ajax event="itemUnselect" listener="#{checkboxView.onItemUnselect}" />
<f:selectItems value="#{checkboxView.cities}" />
</p:selectCheckboxMenu>
<h:outputLabel for="grouped" value="Grouped:" />
<p:selectCheckboxMenu id="grouped" value="#{checkboxView.selectedCars}" label="Cars" multiple="true"
filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
<f:selectItems value="#{checkboxView.cars}" />
</p:selectCheckboxMenu>
</h:panelGrid>
<p:commandButton value="Submit" update="displayItems" oncomplete="PF('itemDialog').show()" style="margin-top:10px;" />
<p:dialog header="Selected Items" modal="true" showEffect="fade" hideEffect="fade" widgetVar="itemDialog" width="250">
<p:outputPanel id="displayItems">
<p:dataList value="#{checkboxView.selectedCities}" var="city" emptyMessage="No cities selected" style="margin-bottom: 10px;">
<f:facet name="header">
Basic
</f:facet>
#{city}
</p:dataList>
<p:dataList value="#{checkboxView.selectedCities2}" var="city" emptyMessage="No cities selected" style="margin-bottom: 10px;">
<f:facet name="header">
Multiple
</f:facet>
#{city}
</p:dataList>
<p:dataList value="#{checkboxView.selectedCars}" var="car" emptyMessage="No cars selected">
<f:facet name="header">
Grouped
</f:facet>
#{car}
</p:dataList>
</p:outputPanel>
</p:dialog>
</h:form>@Named
@RequestScoped
public class CheckboxView {
private String[] selectedConsoles;
private String[] selectedConsoles2;
private String[] selectedCities;
private String[] selectedCities2;
private List<String> cities;
private List<SelectItem> cars;
private String[] selectedCars;
@PostConstruct
public void init() {
cities = new ArrayList<String>();
cities.add("Miami");
cities.add("London");
cities.add("Paris");
cities.add("Istanbul");
cities.add("Berlin");
cities.add("Barcelona");
cities.add("Rome");
cities.add("Brasilia");
cities.add("Amsterdam");
cars = new ArrayList<>();
SelectItemGroup germanCars = new SelectItemGroup("German Cars");
germanCars.setSelectItems(new SelectItem[] {
new SelectItem("BMW", "BMW"),
new SelectItem("Mercedes", "Mercedes"),
new SelectItem("Volkswagen", "Volkswagen")
});
SelectItemGroup americanCars = new SelectItemGroup("American Cars");
americanCars.setSelectItems(new SelectItem[]{
new SelectItem("Chrysler", "Chrysler"),
new SelectItem("GM", "GM"),
new SelectItem("Ford", "Ford")
});
cars.add(germanCars);
cars.add(americanCars);
}
public String[] getSelectedConsoles() {
return selectedConsoles;
}
public void setSelectedConsoles(String[] selectedConsoles) {
this.selectedConsoles = selectedConsoles;
}
public String[] getSelectedCities() {
return selectedCities;
}
public void setSelectedCities(String[] selectedCities) {
this.selectedCities = selectedCities;
}
public String[] getSelectedCities2() {
return selectedCities2;
}
public void setSelectedCities2(String[] selectedCities2) {
this.selectedCities2 = selectedCities2;
}
public String[] getSelectedConsoles2() {
return selectedConsoles2;
}
public void setSelectedConsoles2(String[] selectedConsoles2) {
this.selectedConsoles2 = selectedConsoles2;
}
public List<String> getCities() {
return cities;
}
public List<SelectItem> getCars() {
return cars;
}
public void setCars(List<SelectItem> cars) {
this.cars = cars;
}
public String[] getSelectedCars() {
return selectedCars;
}
public void setSelectedCars(String[] selectedCars) {
this.selectedCars = selectedCars;
}
public void onItemUnselect(UnselectEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage msg = new FacesMessage();
msg.setSummary("Item unselected: " + event.getObject().toString());
msg.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, msg);
}
}