com.smartgwt.client.widgets

## Class BaseWidget

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.smartgwt.client.widgets.BaseWidget

- All Implemented Interfaces:
    com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.HasVisibility, com.google.gwt.user.client.ui.IsWidget, LogicalStructure
  Direct Known Subclasses:
    Canvas, DrawItem, PointerSettings, Sound

      public class BaseWidget
      extends com.google.gwt.user.client.ui.Widget
      implements com.google.gwt.event.shared.HasHandlers, LogicalStructure

  Base class for `Canvas` and `DrawItem`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected com.google.gwt.core.client.JavaScriptObject` | `config`
    `protected boolean` | `configOnly`
    `protected boolean` | `factoryCreated`
    `protected java.util.Map<java.lang.String,java.lang.Object>` | `factoryProperties`
    `protected java.lang.String` | `id`
    `NativeObject` | `nativeObject`
    `protected java.lang.String` | `scClassName`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BaseWidget()`
    `BaseWidget(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `BaseWidget(java.lang.String id)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.gwt.event.shared.HandlerRegistration` | `addDrawHandler(DrawHandler handler)`
    `void` | `addDynamicProperty(java.lang.String propertyName, AdvancedCriteria criteria)` Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.
    `void` | `addDynamicProperty(java.lang.String propertyName, java.lang.String source)` Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.
    `void` | `addDynamicProperty(java.lang.String propertyName, UserFormula formula)` Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.
    `void` | `addDynamicProperty(java.lang.String propertyName, UserSummary summary)` Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.
    `void` | `applyFactoryProperties()`
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `void` | `clearDynamicProperty(java.lang.String propertyName)` Clears a dynamic property previously established via `addDynamicProperty`.
    `void` | `completeCreation()` Commits a widget to being an actual live instance instead of being used as a configuration template with various APIs that accept a properties object.
    `protected com.google.gwt.core.client.JavaScriptObject` | `create()`
    `void` | `destroy()` Permanently destroy a Canvas and all of it's children / members, recursively.
    `protected <H extends com.google.gwt.event.shared.EventHandler> com.google.gwt.event.shared.HandlerRegistration` | `doAddHandler(H handler, com.google.gwt.event.shared.GwtEvent.Type<H> type)` Adds this handler to the widget.
    `protected void` | `doInit()`
    `void` | `doOnRender(Function function)`
    `void` | `draw()` Draws the widget on the page.
    `boolean` | `equals(java.lang.Object obj)`
    `protected void` | `error(java.lang.String message)`
    `protected void` | `errorIfNotCreated(java.lang.String property)`
    `java.lang.String` | `getAttribute(java.lang.String attribute)`
    `protected java.lang.Boolean` | `getAttributeAsBoolean(java.lang.String property)`
    `protected java.util.Date` | `getAttributeAsDate(java.lang.String property)`
    `protected java.util.Date[]` | `getAttributeAsDateArray(java.lang.String property)`
    `protected java.lang.Double` | `getAttributeAsDouble(java.lang.String property)`
    `protected com.google.gwt.dom.client.Element` | `getAttributeAsElement(java.lang.String property)`
    `protected java.lang.Float` | `getAttributeAsFloat(java.lang.String property)`
    `protected java.lang.Float[]` | `getAttributeAsFloatArray(java.lang.String property)`
    `protected java.lang.Integer` | `getAttributeAsInt(java.lang.String property)`
    `protected int[]` | `getAttributeAsIntArray(java.lang.String property)`
    `protected com.google.gwt.core.client.JavaScriptObject` | `getAttributeAsJavaScriptObject(java.lang.String property)`
    `protected java.util.Map` | `getAttributeAsMap(java.lang.String property)`
    `protected java.lang.Object` | `getAttributeAsObject(java.lang.String property)`
    `protected Record` | `getAttributeAsRecord(java.lang.String property)`
    `protected java.lang.String` | `getAttributeAsString(java.lang.String property)`
    `protected java.lang.String[]` | `getAttributeAsStringArray(java.lang.String property)`
    `static BaseWidget` | `getById(java.lang.String ID)` Retrieve a BaseWidget by its global `ID`.
    `static BaseWidget` | `getByJSObject(com.google.gwt.core.client.JavaScriptObject jsObj)` Retrieve a BaseWidget from its `JavaScriptObject`.
    `java.lang.String` | `getClassName()` Returns the javascript class name.
    `com.google.gwt.core.client.JavaScriptObject` | `getConfig()`
    `com.google.gwt.dom.client.Element` | `getDOM()`
    `int` | `getHandlerCount(com.google.gwt.event.shared.GwtEvent.Type<?> type)`
    `java.lang.String` | `getID()`
    `java.lang.String` | `getInnerHTML()` Return the inner HTML for this canvas.
    `com.google.gwt.core.client.JavaScriptObject` | `getJsObj()`
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `getLogicalStructure()` Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `com.google.gwt.core.client.JavaScriptObject` | `getOrCreateJsObj()`
    `static BaseWidget` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `static BaseWidget` | `getRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `java.lang.String` | `getScClassName()` Get the name of the underlying SmartClient class
    `java.lang.String` | `getTitle()`
    `static boolean` | `hasAutoAssignedID(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `boolean` | `hasDynamicProperty(java.lang.String propertyName)` Returns true if the property is dynamic.
    `int` | `hashCode()`
    `void` | `initNativeObject()`
    `protected void` | `internalSetID(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `protected void` | `internalSetID(java.lang.String id, boolean autoAssigned)`
    `boolean` | `isConfigOnly()`
    `boolean` | `isCreated()`
    `java.lang.Boolean` | `isDrawn()` Returns the boolean true if the widget has been completely drawn, and false otherwise.
    `boolean` | `isFactoryCreated()`
    `protected void` | `onBind()`
    `protected void` | `onDestroy()`
    `protected void` | `onDraw()`
    `protected void` | `onInit()`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, BaseClass[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, BaseWidget[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, BaseWidget value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.Boolean value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, DataClass[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, DataClass value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.util.Date value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, double[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, double value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, com.google.gwt.dom.client.Element value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, float[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.Float[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, float value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, int[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.Integer value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, com.google.gwt.core.client.JavaScriptObject[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, com.google.gwt.core.client.JavaScriptObject value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.util.Map value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.Object[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.String[] value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, java.lang.String value, boolean allowPostCreate)`
    `protected BaseWidget` | `setAttribute(java.lang.String attribute, ValueEnum value, boolean allowPostCreate)`
    `void` | `setConfig(com.google.gwt.core.client.JavaScriptObject config)`
    `void` | `setConfigOnly(boolean configOnly)`
    `static void` | `setDefaultProperties(BaseWidget baseWidgetProperties)` Class level method to set the default properties of this class.
    `protected boolean` | `setDragTracker()`
    `void` | `setFactoryCreated(boolean createdByBeanFactory)`
    `BaseWidget` | `setHtmlElement(com.google.gwt.dom.client.Element element)`
    `BaseWidget` | `setID(java.lang.String id)`
    `void` | `setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.widgets.BaseWidgetLogicalStructure s)` Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.core.LogicalStructureObject s)`
    `void` | `setNullProperty(java.lang.String property)`
    `void` | `setPosition(java.lang.String position)`
    `void` | `setProperty(java.lang.String property, boolean value)`
    `void` | `setProperty(java.lang.String property, double value)`
    `void` | `setProperty(java.lang.String property, com.google.gwt.dom.client.Element value)`
    `void` | `setProperty(java.lang.String property, float value)`
    `void` | `setProperty(java.lang.String property, int value)`
    `void` | `setProperty(java.lang.String property, com.google.gwt.core.client.JavaScriptObject value)`
    `void` | `setProperty(java.lang.String property, java.lang.String value)`
    `void` | `setScClassName(java.lang.String scClassName)` Set the name of the underlying SmartClient class.
    `void` | `setTitle(java.lang.String title)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setVisible, setVisible, setWidth, sinkBitlessEvent`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Field Detail

    - #### id

          protected java.lang.String id

    - #### config

          protected com.google.gwt.core.client.JavaScriptObject config

    - #### scClassName

          protected java.lang.String scClassName

    - #### configOnly

          protected boolean configOnly

    - #### factoryProperties

          protected java.util.Map<java.lang.String,java.lang.Object> factoryProperties

    - #### factoryCreated

          protected boolean factoryCreated

    - #### nativeObject

          public NativeObject nativeObject

  - ### Constructor Detail

    - #### BaseWidget

          public BaseWidget()

    - #### BaseWidget

          public BaseWidget(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### BaseWidget

          public BaseWidget(java.lang.String id)

  - ### Method Detail

    - #### getOrCreateRef

          public static BaseWidget getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.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:
        `AutoChildUsage`

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.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:
        `AutoChildUsage`

    - #### create

          protected com.google.gwt.core.client.JavaScriptObject create()

    - #### setDefaultProperties

          public static void setDefaultProperties(BaseWidget baseWidgetProperties)

      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:
        `baseWidgetProperties` - properties that should be used as new defaults when instances of this class are created
      See Also:
        `SGWTProperties`

    - #### getById

          public static BaseWidget getById(java.lang.String ID)

      Retrieve a BaseWidget by its global `ID`.
      Parameters:
        `ID` - global ID of the BaseWidget
      Returns:
        the Canvas, or null if not found

    - #### getByJSObject

          public static BaseWidget getByJSObject(com.google.gwt.core.client.JavaScriptObject jsObj)

      Retrieve a BaseWidget from its `JavaScriptObject`.
      Parameters:
        `jsObj` - SmartClient object associated with Canvas
      Returns:
        the BaseWidget, or null if not found

    - #### setFactoryCreated

          public void setFactoryCreated(boolean createdByBeanFactory)

    - #### isFactoryCreated

          public boolean isFactoryCreated()

    - #### doAddHandler

          protected final <H extends com.google.gwt.event.shared.EventHandler> com.google.gwt.event.shared.HandlerRegistration doAddHandler(H handler,
                                                                                                                                            com.google.gwt.event.shared.GwtEvent.Type<H> type)

      Adds this handler to the widget.
      Type Parameters:
        `H` - the type of handler to add
      Parameters:
        `type` - the event type
        `handler` - the handler
      Returns:
        `HandlerRegistration` used to remove the handler

    - #### getHandlerCount

          public int getHandlerCount(com.google.gwt.event.shared.GwtEvent.Type<?> type)

      Overrides:
        `getHandlerCount` in class `com.google.gwt.user.client.ui.Widget`

    - #### setJavaScriptObject

          public void setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### getRef

          public static BaseWidget getRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### hasAutoAssignedID

          public static boolean hasAutoAssignedID(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### getClassName

          public java.lang.String getClassName()

      Returns the javascript class name.
      Returns:

    - #### getScClassName

          public java.lang.String getScClassName()

      Get the name of the underlying SmartClient class
      Returns:
        the SmartClient class name

    - #### setScClassName

          public void setScClassName(java.lang.String scClassName)

      Set the name of the underlying SmartClient class. This is an advanced setting.
      Parameters:
        `scClassName` - the SmartClient class

    - #### doInit

          protected final void doInit()

    - #### onInit

          protected void onInit()

    - #### onBind

          protected void onBind()

    - #### isConfigOnly

          public boolean isConfigOnly()

    - #### setConfigOnly

          public void setConfigOnly(boolean configOnly)

    - #### setDragTracker

          protected boolean setDragTracker()

    - #### getInnerHTML

          public java.lang.String getInnerHTML()

      Return the inner HTML for this canvas. Called when the canvas is drawn or redrawn; override to customize.

      Note : `Canvas.setRedrawOnResize(java.lang.Boolean)` should be set to true for components whose inner HTML will not automatically reflow to fit the component's new size.

      Returns:
        HTML contents of this canvas

    - #### draw

          public void draw()

      Draws the widget on the page.

    - #### destroy

          public void destroy()

      Permanently destroy a Canvas and all of it's children / members, recursively.

      Like `Canvas.clear()` calling `destroy()` removes all HTML for the component; unlike clear(), a destroyed Canvas is permanently unusable: it cannot be draw()'n again and cannot be referenced by its global ID. This method also removes all JavaScript references to the Canvas outside of application code, making it eligible for garbage collection (though developers will need to release any references to the canvas held in application code themselves).

      Any attempt to call a method on a destroyed Canvas will generally result in an error. If your application is forced to hold onto Canvas's that might be destroy()d without warning, you can avoid errors by checking for the `Canvas.getDestroyed()` property. If you override certain Canvas methods, your code may be called while a Canvas is being destroy()d; in this case you can avoid extra work (and possibly errors) by checking for the +`Canvas.getDestroying()` property.

      Note that `destroy()` should not be called directly in event handling code for this canvas. For this reason, wherever possible we recommend using `Canvas.markForDestroy()` instead of calling this method directly.

      Note: This is an override point

    - #### doOnRender

          public void doOnRender(Function function)

    - #### addDrawHandler

          public com.google.gwt.event.shared.HandlerRegistration addDrawHandler(DrawHandler handler)

    - #### onDraw

          protected void onDraw()

    - #### onDestroy

          protected void onDestroy()

    - #### setPosition

          public void setPosition(java.lang.String position)

    - #### setHtmlElement

          public BaseWidget setHtmlElement(com.google.gwt.dom.client.Element element)

    - #### getDOM

          public com.google.gwt.dom.client.Element getDOM()

    - #### getID

          public java.lang.String getID()

    - #### internalSetID

          protected final void internalSetID(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### internalSetID

          protected final void internalSetID(java.lang.String id,
                                             boolean autoAssigned)

    - #### setID

          public BaseWidget setID(java.lang.String id)

    - #### getConfig

          public com.google.gwt.core.client.JavaScriptObject getConfig()

    - #### setConfig

          public void setConfig(com.google.gwt.core.client.JavaScriptObject config)

    - #### isCreated

          public boolean isCreated()

    - #### isDrawn

          public java.lang.Boolean isDrawn()

      Returns the boolean true if the widget has been completely drawn, and false otherwise.
      Returns:
        true if drawn, false if not drawn
      See Also:
        `Drawing overview and related methods`

    - #### getJsObj

          public com.google.gwt.core.client.JavaScriptObject getJsObj()

    - #### getOrCreateJsObj

          public com.google.gwt.core.client.JavaScriptObject getOrCreateJsObj()

    - #### completeCreation

          public void completeCreation()

      Commits a widget to being an actual live instance instead of being used as a configuration template with various APIs that accept a properties object.

      A widget will be automatically instantiated in some circumstances, such as:

      - when it's drawn
      - when it's added as a member of a `Layout` or child of a parent widget
      - when it's asked to perform any kind of network request (e.g. `listGrid.fetchData()`, etc.)

      In general, completeCreation() will also occur automatically as a result of methods that require the object to derive or calculate any kind of value. The object will remain in the uncreated state (still usable as just a configuration object) as long as the only methods that are called either set properties or retrieve properties previously set.

      Note that if the object has already been used as a configuration template, say by being passed to a method such as `Canvas.changeAutoChildDfaults()` as the properties object argument, then it is an error to call this method.

      For a discussion of when a widget should be treated as a properties object rather than a live instance, see `SmartGWT Properties`.

    - #### applyFactoryProperties

          public void applyFactoryProperties()

    - #### getAttribute

          public java.lang.String getAttribute(java.lang.String attribute)

    - #### getAttributeAsString

          protected java.lang.String getAttributeAsString(java.lang.String property)

    - #### getAttributeAsStringArray

          protected java.lang.String[] getAttributeAsStringArray(java.lang.String property)

    - #### getAttributeAsIntArray

          protected int[] getAttributeAsIntArray(java.lang.String property)

    - #### getAttributeAsFloatArray

          protected java.lang.Float[] getAttributeAsFloatArray(java.lang.String property)

    - #### getAttributeAsDate

          protected java.util.Date getAttributeAsDate(java.lang.String property)

    - #### getAttributeAsDateArray

          protected java.util.Date[] getAttributeAsDateArray(java.lang.String property)

    - #### getAttributeAsInt

          protected java.lang.Integer getAttributeAsInt(java.lang.String property)

    - #### getAttributeAsDouble

          protected java.lang.Double getAttributeAsDouble(java.lang.String property)

    - #### getAttributeAsElement

          protected com.google.gwt.dom.client.Element getAttributeAsElement(java.lang.String property)

    - #### getAttributeAsJavaScriptObject

          protected com.google.gwt.core.client.JavaScriptObject getAttributeAsJavaScriptObject(java.lang.String property)

    - #### getAttributeAsObject

          protected java.lang.Object getAttributeAsObject(java.lang.String property)

    - #### getAttributeAsFloat

          protected java.lang.Float getAttributeAsFloat(java.lang.String property)

    - #### getAttributeAsBoolean

          protected java.lang.Boolean getAttributeAsBoolean(java.lang.String property)

    - #### getAttributeAsMap

          protected java.util.Map getAttributeAsMap(java.lang.String property)

    - #### getAttributeAsRecord

          protected Record getAttributeAsRecord(java.lang.String property)

    - #### errorIfNotCreated

          protected void errorIfNotCreated(java.lang.String property)
                                    throws java.lang.IllegalStateException

      Throws:
        `java.lang.IllegalStateException`

    - #### error

          protected void error(java.lang.String message)
                        throws java.lang.IllegalStateException

      Throws:
        `java.lang.IllegalStateException`

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.String value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            ValueEnum value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            BaseWidget value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.util.Map value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            int[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            float[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            double[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.Float[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            DataClass value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            DataClass[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            com.google.gwt.core.client.JavaScriptObject[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            BaseClass[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            BaseWidget[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            float value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            double value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.Integer value,
                                            boolean allowPostCreate)

    - #### setNullProperty

          public void setNullProperty(java.lang.String property)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  java.lang.String value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  boolean value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  int value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  float value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  double value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  com.google.gwt.dom.client.Element value)

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  com.google.gwt.core.client.JavaScriptObject value)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.util.Date value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            com.google.gwt.core.client.JavaScriptObject value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.String[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.Object[] value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            java.lang.Boolean value,
                                            boolean allowPostCreate)

    - #### setAttribute

          protected BaseWidget setAttribute(java.lang.String attribute,
                                            com.google.gwt.dom.client.Element value,
                                            boolean allowPostCreate)

    - #### setTitle

          public void setTitle(java.lang.String title)

      Overrides:
        `setTitle` in class `com.google.gwt.user.client.ui.UIObject`

    - #### getTitle

          public java.lang.String getTitle()

      Overrides:
        `getTitle` in class `com.google.gwt.user.client.ui.UIObject`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `com.google.gwt.user.client.ui.UIObject`

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.core.LogicalStructureObject s)

      Specified by:
        `setLogicalStructure` in interface `LogicalStructure`

    - #### initNativeObject

          public void initNativeObject()

      Specified by:
        `initNativeObject` in interface `LogicalStructure`

    - #### addDynamicProperty

          public void addDynamicProperty(java.lang.String propertyName,
                                         java.lang.String source)

      Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.

      The dataPath, criteria, or formula is evaluated immediately when addDynamicProperty() is called, then re-evaluated every time the ruleScope changes. An `AdvancedCriteria` will always evaluate to boolean true or false, and a `UserSummary` to a string.

      It is invalid usage to use `addDynamicProperty()` on a property that is not runtime settable. However, `addDynamicProperty()` will not throw an error or log a warning if this is done.

      If a property is already dynamic and addDynamicProperty() is called again, the new dynamic behavior replaces the old. If a property should no longer be dynamic, call `clearDynamicProperty()`.

      Dynamic properties can also be declared together via `dynamicProperties`.

      Note that you may convert a simple criteria to an `AdvancedCriteria` by calling `DataSource.convertCriteria()`.

      Parameters:
        `propertyName` - name of a settable property on this instance. See `Identifier`
        `source` - a `DataPath`.
      See Also:
        `Canvas.getDataPath()`, `com.smartgwt.client.widgets.Class#getDynamicProperties`, `DataPath`

    - #### addDynamicProperty

          public void addDynamicProperty(java.lang.String propertyName,
                                         UserFormula formula)

      Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.

      The dataPath, criteria, or formula is evaluated immediately when addDynamicProperty() is called, then re-evaluated every time the ruleScope changes. An `AdvancedCriteria` will always evaluate to boolean true or false, and a `UserSummary` to a string.

      It is invalid usage to use `addDynamicProperty()` on a property that is not runtime settable. However, `addDynamicProperty()` will not throw an error or log a warning if this is done.

      If a property is already dynamic and addDynamicProperty() is called again, the new dynamic behavior replaces the old. If a property should no longer be dynamic, call `clearDynamicProperty()`.

      Dynamic properties can also be declared together via `dynamicProperties`.

      Note that you may convert a simple criteria to an `AdvancedCriteria` by calling `DataSource.convertCriteria()`.

      Parameters:
        `propertyName` - name of a settable property on this instance. See `Identifier`
        `formula` - a `UserFormula`
      See Also:
        `Canvas.getDataPath()`, `com.smartgwt.client.widgets.Class#getDynamicProperties`, `DataPath`

    - #### addDynamicProperty

          public void addDynamicProperty(java.lang.String propertyName,
                                         UserSummary summary)

      Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.

      The dataPath, criteria, or formula is evaluated immediately when addDynamicProperty() is called, then re-evaluated every time the ruleScope changes. An `AdvancedCriteria` will always evaluate to boolean true or false, and a `UserSummary` to a string.

      It is invalid usage to use `addDynamicProperty()` on a property that is not runtime settable. However, `addDynamicProperty()` will not throw an error or log a warning if this is done.

      If a property is already dynamic and addDynamicProperty() is called again, the new dynamic behavior replaces the old. If a property should no longer be dynamic, call `clearDynamicProperty()`.

      Dynamic properties can also be declared together via `dynamicProperties`.

      Note that you may convert a simple criteria to an `AdvancedCriteria` by calling `DataSource.convertCriteria()`.

      Parameters:
        `propertyName` - name of a settable property on this instance. See `Identifier`
        `summary` - a `UserSummary`
      See Also:
        `Canvas.getDataPath()`, `com.smartgwt.client.widgets.Class#getDynamicProperties`, `DataPath`

    - #### addDynamicProperty

          public void addDynamicProperty(java.lang.String propertyName,
                                         AdvancedCriteria criteria)

      Sets up the value of `propertyName` to be dynamically derived from the `ruleScope`, by either a simple `DataPath` into the ruleScope, an `AdvancedCriteria` built against `DataPaths`, or via a textual or numeric formula using the ruleScope as available formula inputs.

      The dataPath, criteria, or formula is evaluated immediately when addDynamicProperty() is called, then re-evaluated every time the ruleScope changes. An `AdvancedCriteria` will always evaluate to boolean true or false, and a `UserSummary` to a string.

      It is invalid usage to use `addDynamicProperty()` on a property that is not runtime settable. However, `addDynamicProperty()` will not throw an error or log a warning if this is done.

      If a property is already dynamic and addDynamicProperty() is called again, the new dynamic behavior replaces the old. If a property should no longer be dynamic, call `clearDynamicProperty()`.

      Dynamic properties can also be declared together via `dynamicProperties`.

      Note that you may convert a simple criteria to an `AdvancedCriteria` by calling `DataSource.convertCriteria()`.

      Parameters:
        `propertyName` - name of a settable property on this instance. See `Identifier`
        `criteria` - an `AdvancedCriteria`
      See Also:
        `Canvas.getDataPath()`, `com.smartgwt.client.widgets.Class#getDynamicProperties`, `DataPath`

    - #### clearDynamicProperty

          public void clearDynamicProperty(java.lang.String propertyName)

      Clears a dynamic property previously established via `addDynamicProperty`.

      If the property is not currently dynamic, nothing will be done (and no warning logged).

      The current value of the property will not be changed by this call.

      Parameters:
        `propertyName` - name of the dynamic property to clear

    - #### hasDynamicProperty

          public boolean hasDynamicProperty(java.lang.String propertyName)

      Returns true if the property is dynamic.
      Parameters:
        `propertyName` - name of the dynamic property to check
      Returns:
        boolean true if the property is dynamic

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.BaseWidgetLogicalStructure s)

      Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

    - #### getLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()

      Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
      Specified by:
        `getLogicalStructure` in interface `LogicalStructure`