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); } }