Class Img

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:
HeaderControl, ImgButton, ImgSplitbar, ToolStripSeparator

public class Img extends StatefulCanvas
The Img widget class implements a simple widget that displays a single image.
See Also:
  • Constructor Details

    • Img

      public Img()
    • Img

      public Img(JavaScriptObject jsObj)
    • Img

      public Img(String src)
    • Img

      public Img(String src, int width, int height)
  • Method Details

    • getOrCreateRef

      public static Img 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 StatefulCanvas
    • setAltText

      public Img setAltText(String altText)
      If specified this property will be included as the alt text for the image HMTL element. This is useful for improving application accessibility.

      altText and hover prompt / tooltip behavior: Note that some browsers, including Internet Explorer 9, show a native hover tooltip containing the img tag's alt attribute. Developers should not rely on this behavior to show the user a hover prompt - instead the prompt attribute should be used.
      To set alt text and ensure a hover prompt shows up in all browsers, developers may set prompt and altText to the same value. If both these attributes are set, the standard Smart GWT prompt behavior will show a hover prompt in most browsers, but will be suppressed for browsers where a native tooltip is shown for altText. Note that setting altText and prompt to different values is not recommended - the prompt value will be ignored in favor of the altText in this case.

      Parameters:
      altText - New altText value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getAltText

      public String getAltText()
      If specified this property will be included as the alt text for the image HMTL element. This is useful for improving application accessibility.

      altText and hover prompt / tooltip behavior: Note that some browsers, including Internet Explorer 9, show a native hover tooltip containing the img tag's alt attribute. Developers should not rely on this behavior to show the user a hover prompt - instead the prompt attribute should be used.
      To set alt text and ensure a hover prompt shows up in all browsers, developers may set prompt and altText to the same value. If both these attributes are set, the standard Smart GWT prompt behavior will show a hover prompt in most browsers, but will be suppressed for browsers where a native tooltip is shown for altText. Note that setting altText and prompt to different values is not recommended - the prompt value will be ignored in favor of the altText in this case.

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

      public Img 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 "ImgEditProxy"
      Returns:
      Img 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 "ImgEditProxy"
      See Also:
    • setImageHeight

      public Img setImageHeight(Integer imageHeight) throws IllegalStateException
      Explicit size for the image, for imageType settings that would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Parameters:
      imageHeight - New imageHeight value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getImageHeight

      public Integer getImageHeight()
      Explicit size for the image, for imageType settings that would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Returns:
      Current imageHeight value. Default value is null
      See Also:
    • setImageSize

      public Img setImageSize(Integer imageSize) throws IllegalStateException
      Convenience for setting the ${isc.DocUtils.linkForRef('attr:Img.imageWidth','imageWidth) and \n imageHeight') attributes to the same value, for cases where imageType settings would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Parameters:
      imageSize - New imageSize value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getImageSize

      public Integer getImageSize()
      Convenience for setting the ${isc.DocUtils.linkForRef('attr:Img.imageWidth','imageWidth) and \n imageHeight') attributes to the same value, for cases where imageType settings would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Returns:
      Current imageSize value. Default value is null
      See Also:
    • setImageType

      public Img setImageType(ImageStyle imageType)
      Indicates whether the image should be tiled/cropped, stretched, or centered when the size of this widget does not match the size of the image. CENTER shows the image in it's natural size, but can't do so while the transparency fix is active for IE. The transparency fix can be manually disabled by setting usePNGFix to false. See ImageStyle for further details.

      If this method is called after the component has been drawn/initialized: Change the style of image rendering.
      Parameters:
      imageType - new style of image rendering. Default value is Img.STRETCH
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getImageType

      public ImageStyle getImageType()
      Indicates whether the image should be tiled/cropped, stretched, or centered when the size of this widget does not match the size of the image. CENTER shows the image in it's natural size, but can't do so while the transparency fix is active for IE. The transparency fix can be manually disabled by setting usePNGFix to false. See ImageStyle for further details.
      Returns:
      Current imageType value. Default value is Img.STRETCH
      See Also:
    • setImageWidth

      public Img setImageWidth(Integer imageWidth) throws IllegalStateException
      Explicit size for the image, for imageType settings that would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Parameters:
      imageWidth - New imageWidth value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getImageWidth

      public Integer getImageWidth()
      Explicit size for the image, for imageType settings that would normally use the image's natural size (applies to imageType "center" and "normal" only).
      Returns:
      Current imageWidth value. Default value is null
      See Also:
    • setName

      public Img setName(String name) throws IllegalStateException
      The value of this attribute is specified as the value of the 'name' attribute in the resulting HTML.

      Note: this attribute is ignored if the imageType is set to "tile"

      Note : This is an advanced setting

      Overrides:
      setName in class Canvas
      Parameters:
      name - New name value. Default value is "main"
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • setPrompt

      public Img setPrompt(String prompt)
      Prompt displayed in hover canvas if showHover is true.
      Overrides:
      setPrompt in class Canvas
      Parameters:
      prompt - New prompt value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getPrompt

      public String getPrompt()
      Prompt displayed in hover canvas if showHover is true.
      Overrides:
      getPrompt in class Canvas
      Returns:
      Current prompt value. Default value is null
      See Also:
    • setShowDisabled

      public Img setShowDisabled(Boolean showDisabled)
      Should we visibly change state when disabled?

      This will impact the styling of the component when disabled. It may also impact the image being displayed - see also showImageDisabled.

      Overrides:
      setShowDisabled in class StatefulCanvas
      Parameters:
      showDisabled - New showDisabled value. Default value is true
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowDisabled

      public Boolean getShowDisabled()
      Should we visibly change state when disabled?

      This will impact the styling of the component when disabled. It may also impact the image being displayed - see also showImageDisabled.

      Overrides:
      getShowDisabled in class StatefulCanvas
      Returns:
      Current showDisabled value. Default value is true
      See Also:
    • setShowDown

      public Img setShowDown(Boolean showDown)
      Should we visibly change state when the mouse goes down in this object? This will impact the styling of the component on mouse down. It may also impact the image being displayed - see also showImageDown.
      Overrides:
      setShowDown in class StatefulCanvas
      Parameters:
      showDown - New showDown value. Default value is false
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowDown

      public Boolean getShowDown()
      Should we visibly change state when the mouse goes down in this object? This will impact the styling of the component on mouse down. It may also impact the image being displayed - see also showImageDown.
      Overrides:
      getShowDown in class StatefulCanvas
      Returns:
      Current showDown value. Default value is false
      See Also:
    • setShowFocused

      public Img setShowFocused(Boolean showFocused)
      Should we visibly change state when the canvas receives focus? If StatefulCanvas.showFocusedAsOver is true, then "over" will be used to indicate focus. Otherwise a separate "focused" state will be used.

      This will impact the styling of the component on focus. It may also impact the image being displayed - see also showImageFocused.

      Overrides:
      setShowFocused in class StatefulCanvas
      Parameters:
      showFocused - New showFocused value. Default value is false
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowFocused

      public Boolean getShowFocused()
      Should we visibly change state when the canvas receives focus? If StatefulCanvas.showFocusedAsOver is true, then "over" will be used to indicate focus. Otherwise a separate "focused" state will be used.

      This will impact the styling of the component on focus. It may also impact the image being displayed - see also showImageFocused.

      Overrides:
      getShowFocused in class StatefulCanvas
      Returns:
      Current showFocused value. Default value is false
      See Also:
    • setShowFocusedAsOver

      public Img 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.

      This property effects the css styling for the focused state.
      If src is specified as a string it will also cause the "Over" media to be displayed to indicate focus, unless explicitly overridden by showImageFocusedAsOver. Note that this has no impact on the image to be displayed if src is specified as a SCStatefulImgConfig.

      Overrides:
      setShowFocusedAsOver in class StatefulCanvas
      Parameters:
      showFocusedAsOver - New showFocusedAsOver value. Default value is true
      Returns:
      Img 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.

      This property effects the css styling for the focused state.
      If src is specified as a string it will also cause the "Over" media to be displayed to indicate focus, unless explicitly overridden by showImageFocusedAsOver. Note that this has no impact on the image to be displayed if src is specified as a SCStatefulImgConfig.

      Overrides:
      getShowFocusedAsOver in class StatefulCanvas
      Returns:
      Current showFocusedAsOver value. Default value is true
      See Also:
    • setShowImageDisabled

      public Img setShowImageDisabled(Boolean showImageDisabled)
      Should the image be updated when disabled as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showDisabled will be used to determine whether to show a disabled image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Disabled state image will be displayed if defined.

      Parameters:
      showImageDisabled - New showImageDisabled value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowImageDisabled

      public Boolean getShowImageDisabled()
      Should the image be updated when disabled as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showDisabled will be used to determine whether to show a disabled image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Disabled state image will be displayed if defined.

      Returns:
      Current showImageDisabled value. Default value is null
      See Also:
    • setShowImageDown

      public Img setShowImageDown(Boolean showImageDown)
      Should the image be updated on mouse down as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showDown will be used to determine whether to show a mouse down image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Down state image will be displayed if defined.

      Parameters:
      showImageDown - New showImageDown value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowImageDown

      public Boolean getShowImageDown()
      Should the image be updated on mouse down as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showDown will be used to determine whether to show a mouse down image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Down state image will be displayed if defined.

      Returns:
      Current showImageDown value. Default value is null
      See Also:
    • setShowImageFocused

      public Img setShowImageFocused(Boolean showImageFocused)
      Should the image be updated on focus as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showFocused will be used to determine whether to show a focused image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Over state image will be displayed if defined.

      Note that if src is defined as a string, the "Over" media may be used to indicate a focused state. See showFocusedAsOver and showImageFocusedAsOver.
      This is not the case for components with src defined as a SCStatefulImgConfig configuration.

      Parameters:
      showImageFocused - New showImageFocused value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowImageFocused

      public Boolean getShowImageFocused()
      Should the image be updated on focus as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showFocused will be used to determine whether to show a focused image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Over state image will be displayed if defined.

      Note that if src is defined as a string, the "Over" media may be used to indicate a focused state. See showFocusedAsOver and showImageFocusedAsOver.
      This is not the case for components with src defined as a SCStatefulImgConfig configuration.

      Returns:
      Current showImageFocused value. Default value is null
      See Also:
    • setShowImageFocusedAsOver

      public Img setShowImageFocusedAsOver(Boolean showImageFocusedAsOver)
      If src is defined as a string, and this component is configured to show focused state images, this property will cause the "over" state image to be used to indicate focused state. (If unset, showFocusedAsOver will be consulted instead).

      Note that this has no impact on the image to be displayed if src is specified as a SCStatefulImgConfig.

      Parameters:
      showImageFocusedAsOver - New showImageFocusedAsOver value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowImageFocusedAsOver

      public Boolean getShowImageFocusedAsOver()
      If src is defined as a string, and this component is configured to show focused state images, this property will cause the "over" state image to be used to indicate focused state. (If unset, showFocusedAsOver will be consulted instead).

      Note that this has no impact on the image to be displayed if src is specified as a SCStatefulImgConfig.

      Returns:
      Current showImageFocusedAsOver value. Default value is null
      See Also:
    • setShowImageRollOver

      public Img setShowImageRollOver(Boolean showImageRollOver)
      Should the image be updated on rollOver as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showRollOver will be used to determine whether to show a roll-over image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Over state image will be displayed if defined.

      Parameters:
      showImageRollOver - New showImageRollOver value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowImageRollOver

      public Boolean getShowImageRollOver()
      Should the image be updated on rollOver as described in StatefulImages?

      If not explicitly set, behavior is as follows:
      If src is specified as a string, showRollOver will be used to determine whether to show a roll-over image.
      If src is specified as a SCStatefulImgConfig, the appropriate SCStatefulImgConfig.Over state image will be displayed if defined.

      Returns:
      Current showImageRollOver value. Default value is null
      See Also:
    • setShowRollOver

      public Img setShowRollOver(Boolean showRollOver)
      Should we visibly change state when the mouse goes over this object?

      This will impact the styling of the component on roll over. It may also impact the image being displayed - see also showImageRollOver.

      Overrides:
      setShowRollOver in class StatefulCanvas
      Parameters:
      showRollOver - New showRollOver value. Default value is false
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getShowRollOver

      public Boolean getShowRollOver()
      Should we visibly change state when the mouse goes over this object?

      This will impact the styling of the component on roll over. It may also impact the image being displayed - see also showImageRollOver.

      Overrides:
      getShowRollOver in class StatefulCanvas
      Returns:
      Current showRollOver value. Default value is false
      See Also:
    • setShowTitle

      public Img setShowTitle(Boolean showTitle)
      Determines whether any specified title will be displayed for this component.
      Applies to Image-based components only, where the title will be rendered out in a label floating over the component

      Note : This is an advanced setting

      Parameters:
      showTitle - New showTitle value. Default value is false
      Returns:
      Img instance, for chaining setter calls
    • getShowTitle

      public Boolean getShowTitle()
      Determines whether any specified title will be displayed for this component.
      Applies to Image-based components only, where the title will be rendered out in a label floating over the component
      Returns:
      Current showTitle value. Default value is false
    • setSize

      public Img setSize(Integer size) throws IllegalStateException
      Convenience for setting the ${isc.DocUtils.linkForRef('attr:StatefulCanvas.width','width) and height') of this widget to the same value, at init time only. See imageSize, or imageWidth / imageHeight, to control the size of the image itself for imageType settings that would normally use the image's natural size ("center" or "normal"), or where the image has no natural size, as with SVG Symbols.
      Parameters:
      size - New size value. Default value is null
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
      See Also:
    • getSize

      public Integer getSize()
      Convenience for setting the ${isc.DocUtils.linkForRef('attr:StatefulCanvas.width','width) and height') of this widget to the same value, at init time only. See imageSize, or imageWidth / imageHeight, to control the size of the image itself for imageType settings that would normally use the image's natural size ("center" or "normal"), or where the image has no natural size, as with SVG Symbols.
      Returns:
      Current size value. Default value is null
      See Also:
    • setSrc

      public Img setSrc(String src)
      The base filename or stateful image configuration for the image. Note that as the state of the component changes, the image displayed will be updated as described in StatefulImages.

      If this method is called after the component has been drawn/initialized: Changes the URL of this image and redraws it.

      Does nothing if the src has not changed - if src has not changed but other state has changed such that the image needs updating, call resetSrc() instead.

      Parameters:
      src - new URL for the image. Default value is "[SKINIMG]blank.gif"
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getSrc

      public String getSrc()
      The base filename or stateful image configuration for the image. Note that as the state of the component changes, the image displayed will be updated as described in StatefulImages.
      Returns:
      Current src value. Default value is "[SKINIMG]blank.gif"
      See Also:
    • setSrc

      public Img setSrc(SCStatefulImgConfig src)
      The base filename or stateful image configuration for the image. Note that as the state of the component changes, the image displayed will be updated as described in StatefulImages.

      If this method is called after the component has been drawn/initialized: Changes the URL of this image and redraws it.

      Does nothing if the src has not changed - if src has not changed but other state has changed such that the image needs updating, call resetSrc() instead.

      Parameters:
      src - new URL for the image. Default value is "[SKINIMG]blank.gif"
      Returns:
      Img instance, for chaining setter calls
      See Also:
    • getSrcAsSCStatefulImgConfig

      public SCStatefulImgConfig getSrcAsSCStatefulImgConfig()
      The base filename or stateful image configuration for the image. Note that as the state of the component changes, the image displayed will be updated as described in StatefulImages.
      Returns:
      Current src value. Default value is "[SKINIMG]blank.gif"
      See Also:
    • setUsePNGFix

      public Img setUsePNGFix(Boolean usePNGFix) throws IllegalStateException
      If false, never apply the png fix needed in Internet Explorer to make png transparency work correctly.
      Parameters:
      usePNGFix - New usePNGFix value. Default value is true
      Returns:
      Img instance, for chaining setter calls
      Throws:
      IllegalStateException - this property cannot be changed after the component has been created
    • getUsePNGFix

      public Boolean getUsePNGFix()
      If false, never apply the png fix needed in Internet Explorer to make png transparency work correctly.
      Returns:
      Current usePNGFix value. Default value is true
    • resetSrc

      public void resetSrc()
      Refresh the image being shown. Call this when the src attribute has not changed, but other state that affects the image URL (such as being selected) has changed.
      See Also:
    • setDefaultProperties

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

      public void setHoverHTMLCustomizer(HoverHTMLCustomizer hoverHTMLCustomizer)
      If this.showHover is true, when the user holds the mouse over this Canvas for long enough to trigger a hover event, a hover canvas is shown by default. This method returns the contents of that hover canvas.

      Overridden from Canvas:
      If prompt is specified, and altText is unset, default implementation is unchanged - the prompt text will be displayed in the hover.
      If altText and prompt are set this method will return null to suppress the standard hover behavior in browsers where the alt attribute on an img tag causes a native tooltip to appear, such as Internet Explorer. On other browsers the altText value will be returned.

      Parameters:
      hoverHTMLCustomizer - the customizer to execute.
    • setLogicalStructure

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