Class StatefulCanvas

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, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasRuleContextChangedHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers
Direct Known Subclasses:
Button, Img, SimpleTile, StretchImg, ToggleSwitch

public class StatefulCanvas extends Canvas
A component that has a set of possible states, and which presents itself differently according to which state it is in. An example is a button, which can be "up", "down", "over" or "disabled".
  • Constructor Details

    • StatefulCanvas

      public StatefulCanvas()
    • StatefulCanvas

      public StatefulCanvas(JavaScriptObject jsObj)
  • Method Details

    • getOrCreateRef

      public static StatefulCanvas 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 Canvas
    • setActionType

      public StatefulCanvas setActionType(SelectionType actionType)
      Behavior on state changes -- BUTTON, RADIO or CHECKBOX

      If this method is called after the component has been drawn/initialized: Update the 'actionType' for this canvas (radio / checkbox / button) If the canvas is currently selected, and the passed in actionType is 'button' this method will deselect the canvas.
      Parameters:
      actionType - new action type. Default value is "button"
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getActionType

      public SelectionType getActionType()
      Behavior on state changes -- BUTTON, RADIO or CHECKBOX
      Returns:
      Return the 'actionType' for this canvas (radio / checkbox / button). Default value is "button"
      See Also:
    • setAlign

      public StatefulCanvas setAlign(Alignment align)
      Horizontal alignment of this component's title.
      Overrides:
      setAlign in class Canvas
      Parameters:
      align - New align value. Default value is Canvas.CENTER
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getAlign

      public Alignment getAlign()
      Horizontal alignment of this component's title.
      Returns:
      Current align value. Default value is Canvas.CENTER
      See Also:
    • setAriaLabel

      public StatefulCanvas setAriaLabel(String ariaLabel)
      If specified this property returns the aria-label attribute to write out in screenReaderMode.

      If unset, aria-label will default to this.prompt if specified, otherwise this.title.

      Note : This is an advanced setting

      Parameters:
      ariaLabel - New ariaLabel value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
    • getAriaLabel

      public String getAriaLabel()
      If specified this property returns the aria-label attribute to write out in screenReaderMode.

      If unset, aria-label will default to this.prompt if specified, otherwise this.title.

      Returns:
      Method to return the aria-label for this component (see getAriaStateDefaults()).

      Returns ariaLabel if specified, otherwise prompt, otherwise title. Default value is null

    • setAutoFit

      public StatefulCanvas setAutoFit(Boolean autoFit)
      If true, ignore the specified size of this widget and always size just large enough to accommodate the title. If setWidth() is explicitly called on an autoFit:true button, autoFit will be reset to false.

      Note that for StretchImgButton instances, autoFit will occur horizontally only, as unpredictable vertical sizing is likely to distort the media. If you do want vertical auto-fit, this can be achieved by simply setting a small height, and having overflow:"visible"

      If this method is called after the component has been drawn/initialized: Setter method for the autoFit property. Pass in true or false to turn autoFit on or off. When autoFit is set to false, canvas will be resized to it's previously specified size.

      Parameters:
      autoFit - New autoFit setting. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getAutoFit

      public Boolean getAutoFit()
      If true, ignore the specified size of this widget and always size just large enough to accommodate the title. If setWidth() is explicitly called on an autoFit:true button, autoFit will be reset to false.

      Note that for StretchImgButton instances, autoFit will occur horizontally only, as unpredictable vertical sizing is likely to distort the media. If you do want vertical auto-fit, this can be achieved by simply setting a small height, and having overflow:"visible"

      Returns:
      Current autoFit value. Default value is null
      See Also:
    • setBaseStyle

      public StatefulCanvas setBaseStyle(String baseStyle)
      Base CSS style className applied to the component.

      Note that if specified, this property takes precedence over any specified styleName. If unset, the styleName will be used as a default baseStyle value.

      As the component changes state and/or is selected, suffixes will be added to the base style. In some cases more than one suffix will be appended to reflect a combined state ("Selected" + "Disabled", for example).

      See getStateSuffix() for a description of the default set of suffixes which may be applied to the baseStyle

      Rotated Titles

      The Framework doesn't have built-in support for rotating button titles in a fashion similar to FacetChart.rotateLabels. However, you can manually configure a button to render with a rotated title by applying custom CSS via this property.

      For example, given a button with a height of 120 and a width of 48, if you copied the existing buttonXXX style declarations from skin_styles.css as new, rotatedTitleButtonXXX declarations, and then added the lines:

            -ms-transform:     translate(-38px,0px) rotate(270deg);
            -webkit-transform: translate(-38px,0px) rotate(270deg);
            transform:         translate(-38px,0px) rotate(270deg);
            overflow: hidden;
            text-overflow: ellipsis;
            width:116px;
      in the declaration section beginning:
        .rotatedTitleButton,
        .rotatedTitleButtonSelected,
        .rotatedTitleButtonSelectedOver,
        .rotatedTitleButtonSelectedDown,
        .rotatedTitleButtonSelectedDisabled,
        .rotatedTitleButtonOver,
        .rotatedTitleButtonDown,
        .rotatedTitleButtonDisabled {
      then applying that style to the button with overflow: "clip_h" would yield a vertically-rendered title with overflow via ellipsis as expected, and also wrap with Button.wrap. Note that:
      • The explicit width applied via CSS is needed because rotated elements don't inherit dimensions in their new orientation from the DOM - the transform/rotation occurs independently of layout.
      • The translation transform required along the x-axis is roughly (width - height) / 2, but may need slight offsetting for optimal centering.
      • We've explicitly avoided describing an approach based on CSS "writing-mode", since support is incomplete and bugs are present in popular browsers such as Firefox and Safari that would prevent it from being used without Framework assistance.

      Note on css-margins: Developers should be aware that the css "margin" property is unreliable for certain subclasses of StatefulCanvas, including buttons. Developers may use the explicit Canvas.margin property to specify button margins, or for a button within a layout, consider the layout properties Layout.layoutMargin, Layout.membersMargin

      If this method is called after the component has been drawn/initialized: Sets the base CSS style. As the component changes state and/or is selected, suffixes will be added to the base style.

      Parameters:
      baseStyle - new base style. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getBaseStyle

      public String getBaseStyle()
      Base CSS style className applied to the component.

      Note that if specified, this property takes precedence over any specified styleName. If unset, the styleName will be used as a default baseStyle value.

      As the component changes state and/or is selected, suffixes will be added to the base style. In some cases more than one suffix will be appended to reflect a combined state ("Selected" + "Disabled", for example).

      See getStateSuffix() for a description of the default set of suffixes which may be applied to the baseStyle

      Rotated Titles

      The Framework doesn't have built-in support for rotating button titles in a fashion similar to FacetChart.rotateLabels. However, you can manually configure a button to render with a rotated title by applying custom CSS via this property.

      For example, given a button with a height of 120 and a width of 48, if you copied the existing buttonXXX style declarations from skin_styles.css as new, rotatedTitleButtonXXX declarations, and then added the lines:

            -ms-transform:     translate(-38px,0px) rotate(270deg);
            -webkit-transform: translate(-38px,0px) rotate(270deg);
            transform:         translate(-38px,0px) rotate(270deg);
            overflow: hidden;
            text-overflow: ellipsis;
            width:116px;
      in the declaration section beginning:
        .rotatedTitleButton,
        .rotatedTitleButtonSelected,
        .rotatedTitleButtonSelectedOver,
        .rotatedTitleButtonSelectedDown,
        .rotatedTitleButtonSelectedDisabled,
        .rotatedTitleButtonOver,
        .rotatedTitleButtonDown,
        .rotatedTitleButtonDisabled {
      then applying that style to the button with overflow: "clip_h" would yield a vertically-rendered title with overflow via ellipsis as expected, and also wrap with Button.wrap. Note that:
      • The explicit width applied via CSS is needed because rotated elements don't inherit dimensions in their new orientation from the DOM - the transform/rotation occurs independently of layout.
      • The translation transform required along the x-axis is roughly (width - height) / 2, but may need slight offsetting for optimal centering.
      • We've explicitly avoided describing an approach based on CSS "writing-mode", since support is incomplete and bugs are present in popular browsers such as Firefox and Safari that would prevent it from being used without Framework assistance.

      Note on css-margins: Developers should be aware that the css "margin" property is unreliable for certain subclasses of StatefulCanvas, including buttons. Developers may use the explicit Canvas.margin property to specify button margins, or for a button within a layout, consider the layout properties Layout.layoutMargin, Layout.membersMargin

      Returns:
      Current baseStyle value. Default value is null
      See Also:
    • setEditProxyConstructor

      public StatefulCanvas 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 Canvas
      Parameters:
      editProxyConstructor - New editProxyConstructor value. Default value is "StatefulCanvasEditProxy"
      Returns:
      StatefulCanvas 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 Canvas
      Returns:
      Current editProxyConstructor value. Default value is "StatefulCanvasEditProxy"
      See Also:
    • setHeight

      public StatefulCanvas setHeight(Integer height)
      Size for this component's vertical dimension. See Canvas.height for more details.

      Note that if autoFit is set on non-StretchImgButton instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      setHeight in class Canvas
      Parameters:
      height - New height value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getHeight

      public Integer getHeight()
      Size for this component's vertical dimension. See Canvas.height for more details.

      Note that if autoFit is set on non-StretchImgButton instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      getHeight in class Canvas
      Returns:
      Current height value. Default value is null
      See Also:
    • setHeight

      public void setHeight(String height)
      Size for this component's vertical dimension. See Canvas.height for more details.

      Note that if autoFit is set on non-StretchImgButton instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      setHeight in class Canvas
      Parameters:
      height - New height value. Default value is null
      See Also:
    • getHeightAsString

      public String getHeightAsString()
      Size for this component's vertical dimension. See Canvas.height for more details.

      Note that if autoFit is set on non-StretchImgButton instances, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      getHeightAsString in class Canvas
      Returns:
      Current height value. Default value is null
      See Also:
    • setIcon

      public StatefulCanvas setIcon(String icon)
      Optional icon to be shown with the button title text.

      Specify as the partial URL to an image, relative to the imgDir of this component. A sprited image can be specified using the SCSpriteConfig format.

      Note that the string "blank" is a valid setting for this attribute and will always result in the system blank image, with no state suffixes applied. Typically, this might be used when an iconStyle is also specified and the iconStyle renders the icon via a stateful background-image or other CSS approach.

      If this method is called after the component has been drawn/initialized: Change the icon being shown next to the title text.

      Parameters:
      icon - URL of new icon. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getIcon

      public String getIcon()
      Optional icon to be shown with the button title text.

      Specify as the partial URL to an image, relative to the imgDir of this component. A sprited image can be specified using the SCSpriteConfig format.

      Note that the string "blank" is a valid setting for this attribute and will always result in the system blank image, with no state suffixes applied. Typically, this might be used when an iconStyle is also specified and the iconStyle renders the icon via a stateful background-image or other CSS approach.

      Returns:
      Current icon value. Default value is null
      See Also:
    • setIconHeight

      public StatefulCanvas setIconHeight(Integer iconHeight) throws IllegalStateException
      Height in pixels of the icon image.

      If unset, defaults to iconSize.

      Parameters:
      iconHeight - New iconHeight value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getIconHeight

      public Integer getIconHeight()
      Height in pixels of the icon image.

      If unset, defaults to iconSize.

      Returns:
      Current iconHeight value. Default value is null
      See Also:
    • setIconOrientation

      public StatefulCanvas setIconOrientation(String iconOrientation) throws IllegalStateException
      If this button is showing an icon should it appear to the left or right of the title? valid options are "left" and "right".

      If this method is called after the component has been drawn/initialized: Changes the orientation of the icon relative to the text of the button.
      Parameters:
      iconOrientation - The new orientation of the icon relative to the text of the button. Default value is "left"
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getIconOrientation

      public String getIconOrientation()
      If this button is showing an icon should it appear to the left or right of the title? valid options are "left" and "right".
      Returns:
      Current iconOrientation value. Default value is "left"
      See Also:
    • setIconSize

      public StatefulCanvas setIconSize(int iconSize) throws IllegalStateException
      Size in pixels of the icon image.

      The iconWidth and iconHeight properties can be used to configure width and height separately.

      Note: When configuring the properties of a StatefulCanvas (or derivative) AutoChild, it is best to set the iconWidth and iconHeight to the same value rather than setting an iconSize. This is because certain skins or customizations thereto might set the iconWidth and iconHeight, making the customization of the AutoChild's iconSize ineffective.

      Parameters:
      iconSize - New iconSize value. Default value is 16
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getIconSize

      public int getIconSize()
      Size in pixels of the icon image.

      The iconWidth and iconHeight properties can be used to configure width and height separately.

      Note: When configuring the properties of a StatefulCanvas (or derivative) AutoChild, it is best to set the iconWidth and iconHeight to the same value rather than setting an iconSize. This is because certain skins or customizations thereto might set the iconWidth and iconHeight, making the customization of the AutoChild's iconSize ineffective.

      Returns:
      Current iconSize value. Default value is 16
      See Also:
    • setIconStyle

      public StatefulCanvas setIconStyle(String iconStyle)
      Base CSS style applied to the icon image. If set, as the StatefulCanvas changes state and/or is selected, suffixes will be appended to iconStyle to form the className set on the image element.

      The following table lists out the standard set of suffixes which may be appended:

      CSS Class AppliedDescription
      iconStyleDefault CSS style
      iconStyle+Selected Applied when selected and showSelectedIcon are true.
      iconStyle+Focused Applied when the component has keyboard focus, if showFocusedIcon is true, and showFocusedAsOver is not true.
      iconStyle+Over Applied when showRollOverIcon is set to true and either the user rolls over the component or showFocusedAsOver is true and the component has keyboard focus.
      iconStyle+Down Applied when the user presses the mouse button on the component if showDownIcon is set to true
      iconStyle+Disabled Applied when the component is disabled if showDisabledIcon is true.
      Combined styles
      iconStyle+SelectedFocused Combined Selected and focused styling
      iconStyle+SelectedOver Combined Selected and rollOver styling
      iconStyle+FocusedOver Combined Focused and rollOver styling
      iconStyle+SelectedFocusedOver Combined Selected, Focused and rollOver styling
      iconStyle+SelectedDown Combined Selected and mouse-down styling
      iconStyle+FocusedDown Combined Focused and mouse-down styling
      iconStyle+SelectedFocusedDown Combined Selected, Focused and mouse-down styling
      iconStyle+SelectedDisabled Combined Selected and Disabled styling

      In addition, if showRTLIcon is true, then in RTL mode, a final "RTL" suffix will be appended.

      If this method is called after the component has been drawn/initialized: Setter for iconStyle.

      Parameters:
      iconStyle - the new iconStyle (may be null to remove the className on the image). Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getIconStyle

      public String getIconStyle()
      Base CSS style applied to the icon image. If set, as the StatefulCanvas changes state and/or is selected, suffixes will be appended to iconStyle to form the className set on the image element.

      The following table lists out the standard set of suffixes which may be appended:

      CSS Class AppliedDescription
      iconStyleDefault CSS style
      iconStyle+Selected Applied when selected and showSelectedIcon are true.
      iconStyle+Focused Applied when the component has keyboard focus, if showFocusedIcon is true, and showFocusedAsOver is not true.
      iconStyle+Over Applied when showRollOverIcon is set to true and either the user rolls over the component or showFocusedAsOver is true and the component has keyboard focus.
      iconStyle+Down Applied when the user presses the mouse button on the component if showDownIcon is set to true
      iconStyle+Disabled Applied when the component is disabled if showDisabledIcon is true.
      Combined styles
      iconStyle+SelectedFocused Combined Selected and focused styling
      iconStyle+SelectedOver Combined Selected and rollOver styling
      iconStyle+FocusedOver Combined Focused and rollOver styling
      iconStyle+SelectedFocusedOver Combined Selected, Focused and rollOver styling
      iconStyle+SelectedDown Combined Selected and mouse-down styling
      iconStyle+FocusedDown Combined Focused and mouse-down styling
      iconStyle+SelectedFocusedDown Combined Selected, Focused and mouse-down styling
      iconStyle+SelectedDisabled Combined Selected and Disabled styling

      In addition, if showRTLIcon is true, then in RTL mode, a final "RTL" suffix will be appended.

      Returns:
      Current iconStyle value. Default value is null
      See Also:
    • setIconWidth

      public StatefulCanvas setIconWidth(Integer iconWidth) throws IllegalStateException
      Width in pixels of the icon image.

      If unset, defaults to iconSize.

      Parameters:
      iconWidth - New iconWidth value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getIconWidth

      public Integer getIconWidth()
      Width in pixels of the icon image.

      If unset, defaults to iconSize.

      Returns:
      Current iconWidth value. Default value is null
      See Also:
    • setIgnoreRTL

      public StatefulCanvas setIgnoreRTL(boolean ignoreRTL)
      Should horizontal alignment-related attributes align and iconOrientation be mirrored in RTL mode? This is the default behavior unless ignoreRTL is set to true.

      If this method is called after the component has been drawn/initialized: Setter for ignoreRTL.

      Note : This is an advanced setting

      Parameters:
      ignoreRTL - new value for ignoreRTL. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
    • getIgnoreRTL

      public boolean getIgnoreRTL()
      Should horizontal alignment-related attributes align and iconOrientation be mirrored in RTL mode? This is the default behavior unless ignoreRTL is set to true.
      Returns:
      Current ignoreRTL value. Default value is false
    • setLabelHPad

      public StatefulCanvas setLabelHPad(Integer labelHPad)
      If non-null, specifies the horizontal padding applied to the label, if any.
      Parameters:
      labelHPad - New labelHPad value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getLabelHPad

      public Integer getLabelHPad()
      If non-null, specifies the horizontal padding applied to the label, if any.
      Returns:
      Current labelHPad value. Default value is null
      See Also:
    • setLabelVPad

      public StatefulCanvas setLabelVPad(Integer labelVPad)
      If non-null, specifies the vertical padding applied to the label, if any.
      Parameters:
      labelVPad - New labelVPad value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getLabelVPad

      public Integer getLabelVPad()
      If non-null, specifies the vertical padding applied to the label, if any.
      Returns:
      Current labelVPad value. Default value is null
      See Also:
    • getOverCanvas

      public Canvas getOverCanvas() throws IllegalStateException
      Auto generated child widget to be shown when the user rolls over this canvas if showOverCanvas is true. See documentation for com.smartgwt.client.types.AutoChild for information on how to customize this canvas.

      This component is an AutoChild named "overCanvas". For an overview of how to use and configure AutoChildren, see Using AutoChildren.

      Returns:
      Current overCanvas value. Default value is null
      Throws:
      IllegalStateException - if this widget has not yet been rendered.
    • setOverCanvasConstructor

      public StatefulCanvas setOverCanvasConstructor(String overCanvasConstructor)
      Constructor class name for this widget's overCanvas

      Note : This is an advanced setting

      Parameters:
      overCanvasConstructor - New overCanvasConstructor value. Default value is "Canvas"
      Returns:
      StatefulCanvas instance, for chaining setter calls
    • getOverCanvasConstructor

      public String getOverCanvasConstructor()
      Constructor class name for this widget's overCanvas
      Returns:
      Current overCanvasConstructor value. Default value is "Canvas"
    • setRadioGroup

      public StatefulCanvas setRadioGroup(String radioGroup)
      String identifier for this canvas's mutually exclusive selection group.

      Note : This is an advanced setting

      Parameters:
      radioGroup - New radioGroup value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getRadioGroup

      public String getRadioGroup()
      String identifier for this canvas's mutually exclusive selection group.
      Returns:
      Current radioGroup value. Default value is null
      See Also:
    • setRedrawOnStateChange

      public StatefulCanvas setRedrawOnStateChange(Boolean redrawOnStateChange)
      Whether this widget needs to redraw to reflect state change

      Note : This is an advanced setting

      Parameters:
      redrawOnStateChange - New redrawOnStateChange value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getRedrawOnStateChange

      public Boolean getRedrawOnStateChange()
      Whether this widget needs to redraw to reflect state change
      Returns:
      Current redrawOnStateChange value. Default value is false
      See Also:
    • setSelected

      public StatefulCanvas setSelected(Boolean selected)
      Whether this component is selected. For some components, selection affects appearance.

      If this method is called after the component has been drawn/initialized: Set this object to be selected or deselected.
      Parameters:
      selected - new boolean value of whether or not the object is selected. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getSelected

      public Boolean getSelected()
      Whether this component is selected. For some components, selection affects appearance.
      Returns:
      Current selected value. Default value is false
      See Also:
    • setShowDisabled

      public StatefulCanvas setShowDisabled(Boolean showDisabled)
      Should we visibly change state when disabled?
      Parameters:
      showDisabled - New showDisabled value. Default value is true
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getShowDisabled

      public Boolean getShowDisabled()
      Should we visibly change state when disabled?
      Returns:
      Current showDisabled value. Default value is true
      See Also:
    • setShowDisabledIcon

      public StatefulCanvas setShowDisabledIcon(Boolean showDisabledIcon) throws IllegalStateException
      If using an icon for this button, whether to switch the icon image if the button becomes disabled.
      Parameters:
      showDisabledIcon - New showDisabledIcon value. Default value is true
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowDisabledIcon

      public Boolean getShowDisabledIcon()
      If using an icon for this button, whether to switch the icon image if the button becomes disabled.
      Returns:
      Current showDisabledIcon value. Default value is true
      See Also:
    • setShowDown

      public StatefulCanvas setShowDown(Boolean showDown)
      Should we visibly change state when the mouse goes down in this object?
      Parameters:
      showDown - New showDown value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getShowDown

      public Boolean getShowDown()
      Should we visibly change state when the mouse goes down in this object?
      Returns:
      Current showDown value. Default value is false
      See Also:
    • setShowDownIcon

      public StatefulCanvas setShowDownIcon(Boolean showDownIcon) throws IllegalStateException
      If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
      Parameters:
      showDownIcon - New showDownIcon value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowDownIcon

      public Boolean getShowDownIcon()
      If using an icon for this button, whether to switch the icon image when the mouse goes down on the button.
      Returns:
      Current showDownIcon value. Default value is false
      See Also:
    • setShowFocused

      public StatefulCanvas setShowFocused(Boolean showFocused)
      Should we visibly change state when the canvas receives focus? If showFocusedAsOver is true, then "over" will be used to indicate focus. Otherwise a separate "focused" state will be used.
      Parameters:
      showFocused - New showFocused value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getShowFocused

      public Boolean getShowFocused()
      Should we visibly change state when the canvas receives focus? If showFocusedAsOver is true, then "over" will be used to indicate focus. Otherwise a separate "focused" state will be used.
      Returns:
      Current showFocused value. Default value is false
      See Also:
    • setShowFocusedAsOver

      public StatefulCanvas setShowFocusedAsOver(Boolean showFocusedAsOver)
      If showFocused is true for this widget, should the "over" state be used to indicate the widget as focused. If set to false, a separate "focused" state will be used.
      Parameters:
      showFocusedAsOver - New showFocusedAsOver value. Default value is true
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getShowFocusedAsOver

      public Boolean getShowFocusedAsOver()
      If showFocused is true for this widget, should the "over" state be used to indicate the widget as focused. If set to false, a separate "focused" state will be used.
      Returns:
      Current showFocusedAsOver value. Default value is true
      See Also:
    • setShowFocusedIcon

      public StatefulCanvas setShowFocusedIcon(Boolean showFocusedIcon) throws IllegalStateException
      If using an icon for this button, whether to switch the icon image when the button receives focus.

      If showFocusedAsOver is true, the "Over" icon will be displayed when the canvas has focus, otherwise a separate "Focused" icon will be displayed

      Parameters:
      showFocusedIcon - New showFocusedIcon value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowFocusedIcon

      public Boolean getShowFocusedIcon()
      If using an icon for this button, whether to switch the icon image when the button receives focus.

      If showFocusedAsOver is true, the "Over" icon will be displayed when the canvas has focus, otherwise a separate "Focused" icon will be displayed

      Returns:
      Current showFocusedIcon value. Default value is false
      See Also:
    • setShowMenuOnClick

      public StatefulCanvas setShowMenuOnClick(Boolean showMenuOnClick)
      If true, this widget will fire showContextMenu() to show the context menu if one is defined, rather than click(), when the left mouse is clicked.

      Note that this property has a different interpretation in IconButton as IconButton.showMenuOnClick.

      Parameters:
      showMenuOnClick - New showMenuOnClick value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
    • getShowMenuOnClick

      public Boolean getShowMenuOnClick()
      If true, this widget will fire showContextMenu() to show the context menu if one is defined, rather than click(), when the left mouse is clicked.

      Note that this property has a different interpretation in IconButton as IconButton.showMenuOnClick.

      Returns:
      Current showMenuOnClick value. Default value is null
    • setShowOverCanvas

      public StatefulCanvas setShowOverCanvas(Boolean showOverCanvas)
      When this property is set to true, this widget will create and show the overCanvas on user rollover.

      Note : This is an advanced setting

      Parameters:
      showOverCanvas - New showOverCanvas value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
    • getShowOverCanvas

      public Boolean getShowOverCanvas()
      When this property is set to true, this widget will create and show the overCanvas on user rollover.
      Returns:
      Current showOverCanvas value. Default value is false
    • setShowRollOver

      public StatefulCanvas setShowRollOver(Boolean showRollOver)
      Should we visibly change state when the mouse goes over this object?
      Parameters:
      showRollOver - New showRollOver value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getShowRollOver

      public Boolean getShowRollOver()
      Should we visibly change state when the mouse goes over this object?
      Returns:
      Current showRollOver value. Default value is false
      See Also:
    • setShowRollOverIcon

      public StatefulCanvas setShowRollOverIcon(Boolean showRollOverIcon) throws IllegalStateException
      If using an icon for this button, whether to switch the icon image on mouse rollover.
      Parameters:
      showRollOverIcon - New showRollOverIcon value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowRollOverIcon

      public Boolean getShowRollOverIcon()
      If using an icon for this button, whether to switch the icon image on mouse rollover.
      Returns:
      Current showRollOverIcon value. Default value is false
      See Also:
    • setShowRTLIcon

      public StatefulCanvas setShowRTLIcon(boolean showRTLIcon) throws IllegalStateException
      Is RTL media available for the icon? If true, then in RTL mode, the image's src will have "_rtl" inserted immediately before the file extension. For example, if icon is "myIcon.png" and showRTLIcon is true, then in RTL mode, the image's src will be set to "myIcon_rtl.png".
      Parameters:
      showRTLIcon - New showRTLIcon value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getShowRTLIcon

      public boolean getShowRTLIcon()
      Is RTL media available for the icon? If true, then in RTL mode, the image's src will have "_rtl" inserted immediately before the file extension. For example, if icon is "myIcon.png" and showRTLIcon is true, then in RTL mode, the image's src will be set to "myIcon_rtl.png".
      Returns:
      Current showRTLIcon value. Default value is false
    • setShowSelectedIcon

      public StatefulCanvas setShowSelectedIcon(Boolean showSelectedIcon) throws IllegalStateException
      If using an icon for this button, whether to switch the icon image when the button becomes selected.
      Parameters:
      showSelectedIcon - New showSelectedIcon value. Default value is false
      Returns:
      StatefulCanvas instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getShowSelectedIcon

      public Boolean getShowSelectedIcon()
      If using an icon for this button, whether to switch the icon image when the button becomes selected.
      Returns:
      Current showSelectedIcon value. Default value is false
      See Also:
    • setState

      public StatefulCanvas setState(State state)
      Current "state" of this widget. The state setting is automatically updated as the user interacts with the component (see showRollOver, showDown, showDisabled).

      StatefulCanvases will have a different appearance based on their current state. By default this is handled by changing the css className applied to the StatefulCanvas - see baseStyle and getStateSuffix() for a description of how this is done.

      For Img or StretchImg based subclasses of StatefulCanvas, the appearance may also be updated by changing the src of the rendered image. See Img.src and StretchImgButton.src for a description of how the URL is modified to reflect the state of the widget in this case.

      If this method is called after the component has been drawn/initialized: Sets the state of this object, changing its appearance. Note: newState cannot be State.STATE_DISABLED if this.showDisabled is false.

      Note : This is an advanced setting

      Parameters:
      state - the new state. Default value is ""
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getState

      public State getState()
      Current "state" of this widget. The state setting is automatically updated as the user interacts with the component (see showRollOver, showDown, showDisabled).

      StatefulCanvases will have a different appearance based on their current state. By default this is handled by changing the css className applied to the StatefulCanvas - see baseStyle and getStateSuffix() for a description of how this is done.

      For Img or StretchImg based subclasses of StatefulCanvas, the appearance may also be updated by changing the src of the rendered image. See Img.src and StretchImgButton.src for a description of how the URL is modified to reflect the state of the widget in this case.

      Returns:
      Return the state of this StatefulCanvas. Default value is ""
      See Also:
    • setStyleName

      public void setStyleName(String styleName)
      StatefulCanvases are styled by combining baseStyle with State to build a composite css style name. In most cases, statefulCanvas.styleName will have no effect on statefulCanvas styling and should not be used.

      If the baseStyle is not explicitly specified for a class, the styleName will be used as a default baseStyle. Other than that, this attribute will be ignored.

      Overrides:
      setStyleName in class Canvas
      Parameters:
      styleName - New styleName value. Default value is "normal"
      See Also:
    • getStyleName

      public String getStyleName()
      StatefulCanvases are styled by combining baseStyle with State to build a composite css style name. In most cases, statefulCanvas.styleName will have no effect on statefulCanvas styling and should not be used.

      If the baseStyle is not explicitly specified for a class, the styleName will be used as a default baseStyle. Other than that, this attribute will be ignored.

      Overrides:
      getStyleName in class Canvas
      Returns:
      Current styleName value. Default value is "normal"
      See Also:
    • setTitle

      public void setTitle(String title)
      The title HTML to display in this button.

      If this method is called after the component has been drawn/initialized: Setter for the title.
      Overrides:
      setTitle in class Canvas
      Parameters:
      title - the new title HTML. Default value is null
      See Also:
    • getTitle

      public String getTitle()
      The title HTML to display in this button.
      Overrides:
      getTitle in class Canvas
      Returns:
      Return the title - HTML drawn inside the component.

      Default is to simply return this.title. Default value is null

      See Also:
    • setValign

      public StatefulCanvas setValign(VerticalAlignment valign)
      Vertical alignment of this component's title.
      Parameters:
      valign - New valign value. Default value is Canvas.CENTER
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getValign

      public VerticalAlignment getValign()
      Vertical alignment of this component's title.
      Returns:
      Current valign value. Default value is Canvas.CENTER
      See Also:
    • setVIconStyle

      public StatefulCanvas setVIconStyle(String vIconStyle)
      Base CSS style applied to the icon image when vertical is set to true. If set, as the StatefulCanvas changes state and/or is selected, suffixes will be appended to vIconStyle to form the className set on the image element.

      The iconStyle for details about stateful suffixes.

      Parameters:
      vIconStyle - New vIconStyle value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getVIconStyle

      public String getVIconStyle()
      Base CSS style applied to the icon image when vertical is set to true. If set, as the StatefulCanvas changes state and/or is selected, suffixes will be appended to vIconStyle to form the className set on the image element.

      The iconStyle for details about stateful suffixes.

      Returns:
      Current vIconStyle value. Default value is null
      See Also:
    • setWidth

      public StatefulCanvas setWidth(Integer width)
      Size for this component's horizontal dimension. See Canvas.width for more details.

      Note that if autoFit is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      setWidth in class Canvas
      Parameters:
      width - New width value. Default value is null
      Returns:
      StatefulCanvas instance, for chaining setter calls
      See Also:
    • getWidth

      public Integer getWidth()
      Size for this component's horizontal dimension. See Canvas.width for more details.

      Note that if autoFit is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      getWidth in class Canvas
      Returns:
      Current width value. Default value is null
      See Also:
    • setWidth

      public void setWidth(String width)
      Size for this component's horizontal dimension. See Canvas.width for more details.

      Note that if autoFit is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      setWidth in class Canvas
      Parameters:
      width - New width value. Default value is null
      See Also:
    • getWidthAsString

      public String getWidthAsString()
      Size for this component's horizontal dimension. See Canvas.width for more details.

      Note that if autoFit is set, this property will be ignored so that the widget is always sized just large enough to accommodate the title.

      Overrides:
      getWidthAsString in class Canvas
      Returns:
      Current width value. Default value is null
      See Also:
    • addToRadioGroup

      public void addToRadioGroup(String groupID)
      Add this widget to the specified mutually exclusive selection group with the ID passed in. Selecting this widget will then deselect any other StatefulCanvases with the same radioGroup ID. StatefulCanvases can belong to only one radioGroup, so this method will remove from any other radiogroup of which this button is already a member.
      Parameters:
      groupID - - ID of the radiogroup to which this widget should be added
      See Also:
    • deselect

      public void deselect()
      Deselect this object.
      See Also:
    • getAriaStateDefaults

      public Map getAriaStateDefaults()
      Retrieves dynamically calculated default ARIA state mapping properties for this canvas. These will be combined with explicitly specified aria state as described in Canvas.getAriaState().

      Overridden by StatefulCanvas to pick up aria-label.

      Overrides:
      getAriaStateDefaults in class Canvas
      Returns:
      dynamically calculated default aria state properties
    • getStateSuffix

      public String getStateSuffix()
      Returns the suffix that will be appended to the baseStyle as the component changes state and/or is selected / focused.

      Note that suffixes will only be included if the relevant show[StateName] attributes (EG showRollOver, showFocused, etc) are set to true.

      The following table lists out the standard set of suffixes which may be applied to the base style:

      CSS Class AppliedDescription
      baseStyleDefault css style
      baseStyle+Selected Applied when selected is set to true.
      baseStyle+Focused Applied when the component has keyboard focus, if showFocused is true, and showFocusedAsOver is not true.
      baseStyle+Over Applied when showRollOver is set to true and either the user rolls over the component or showFocusedAsOver is true and the component has keyboard focus.
      baseStyle+Down Applied when the user presses the mouse button on the component if showDown is set to true
      baseStyle+Disabled Applied when the component is disabled if showDisabled is true.
      Combined styles
      baseStyle+SelectedFocused Combined Selected and focused styling
      baseStyle+SelectedOver Combined Selected and rollOver styling
      baseStyle+FocusedOver Combined Focused and rollOver styling
      baseStyle+SelectedFocusedOver Combined Selected, Focused and rollOver styling
      baseStyle+SelectedDown Combined Selected and mouse-down styling
      baseStyle+FocusedDown Combined Focused and mouse-down styling
      baseStyle+SelectedFocusedDown Combined Selected, Focused and mouse-down styling
      baseStyle+SelectedDisabled Combined Selected and Disabled styling
      Returns:
      suffix to be appended to the baseStyle
    • removeFromRadioGroup

      public void removeFromRadioGroup()
      Remove this widget from the specified mutually exclusive selection group with the ID passed in. No-op's if this widget is not a member of the groupID passed in. If no groupID is passed in, defaults to removing from whatever radioGroup this widget is a member of.
      See Also:
    • removeFromRadioGroup

      public void removeFromRadioGroup(String groupID)
      Remove this widget from the specified mutually exclusive selection group with the ID passed in. No-op's if this widget is not a member of the groupID passed in. If no groupID is passed in, defaults to removing from whatever radioGroup this widget is a member of.
      Parameters:
      groupID - - optional radio group ID (to ensure the widget is removed from the appropriate group.
      See Also:
    • select

      public void select()
      Select this object.
      See Also:
    • setDefaultProperties

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

      public StatefulCanvas setTitleStyle(String titleStyle)
    • setTitleFormatter

      public void setTitleFormatter(TitleFormatter customizer)
    • isSelected

      public Boolean isSelected()
      Find out if this object is selected.
      Returns:
      Boolean
      See Also:
    • setLogicalStructure

      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 Canvas