private void collapseOtherTopGroups() { UIComponent topGroup = getTopGroup(); for (UIComponent child : getPanelMenu().getChildren()) { if (!(child instanceof AbstractPanelMenuGroup)) { continue; } AbstractPanelMenuGroup group = (AbstractPanelMenuGroup) child; if (group == topGroup) { continue; } group.setSubmittedExpanded(null); group.setExpanded(false); } }
public void validate(FacesContext context) { if (context == null) { throw new NullPointerException(); } // Submitted value == null means "the component was not submitted at all". Boolean expanded = getSubmittedExpanded(); if (expanded == null) { return; } Boolean previous = (Boolean) getValue(); setExpanded(expanded); setSubmittedExpanded(null); if (previous != null && !previous.equals(expanded)) { if (expanded && getMode() == PanelMenuMode.server && getPanelMenu().isExpandSingle()) { collapseOtherTopGroups(); } queueEvent(new PanelToggleEvent(this, previous)); } }