SelectManyCheckbox is used to choose multiple items from a collection.
Documentation<style type="text/css">
.ui-datalist ul {
padding: 0px 10px 0 20px;
margin: 5px 0;
}
.ui-datalist {
margin-bottom: 10px
}
.ui-noborder tr.ui-widget-content {
background: none;
}
</style>
<h:form>
<h3 style="margin-top:0px">Basic Layout</h3>
<p:selectManyCheckbox id="basic" value="#{checkboxView.selectedConsoles}">
<f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
<f:selectItem itemLabel="PS4" itemValue="PS4" />
<f:selectItem itemLabel="Wii U" itemValue="Wii U" />
</p:selectManyCheckbox>
<h3>Grid Layout</h3>
<p:selectManyCheckbox id="grid" value="#{checkboxView.selectedCities}" layout="grid" columns="3">
<f:selectItems value="#{checkboxView.cities}" var="city" itemLabel="#{city}" itemValue="#{city}" />
</p:selectManyCheckbox>
<h3>Responsive</h3>
<p:selectManyCheckbox id="grid2" value="#{checkboxView.selectedCities2}" layout="responsive" columns="3">
<f:selectItems value="#{checkboxView.cities}" var="city" itemLabel="#{city}" itemValue="#{city}" />
</p:selectManyCheckbox>
<h3>Custom Layout</h3>
<p:outputPanel id="customPanel" style="margin-bottom:20px">
<p:selectManyCheckbox id="custom" value="#{checkboxView.selectedConsoles2}" layout="custom">
<f:selectItem itemLabel="Xbox One" itemValue="Xbox One" />
<f:selectItem itemLabel="PS4" itemValue="PS4" />
<f:selectItem itemLabel="Wii U" itemValue="Wii U" />
</p:selectManyCheckbox>
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-4" style="text-align:center">
<h:outputLabel for="opt1" value="Xbox One" style="display:block;margin-bottom: 8px"/>
<p:checkbox id="opt1" for="custom" itemIndex="0" />
</div>
<div class="ui-grid-col-4" style="text-align:center">
<h:outputLabel for="opt2" value="PS4" style="display:block;margin-bottom: 8px"/>
<p:checkbox id="opt2" for="custom" itemIndex="1" />
</div>
<div class="ui-grid-col-4" style="text-align:center">
<h:outputLabel for="opt3" value="Wii U" style="display:block;margin-bottom: 8px"/>
<p:checkbox id="opt3" for="custom" itemIndex="2" />
</div>
</div>
</div>
</p:outputPanel>
<h3>Grouped</h3>
<p:selectManyCheckbox id="grid3" value="#{checkboxView.selectedCars}" layout="pageDirection" columns="1">
<f:selectItems value="#{checkboxView.cars}" var="car" itemLabel="#{car}" itemValue="#{car}" />
</p:selectManyCheckbox>
<p:separator />
<p:commandButton value="Submit" update="display" oncomplete="PF('dlg').show()" icon="pi pi-check" />
<p:dialog header="Values" modal="true" showEffect="clip" widgetVar="dlg" resizable="false">
<p:outputPanel id="display">
<p:dataList value="#{checkboxView.selectedConsoles}" var="console">
<f:facet name="header">
Basic
</f:facet>
#{console}
</p:dataList>
<p:dataList value="#{checkboxView.selectedCities}" var="city">
<f:facet name="header">
Grid
</f:facet>
#{city}
</p:dataList>
<p:dataList value="#{checkboxView.selectedCities2}" var="city">
<f:facet name="header">
Grid
</f:facet>
#{city}
</p:dataList>
<p:dataList value="#{checkboxView.selectedConsoles2}" var="console">
<f:facet name="header">
Custom
</f:facet>
#{console}
</p:dataList>
<p:dataList value="#{checkboxView.selectedCars}" var="car">
<f:facet name="header">
Cars
</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);
}
}