code: public void addModalButton(final ToolbarModalAction modalAction) {
  		final IButton button = new IButton();
  		button.setWidth(buttonSize);
  		button.setHeight(buttonSize);
  		button.setIconSize(buttonSize - WidgetLayout.toolbarStripHeight);
  		button.setIcon(modalAction.getIcon());
  		button.setActionType(SelectionType.CHECKBOX);
  		button.setRadioGroup(CONTROLLER_RADIO_GROUP);
  		button.addClickHandler(new ClickHandler() {
  
  			public void onClick(ClickEvent event) {
  				if (button.isSelected()) {
  					if (currentModalAction != null) {
  						currentModalAction.onDeselect(event);
  					}
  					modalAction.onSelect(event);
  					currentModalAction = modalAction;
  				} else {
  					modalAction.onDeselect(event);
  					currentModalAction = null;
  				}
  			}
  		});
  		button.setShowRollOver(false);
  		button.setShowFocused(true);
  		button.setTooltip(modalAction.getTooltip());
  		button.setDisabled(modalAction.isDisabled());
  
  		if (getMembers() != null && getMembers().length > 0) {
  			LayoutSpacer spacer = new LayoutSpacer();
  			spacer.setWidth(WidgetLayout.toolbarPadding);
  			super.addMember(spacer);
  		}
  		modalAction.addToolbarActionHandler(new ToolbarActionHandler() {
  
  			public void onToolbarActionDisabled(ToolbarActionDisabledEvent event) {
  				button.setDisabled(true);
  			}
  
  			public void onToolbarActionEnabled(ToolbarActionEnabledEvent event) {
  				button.setDisabled(false);
  			}
  		});
  		super.addMember(button);
  	}
docs: Add a new modal button (checkbox) to the toolbar. This kind of button is selected and deselected as the user
  clicks upon it. By selecting and deselecting, a certain state will be activate or deactivated, determined by the
  given <code>ModalAction</code>.
  
  @param modalAction
  The actual action that determines what should happen when the button is selected or deselected.