Class MenuButton

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
Direct Known Subclasses:
TreeMenuButton

public class MenuButton extends Button
Simple subclass of button associated with a menu widget (gets shown below the button).
  • Constructor Details

    • MenuButton

      public MenuButton()
    • MenuButton

      public MenuButton(JavaScriptObject jsObj)
    • MenuButton

      public MenuButton(String title)
    • MenuButton

      public MenuButton(String title, Menu menu)
  • Method Details

    • getOrCreateRef

      public static MenuButton 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
    • setAutoDestroyMenu

      public MenuButton setAutoDestroyMenu(Boolean autoDestroyMenu)
      If this menuButton is destroyed, should it also destroy its menu?
      Parameters:
      autoDestroyMenu - New autoDestroyMenu value. Default value is true
      Returns:
      MenuButton instance, for chaining setter calls
    • getAutoDestroyMenu

      public Boolean getAutoDestroyMenu()
      If this menuButton is destroyed, should it also destroy its menu?
      Returns:
      Current autoDestroyMenu value. Default value is true
    • setEditProxyConstructor

      public MenuButton 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 "MenuEditProxy"
      Returns:
      MenuButton 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 "MenuEditProxy"
      See Also:
    • setHiliteAccessKey

      public MenuButton setHiliteAccessKey(Boolean hiliteAccessKey) throws IllegalStateException
      If this MenuButton has a specified accessKey, underline it in the title of the button by default
      Overrides:
      setHiliteAccessKey in class Button
      Parameters:
      hiliteAccessKey - New hiliteAccessKey value. Default value is true
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getHiliteAccessKey

      public Boolean getHiliteAccessKey()
      If this MenuButton has a specified accessKey, underline it in the title of the button by default
      Overrides:
      getHiliteAccessKey in class Button
      Returns:
      Current hiliteAccessKey value. Default value is true
    • setIcon

      public MenuButton setIcon(String icon)
      This property corresponds to the inherited Button.icon property, which is used to display the menuButtonImage, so anything you attempt to set there would be clobbered by the internal usage.

      You could add an icon via the title property, by using Canvas.imgHTML() to generate an appropriate <img> tag and pre-pending it to your title.

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

      public String getIcon()
      This property corresponds to the inherited Button.icon property, which is used to display the menuButtonImage, so anything you attempt to set there would be clobbered by the internal usage.

      You could add an icon via the title property, by using Canvas.imgHTML() to generate an appropriate <img> tag and pre-pending it to your title.

      Overrides:
      getIcon in class Button
      Returns:
      Current icon value. Default value is null
      See Also:
    • setMenu

      public MenuButton setMenu(Menu menu)
      The menu to show.

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

      Parameters:
      menu - New menu value. Default value is null
      Returns:
      MenuButton instance, for chaining setter calls
    • getMenu

      public Menu getMenu()
      The menu to show.

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

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

      public MenuButton 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:
      MenuButton 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 MenuButton 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:
      MenuButton 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
    • setMenuButtonImage

      public MenuButton setMenuButtonImage(String menuButtonImage) throws IllegalStateException
      Image for menu button indicating that the button expands a menu. This image is shown for menus expanding down from the button. Menu direction is controlled by showMenuBelow.

      Note : This is an advanced setting

      Parameters:
      menuButtonImage - New menuButtonImage value. Default value is "[SKIN]menu_button.gif"
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getMenuButtonImage

      public String getMenuButtonImage()
      Image for menu button indicating that the button expands a menu. This image is shown for menus expanding down from the button. Menu direction is controlled by showMenuBelow.
      Returns:
      Current menuButtonImage value. Default value is "[SKIN]menu_button.gif"
      See Also:
    • setMenuButtonImageUp

      public MenuButton setMenuButtonImageUp(String menuButtonImageUp) throws IllegalStateException
      Image for menu button indicating that the button expands a menu. This image is shown for menus expanding up from the button. Menu direction is controlled by showMenuBelow.

      Note : This is an advanced setting

      Parameters:
      menuButtonImageUp - New menuButtonImageUp value. Default value is "[SKIN]menu_button_up.gif"
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getMenuButtonImageUp

      public String getMenuButtonImageUp()
      Image for menu button indicating that the button expands a menu. This image is shown for menus expanding up from the button. Menu direction is controlled by showMenuBelow.
      Returns:
      Current menuButtonImageUp value. Default value is "[SKIN]menu_button_up.gif"
      See Also:
    • setRollOverMenuHideDelay

      public MenuButton setRollOverMenuHideDelay(int rollOverMenuHideDelay) throws IllegalStateException
      When showMenuOnRollOver is true, this is the delay in milliseconds before the menu is automatically hidden following mouseOut.
      Parameters:
      rollOverMenuHideDelay - New rollOverMenuHideDelay value. Default value is 250
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getRollOverMenuHideDelay

      public int getRollOverMenuHideDelay()
      When showMenuOnRollOver is true, this is the delay in milliseconds before the menu is automatically hidden following mouseOut.
      Returns:
      Current rollOverMenuHideDelay value. Default value is 250
    • setShowMenuBelow

      public MenuButton setShowMenuBelow(Boolean showMenuBelow)
      The menu drops down below the menu button. Set to false if the menu should appear above the menu button.

      If this method is called after the component has been drawn/initialized: Setter for the 'showMenuButtonBelow' property - determines whether the menu will be shown above or below the MenuButton.
      Parameters:
      showMenuBelow - True if the menu should be shown below the MenuButton. Default value is true
      Returns:
      MenuButton 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
    • setShowMenuButtonImage

      public MenuButton setShowMenuButtonImage(Boolean showMenuButtonImage) throws IllegalStateException
      Show menu button image (up / down arrowhead) for this menu button.

      If this method is called after the component has been drawn/initialized: Setter for the 'showMenuButtonImage' property - shows/hides the menu button image at runtime.
      Parameters:
      showMenuButtonImage - Should the image be shown. Default value is true
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowMenuButtonImage

      public Boolean getShowMenuButtonImage()
      Show menu button image (up / down arrowhead) for this menu button.
      Returns:
      Current showMenuButtonImage value. Default value is true
    • setShowMenuOnRollOver

      public MenuButton setShowMenuOnRollOver(Boolean showMenuOnRollOver) throws IllegalStateException
      Should the menu be shown automatically when the mouse moves over the button?

      When enabled, menus used with this MenuButton should not be used with any other component.

      Parameters:
      showMenuOnRollOver - New showMenuOnRollOver value. Default value is false
      Returns:
      MenuButton instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowMenuOnRollOver

      public Boolean getShowMenuOnRollOver()
      Should the menu be shown automatically when the mouse moves over the button?

      When enabled, menus used with this MenuButton should not be used with any other component.

      Returns:
      Current showMenuOnRollOver value. Default value is false
    • setTitle

      public void setTitle(String title)
      Default title for the button.
      Overrides:
      setTitle in class Button
      Parameters:
      title - New title value. Default value is "Show Menu"
      See Also:
    • getTitle

      public String getTitle()
      Default title for the button.
      Overrides:
      getTitle in class Button
      Returns:
      Current title value. Default value is "Show Menu"
      See Also:
    • showMenu

      public void showMenu()
      Programmatically forces this MenuButton to show it's menu.
    • setDefaultProperties

      public static void setDefaultProperties(MenuButton menuButtonProperties)
      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:
      menuButtonProperties - properties that should be used as new defaults when instances of this class are created
      See Also:
    • setLogicalStructure

      public LogicalStructureObject setLogicalStructure(MenuButtonLogicalStructure 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