code: private void findSelections(final Request request, final MenuSelectContainer selectContainer,
  			final List<MenuItemSelectable> selections) {
  
  		// Don't bother checking disabled or invisible containers
  		if (!selectContainer.isVisible()
  				|| (selectContainer instanceof Disableable && ((Disableable) selectContainer).isDisabled())) {
  			return;
  		}
  
  		// Get any selectable children of this container
  		List<MenuItemSelectable> selectableItems = getSelectableItems(selectContainer);
  
  		// Now add the selections (if in the request)
  		for (MenuItemSelectable selectableItem : selectableItems) {
  			// Check if the item is on the request
  			if (request.getParameter(selectableItem.getId() + ".selected") != null) {
  				selections.add(selectableItem);
  				if (SelectionMode.SINGLE.equals(selectContainer.getSelectionMode())) {
  					// Only select the first item at this level.
  					// We still need to check other levels of the menu for selection.
  					break;
  				}
  			}
  		}
  
  		// We need to recurse through and check for other selectable containers
  		for (MenuItem item : selectContainer.getMenuItems()) {
  			if (item instanceof MenuItemGroup) {
  				for (MenuItem groupItem : ((MenuItemGroup) item).getMenuItems()) {
  					if (groupItem instanceof MenuSelectContainer) {
  						findSelections(request, (MenuSelectContainer) groupItem, selections);
  					}
  				}
  			} else if (item instanceof MenuSelectContainer) {
  				findSelections(request, (MenuSelectContainer) item, selections);
  			}
  		}
  	}
docs: Finds the selected items in a menu for a request.
  
  @param request the request being handled
  @param selectContainer the menu or sub-menu
  @param selections the current set of selections