Class RibbonButton

All Implemented Interfaces:
HasAttachHandlers, HasHandlers, EventListener, HasVisibility, IsWidget, LogicalStructure, HasClearHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasIconClickHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasRuleContextChangedHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasTitleHoverHandlers, HasVisibilityChangedHandlers, HasMenuIconClickHandlers
Direct Known Subclasses:
IconButton, RibbonMenuButton

public class RibbonButton extends Button implements HasMenuIconClickHandlers
A Button subclass that displays an icon, title and optional menuIcon and is capable of horizontal and vertical orientation.
  • Constructor Details

    • RibbonButton

      public RibbonButton()
    • RibbonButton

      public RibbonButton(JavaScriptObject jsObj)
    • RibbonButton

      public RibbonButton(String title)
  • Method Details

    • getOrCreateRef

      public static RibbonButton getOrCreateRef(JavaScriptObject jsObj)
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, Canvas defaults)
      Changes the defaults for Canvas AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • changeAutoChildDefaults

      public static void changeAutoChildDefaults(String autoChildName, FormItem defaults)
      Changes the defaults for FormItem AutoChildren named autoChildName.
      Parameters:
      autoChildName - name of an AutoChild to customize the defaults for.
      defaults - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties. For usage tips on this param, see SGWTProperties.
      See Also:
    • create

      protected JavaScriptObject create()
      Overrides:
      create in class Button
    • setAlign

      public RibbonButton setAlign(Alignment align)
      Horizontal alignment of this button's content. If unset, vertical buttons are center-aligned and horizontal buttons left-aligned by default.
      Overrides:
      setAlign in class Button
      Parameters:
      align - New align value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getAlign

      public Alignment getAlign()
      Horizontal alignment of this button's content. If unset, vertical buttons are center-aligned and horizontal buttons left-aligned by default.
      Overrides:
      getAlign in class Button
      Returns:
      Current align value. Default value is null
      See Also:
    • setBaseStyle

      public RibbonButton setBaseStyle(String baseStyle)
      Default stateful CSS class for this button. When iconStyle or menuIconStyle are unset, they will default to the value of this attribute, suffixed with H/VIcon or H/VMenuIcon respectively, depending on the value of vertical.
      Overrides:
      setBaseStyle in class Button
      Parameters:
      baseStyle - New baseStyle value. Default value is "ribbonButton"
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getBaseStyle

      public String getBaseStyle()
      Default stateful CSS class for this button. When iconStyle or menuIconStyle are unset, they will default to the value of this attribute, suffixed with H/VIcon or H/VMenuIcon respectively, depending on the value of vertical.
      Overrides:
      getBaseStyle in class Button
      Returns:
      Current baseStyle value. Default value is "ribbonButton"
      See Also:
    • setEditProxyConstructor

      public RibbonButton setEditProxyConstructor(String editProxyConstructor) throws IllegalStateException
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      setEditProxyConstructor in class StatefulCanvas
      Parameters:
      editProxyConstructor - New editProxyConstructor value. Default value is "RibbonButtonEditProxy"
      Returns:
      RibbonButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getEditProxyConstructor

      public String getEditProxyConstructor()
      Default class used to construct the EditProxy for this component when the component is first placed into edit mode.
      Overrides:
      getEditProxyConstructor in class StatefulCanvas
      Returns:
      Current editProxyConstructor value. Default value is "RibbonButtonEditProxy"
      See Also:
    • setIcon

      public RibbonButton setIcon(String icon)
      Icon to show to the left of or above the title, according to the button's orientation.

      When specifying vertical = true, this icon will be stretched to the largeIconSize unless a largeIcon is specified.

      If this method is called after the component has been drawn/initialized: Sets a new Icon for this button after initialization.

      Overrides:
      setIcon in class Button
      Parameters:
      icon - URL of new icon. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getIcon

      public String getIcon()
      Icon to show to the left of or above the title, according to the button's orientation.

      When specifying vertical = true, this icon will be stretched to the largeIconSize unless a largeIcon is specified.

      Overrides:
      getIcon in class Button
      Returns:
      Returns the URL for the current icon. Default value is null
      See Also:
    • setIconAlign

      public RibbonButton setIconAlign(String iconAlign)
      This attribute is not supported in this subclass. However, RTL mode is still supported.
      Overrides:
      setIconAlign in class Button
      Parameters:
      iconAlign - New iconAlign value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getIconAlign

      public String getIconAlign()
      This attribute is not supported in this subclass. However, RTL mode is still supported.
      Overrides:
      getIconAlign in class Button
      Returns:
      Current iconAlign value. Default value is null
      See Also:
    • setIconOrientation

      public RibbonButton setIconOrientation(String iconOrientation)
      This attribute is not supported in this subclass. However, RTL mode is still supported.
      Overrides:
      setIconOrientation in class Button
      Parameters:
      iconOrientation - New iconOrientation value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getIconOrientation

      public String getIconOrientation()
      This attribute is not supported in this subclass. However, RTL mode is still supported.
      Overrides:
      getIconOrientation in class Button
      Returns:
      Current iconOrientation value. Default value is null
      See Also:
    • setIconStyle

      public RibbonButton setIconStyle(String iconStyle)
      Default CSS class for this button's icon. If unset, defaults to baseStyle suffixed with VIcon or HIcon depending on the value of vertical.
      Overrides:
      setIconStyle in class Button
      Parameters:
      iconStyle - New iconStyle value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getIconStyle

      public String getIconStyle()
      Default CSS class for this button's icon. If unset, defaults to baseStyle suffixed with VIcon or HIcon depending on the value of vertical.
      Overrides:
      getIconStyle in class Button
      Returns:
      Current iconStyle value. Default value is null
      See Also:
    • setLargeIcon

      public RibbonButton setLargeIcon(String largeIcon)
      Icon to show above the title when Orientation is "vertical".

      If a largeIcon is not specified, the normal icon will be stretched to the largeIconSize.

      If this method is called after the component has been drawn/initialized: Sets a new Large-Icon for vertical buttons after initialization - synonymous with setIcon for normal horizontal buttons.

      Parameters:
      largeIcon - New largeIcon value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getLargeIcon

      public String getLargeIcon()
      Icon to show above the title when Orientation is "vertical".

      If a largeIcon is not specified, the normal icon will be stretched to the largeIconSize.

      Returns:
      Current largeIcon value. Default value is null
      See Also:
    • setLargeIconSize

      public RibbonButton setLargeIconSize(int largeIconSize)
      The size of the large icon for this button. If largeIcon is not specified, the normal icon will be stretched to this size.
      Parameters:
      largeIconSize - New largeIconSize value. Default value is 32
      Returns:
      RibbonButton instance, for chaining setter calls
    • getLargeIconSize

      public int getLargeIconSize()
      The size of the large icon for this button. If largeIcon is not specified, the normal icon will be stretched to this size.
      Returns:
      Current largeIconSize value. Default value is 32
    • setMenu

      public RibbonButton setMenu(Menu menu)
      The menu to show when the menu-icon is clicked.

      For a menu button with no menu (menu: null) the up/down arrow image can be suppressed by setting showMenuIcon: false.

      If this method is called after the component has been drawn/initialized: The menu to show when the menu-icon is clicked.

      For a menu button with no menu (menu: null) the up/down arrow image can be suppressed by setting showMenuIcon: false. Note that showMenuIcon is updated automatically by calls to setMenu().

      Parameters:
      menu - a menu to assign to this button. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
    • getMenu

      public Menu getMenu()
      The menu to show when the menu-icon is clicked.

      For a menu button with no menu (menu: null) the up/down arrow image can be suppressed by setting showMenuIcon: false.

      Returns:
      Current menu value. Default value is null
    • setMenuAlign

      public RibbonButton setMenuAlign(Alignment menuAlign) throws IllegalStateException
      The horizontal alignment of this button's menu, in relation to the button. When unset, default behavior is to align the right edges of button and menu if the page is in RTL mode, and the left edges otherwise.
      Parameters:
      menuAlign - New menuAlign value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getMenuAlign

      public Alignment getMenuAlign()
      The horizontal alignment of this button's menu, in relation to the button. When unset, default behavior is to align the right edges of button and menu if the page is in RTL mode, and the left edges otherwise.
      Returns:
      Current menuAlign value. Default value is null
    • setMenuAnimationEffect

      public RibbonButton setMenuAnimationEffect(String menuAnimationEffect)
      Allows you to specify an animation effect to apply to the menu when it is being shown. Valid options are "none" (no animation), "fade", "slide" and "wipe". If unspecified falls through to menu.showAnimationEffect

      Note : This is an advanced setting

      Parameters:
      menuAnimationEffect - New menuAnimationEffect value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
    • getMenuAnimationEffect

      public String getMenuAnimationEffect()
      Allows you to specify an animation effect to apply to the menu when it is being shown. Valid options are "none" (no animation), "fade", "slide" and "wipe". If unspecified falls through to menu.showAnimationEffect
      Returns:
      Current menuAnimationEffect value. Default value is null
    • setMenuIconHeight

      public RibbonButton setMenuIconHeight(int menuIconHeight)
      The height of the icon for this button.
      Parameters:
      menuIconHeight - New menuIconHeight value. Default value is 13
      Returns:
      RibbonButton instance, for chaining setter calls
    • getMenuIconHeight

      public int getMenuIconHeight()
      The height of the icon for this button.
      Returns:
      Current menuIconHeight value. Default value is 13
    • setMenuIconSrc

      public RibbonButton setMenuIconSrc(String menuIconSrc)
      Base URL for an Image that shows a menu when clicked. See also showMenuIconDisabled and showMenuIconOver.
      Parameters:
      menuIconSrc - New menuIconSrc value. Default value is "[SKINIMG]/Menu/submenu_down.png"
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getMenuIconSrc

      public String getMenuIconSrc()
      Base URL for an Image that shows a menu when clicked. See also showMenuIconDisabled and showMenuIconOver.
      Returns:
      Current menuIconSrc value. Default value is "[SKINIMG]/Menu/submenu_down.png"
      See Also:
    • setMenuIconStyle

      public RibbonButton setMenuIconStyle(String menuIconStyle)
      Default CSS class to apply to the element showing this button's menu-icon. If unset, defaults to baseStyle suffixed with VMenuIcon or HMenuIcon depending on the value of vertical.
      Parameters:
      menuIconStyle - New menuIconStyle value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getMenuIconStyle

      public String getMenuIconStyle()
      Default CSS class to apply to the element showing this button's menu-icon. If unset, defaults to baseStyle suffixed with VMenuIcon or HMenuIcon depending on the value of vertical.
      Returns:
      Current menuIconStyle value. Default value is null
      See Also:
    • setMenuIconWidth

      public RibbonButton setMenuIconWidth(int menuIconWidth)
      The width of the icon for this button.
      Parameters:
      menuIconWidth - New menuIconWidth value. Default value is 14
      Returns:
      RibbonButton instance, for chaining setter calls
    • getMenuIconWidth

      public int getMenuIconWidth()
      The width of the icon for this button.
      Returns:
      Current menuIconWidth value. Default value is 14
    • setOrientation

      public RibbonButton setOrientation(String orientation)
      Deprecated.
      in favor of vertical which, if set, takes precendence over this setting
      The orientation of this RibbonButton. The default value, "vertical", renders icon, title and potentially menuIcon, from top to bottom: "horizontal" does the same from top to bottom.
      Parameters:
      orientation - New orientation value. Default value is "vertical"
      Returns:
      RibbonButton instance, for chaining setter calls
    • getOrientation

      public String getOrientation()
      Deprecated.
      in favor of vertical which, if set, takes precendence over this setting
      The orientation of this RibbonButton. The default value, "vertical", renders icon, title and potentially menuIcon, from top to bottom: "horizontal" does the same from top to bottom.
      Returns:
      Current orientation value. Default value is "vertical"
    • setRowSpan

      public RibbonButton setRowSpan(int rowSpan)
      When used in a RibbonBar, the number of rows this button should occupy in a single column.
      Parameters:
      rowSpan - New rowSpan value. Default value is 1
      Returns:
      RibbonButton instance, for chaining setter calls
    • getRowSpan

      public int getRowSpan()
      When used in a RibbonBar, the number of rows this button should occupy in a single column.
      Returns:
      Current rowSpan value. Default value is 1
    • setShowButtonTitle

      public RibbonButton setShowButtonTitle(Boolean showButtonTitle)
      Whether to show the title-text for this RibbonButton. If set to false, title-text is omitted altogether and just the icon is displayed.
      Parameters:
      showButtonTitle - New showButtonTitle value. Default value is true
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowButtonTitle

      public Boolean getShowButtonTitle()
      Whether to show the title-text for this RibbonButton. If set to false, title-text is omitted altogether and just the icon is displayed.
      Returns:
      Current showButtonTitle value. Default value is true
    • setShowIcon

      public RibbonButton setShowIcon(Boolean showIcon)
      Whether to show an Icon in this RibbonButton. Set to false to render a text-only button.
      Parameters:
      showIcon - New showIcon value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowIcon

      public Boolean getShowIcon()
      Whether to show an Icon in this RibbonButton. Set to false to render a text-only button.
      Returns:
      Current showIcon value. Default value is null
    • setShowMenuBelow

      public RibbonButton setShowMenuBelow(Boolean showMenuBelow)
      The menu drops down below the menu button. Set to false if the menu should appear above the menu button.
      Parameters:
      showMenuBelow - New showMenuBelow value. Default value is true
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuBelow

      public Boolean getShowMenuBelow()
      The menu drops down below the menu button. Set to false if the menu should appear above the menu button.
      Returns:
      Current showMenuBelow value. Default value is true
    • setShowMenuIcon

      public RibbonButton setShowMenuIcon(Boolean showMenuIcon)
      Whether to show the menu-icon which fires the RibbonButton.menuIconClick() notification method when clicked.
      Parameters:
      showMenuIcon - New showMenuIcon value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuIcon

      public Boolean getShowMenuIcon()
      Whether to show the menu-icon which fires the RibbonButton.menuIconClick() notification method when clicked.
      Returns:
      Current showMenuIcon value. Default value is null
    • setShowMenuIconDisabled

      public RibbonButton setShowMenuIconDisabled(Boolean showMenuIconDisabled)
      Whether to show a Disabled version of the menuIcon.
      Parameters:
      showMenuIconDisabled - New showMenuIconDisabled value. Default value is true
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuIconDisabled

      public Boolean getShowMenuIconDisabled()
      Whether to show a Disabled version of the menuIcon.
      Returns:
      Current showMenuIconDisabled value. Default value is true
    • setShowMenuIconDown

      public RibbonButton setShowMenuIconDown(Boolean showMenuIconDown)
      Whether to show a Down version of the menuIcon.
      Parameters:
      showMenuIconDown - New showMenuIconDown value. Default value is false
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuIconDown

      public Boolean getShowMenuIconDown()
      Whether to show a Down version of the menuIcon.
      Returns:
      Current showMenuIconDown value. Default value is false
    • setShowMenuIconOver

      public RibbonButton setShowMenuIconOver(Boolean showMenuIconOver)
      Whether to show an Over version of the menuIcon.
      Parameters:
      showMenuIconOver - New showMenuIconOver value. Default value is true
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuIconOver

      public Boolean getShowMenuIconOver()
      Whether to show an Over version of the menuIcon.
      Returns:
      Current showMenuIconOver value. Default value is true
    • setShowMenuOnClick

      public RibbonButton setShowMenuOnClick(Boolean showMenuOnClick)
      If set to true, shows this button's menu when a user clicks anywhere in the button, rather than specifically on the menuIcon.

      Note that this property has a different meaning than showMenuOnClick in the ancestor class StatefulCanvas.

      Overrides:
      setShowMenuOnClick in class StatefulCanvas
      Parameters:
      showMenuOnClick - New showMenuOnClick value. Default value is false
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowMenuOnClick

      public Boolean getShowMenuOnClick()
      If set to true, shows this button's menu when a user clicks anywhere in the button, rather than specifically on the menuIcon.

      Note that this property has a different meaning than showMenuOnClick in the ancestor class StatefulCanvas.

      Overrides:
      getShowMenuOnClick in class StatefulCanvas
      Returns:
      Current showMenuOnClick value. Default value is false
    • setShowTitle

      public RibbonButton setShowTitle(Boolean showTitle)
      showTitle is not applicable to this class - use showButtonTitle instead.
      Parameters:
      showTitle - New showTitle value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
    • getShowTitle

      public Boolean getShowTitle()
      showTitle is not applicable to this class - use showButtonTitle instead.
      Returns:
      Current showTitle value. Default value is null
    • setValign

      public RibbonButton setValign(VerticalAlignment valign)
      Vertical alignment of this button's content. If unset, vertical buttons are top-aligned and horizontal buttons center-aligned by default.
      Overrides:
      setValign in class Button
      Parameters:
      valign - New valign value. Default value is null
      Returns:
      RibbonButton instance, for chaining setter calls
      See Also:
    • getValign

      public VerticalAlignment getValign()
      Vertical alignment of this button's content. If unset, vertical buttons are top-aligned and horizontal buttons center-aligned by default.
      Overrides:
      getValign in class Button
      Returns:
      Current valign value. Default value is null
      See Also:
    • setVertical

      public RibbonButton setVertical(boolean vertical)
      Whether this button renders vertically. Renders the icon, title and potentially menuIcon from top to bottom, when true, and from left to right when false.
      Parameters:
      vertical - New vertical value. Default value is false
      Returns:
      RibbonButton instance, for chaining setter calls
    • getVertical

      public boolean getVertical()
      Whether this button renders vertically. Renders the icon, title and potentially menuIcon from top to bottom, when true, and from left to right when false.
      Returns:
      Current vertical value. Default value is false
    • click

      public Boolean click()
      Notification method fired when a user clicks anywhere on this button. If the click occurred directly on the icon or the menuIcon, the related notifications iconClick and menuIconClick are fired first and must return false to prevent this notification from firing.

      If a menu is installed then, by default, it is only displayed when a user clicks on the menuIcon. This can be altered via showMenuOnClick.

      Returns:
      return false to cancel event-bubbling
    • iconClick

      public Boolean iconClick()
      Notification method fired when a user clicks on the icon in this RibbonButton. call event.cancel() to suppress the standard click handling code.
      Returns:
      return false to cancel event-bubbling
    • addMenuIconClickHandler

      public HandlerRegistration addMenuIconClickHandler(MenuIconClickHandler handler)
      Add a menuIconClick handler.

      Notification method fired when a user clicks on the menuIcon on this RibbonButton. call event.cancel() to suppress the standard click handling code.

      Specified by:
      addMenuIconClickHandler in interface HasMenuIconClickHandlers
      Parameters:
      handler - the menuIconClick handler
      Returns:
      HandlerRegistration used to remove this handler
    • showMenu

      public Boolean showMenu()
      Shows this button's menu. Called automatically when a user clicks the menuIcon.
      Returns:
      true if a menu was shown
    • setDefaultProperties

      public static void setDefaultProperties(RibbonButton ribbonButtonProperties)
      Class level method to set the default properties of this class. If set, then all existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

      Parameters:
      ribbonButtonProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • setLogicalStructure

      public LogicalStructureObject setLogicalStructure(RibbonButtonLogicalStructure s)
      Setter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
    • getLogicalStructure

      public LogicalStructureObject getLogicalStructure()
      Getter implementing the LogicalStructure interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
      getLogicalStructure in interface LogicalStructure
      Overrides:
      getLogicalStructure in class Button