code: private RibbonColumn getButton(ButtonAction action, ButtonLayoutStyle buttonButtonLayoutStyle) {
  		RibbonColumn column;
  		if (action instanceof ToolbarButtonCanvas) { 
  			column = new RibbonColumnCanvas((ToolbarButtonCanvas) action);
  		} else {
  			// if no layout was given, use the one given by the group
  			if (null == action.getButtonLayoutStyle()) {
  				action.setButtonLayoutStyle(buttonButtonLayoutStyle);
  			}
  			RibbonButton button = new RibbonButton(action, 16, TitleAlignment.RIGHT);
  			if (ButtonLayoutStyle.ICON_AND_TITLE.equals(buttonButtonLayoutStyle)) {
  				button = new RibbonButton(action, GuwLayout.DropDown.ribbonBarDropDownButtonIconSize, 
  						TitleAlignment.RIGHT);
  				button.setHeight(GuwLayout.DropDown.ribbonBarDropDownButtonIconSize + 4);
  			} else if (ButtonLayoutStyle.ICON_TITLE_AND_DESCRIPTION.equals(buttonButtonLayoutStyle)) {
  				button = new RibbonButton(action, GuwLayout.DropDown.ribbonBarDropDownButtonDescriptionIconSize, 
  						TitleAlignment.RIGHT);
  				button.setHeight(GuwLayout.DropDown.ribbonBarDropDownButtonDescriptionIconSize + 4);
  			}
  			button.setOverflow(Overflow.VISIBLE);
  			button.setWidth100();
  			button.setMargin(2);
  			button.addClickHandler(new ClickHandler() {
  				
  				public void onClick(
  						com.smartgwt.client.widgets.events.ClickEvent event) {
  					hide();
  				}
  				
  			});
  			column = button;
  		}
  		return column;
  	}
docs: Converts the given action into a {@link RibbonColumn}.
  
  @param action ButtonAction
  @param buttonButtonLayoutStyle the layout of the group. Is used if the action does not contain one itself.
  @return column RibbonColumn containing the button.