I need a TogglePanel/ToggleControl that perform an action when toggled. It also should act on a specific form region, so a4j region is used. According to documentation it should be possible to define action in rich:toggleControl, but didn't work in 3.1.0 (see http://jira.jboss.org/jira/browse/RF-1016).
So, as a workaround, I checked the snippet bellow this from 3.1.0 documentation on a4j:outputPanel:
<a4j:support .... reRender="mypanel"/> ... <a4j:outputPanel layout="none"> <h:panelGrid id="mypanel" rendered="#{not empty foo.bar}"> ... </h:panelGrid> </a4j:outputPanel>
<a4j:region selfRendered="true"> <a4j:outputPanel layout="none"> <h:panelGroup id="mypanel1" rendered="#{panelTest.toggled}"> <a4j:commandButton value="Toggle OFF" reRender="mypanel1,mypanel2" action="#{panelTest.setToggled(false)}"/> <f:verbatim> Toggle status: toggle is ON: showing mypanel1 </f:verbatim> </h:panelGroup> </a4j:outputPanel> <a4j:outputPanel layout="none"> <h:panelGroup id="mypanel2" rendered="#{!panelTest.toggled}"> <a4j:commandButton value="Toggle ON" reRender="mypanel1,mypanel2" action="#{panelTest.setToggled(true)}"/> <f:verbatim> Toggle status: toggle is OFF: showing mypanel2 </f:verbatim> </h:panelGroup> </a4j:outputPanel> </a4j:region>
... <h:panelGroup id="mypanel2"> <h:panelGroup rendered="#{!panelTest.toggled}"> ...