code: protected boolean requestSetSelection(boolean selected) {
  		boolean previousState = isSelected();
  
  		if (previousState != selected) {
  			this.selected = onSelection(selected);
  			if (logger.isDebugEnabled()) {
  				logger.debug("Toggle command selection returned '" + this.selected + "'");
  			}
  		}
  
  		// we must always update toggle buttons
  		Iterator it = buttonIterator();
  		if (logger.isDebugEnabled()) {
  			logger.debug("Updating all attached toggle buttons to '" + isSelected() + "'");
  		}
  		while (it.hasNext()) {
  			AbstractButton button = (AbstractButton)it.next();
  			button.setSelected(isSelected());
  		}
  
  		if (previousState != isSelected()) {
  			if (logger.isDebugEnabled()) {
  				logger.debug("Selection changed; firing property change event");
  			}
  			firePropertyChange(SELECTED_PROPERTY, previousState, isSelected());
  		}
  
  		return isSelected();
  	}
docs: Handles the switching of the selected state. All attached buttons are updated.
  
  @param selected select state to set.
  @return the select state afterwards.