com.google.gwt.editor.client

## Interface EditorDelegate<T>

- Type Parameters:
    `T` - the type of object the delegate can accept
  All Known Implementing Classes:
    MockEditorDelegate

      public interface EditorDelegate<T>

  Binds an individual Editor to the backing service. Every Editor has a peer EditorDelegate. If an Editor implements the `ValueAwareEditor` interface, the EditorDriver will make the delegate available through the `HasEditorDelegate.setDelegate(com.google.gwt.editor.client.EditorDelegate<T>)` method.
  See Also:
    `MockEditorDelegate`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getPath()` Returns the Editor's path, relative to the root object.
    `void` | `recordError(java.lang.String message, java.lang.Object value, java.lang.Object userData)` This method should be called from `ValueAwareEditor.flush()` or `TakesValue.getValue()` to record an error that will be reported to the nearest super-Editor that implements the `HasEditorErrors` interface.
    `void` | `setDirty(boolean dirty)` Toggle the dirty-state flag for the Editor.
    `HandlerRegistration` | `subscribe()` Register for notifications if object being edited is updated.

- - ### Method Detail

    - #### getPath

          java.lang.String getPath()

      Returns the Editor's path, relative to the root object.
      Returns:
        the path as a String

    - #### recordError

          void recordError(java.lang.String message,
                           java.lang.Object value,
                           java.lang.Object userData)

      This method should be called from `ValueAwareEditor.flush()` or `TakesValue.getValue()` to record an error that will be reported to the nearest super-Editor that implements the `HasEditorErrors` interface.
      Parameters:
        `message` - a textual description of the error
        `value` - the value to be returned by `EditorError.getValue()` or `null` if the value currently associated with the Editor should be used
        `userData` - an arbitrary object, possibly `null`, that can be retrieved with `EditorError.getUserData()`

    - #### setDirty

          void setDirty(boolean dirty)

      Toggle the dirty-state flag for the Editor.

      The dirty state of an Editor will be automatically cleared any time the Driver's `edit()` or `flush()` methods are called.

      The dirty state will be automatically calculated for `LeafValueEditor` instances based on an `Object.equals(Object)` comparison of `TakesValue.getValue()` and the value last passed to `TakesValue.setValue(Object)`, however a clean state can be overridden by calling `setDirty(true)`.

      Parameters:
        `dirty` - the dirty state of the Editor

    - #### subscribe

          HandlerRegistration subscribe()

      Register for notifications if object being edited is updated. Not all backends support subscriptions and will return `null`.

      The notification will occur via `ValueAwareEditor.onPropertyChange(java.lang.String...)` if the backend supports in-place property updates, otherwise updates will be passed via `ValueAwareEditor.setValue(T)`.

      Returns:
        a HandlerRegistration to unsubscribe from the notifications or `null` if the delegate does not support subscription