com.google.web.bindery.requestfactory.gwt.client

## Interface RequestFactoryEditorDriver<P,E extends Editor<? super P>>

- Type Parameters:
    `P` - the type of Proxy being edited
    `E` - the type of Editor that will edit the Record
  All Superinterfaces:
    EditorDriver<RequestContext>
  All Known Implementing Classes:
    MockRequestFactoryEditorDriver

      public interface RequestFactoryEditorDriver<P,E extends Editor<? super P>>
      extends EditorDriver<RequestContext>

  The interface that links RequestFactory and the Editor framework together.

  Instances of this interface are created with

       interface MyRFED extends RequestFactoryEditorDriver<MyObjectProxy, MyObjectEditor> {}
       MyRFED instance = GWT.create(MyRFED.class);
       {
       instance.initialize(.....);
       myRequest.with(instance.getPaths());

       // Fire the request, in the callback
       instance.edit(retrievedRecord);
       // Control when the request is sent
       instance.flush().fire(new Receiver {...});
       }

  See Also:
    `HasRequestContext`, `MockRequestFactoryEditorDriver`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `display(P proxy)` Start driving the Editor and its sub-editors with data for display-only mode.
    `void` | `edit(P proxy, RequestContext request)` Start driving the Editor and its sub-editors with data.
    `RequestContext` | `flush()` Update the object being edited with the current state of the Editor.
    `java.lang.String[]` | `getPaths()` Returns a new array containing the request paths.
    `void` | `initialize(E editor)` Initializes a driver that will not be able to support subscriptions.
    `void` | `initialize(EventBus eventBus, RequestFactory requestFactory, E editor)` Overload of `initialize(RequestFactory, Editor)` to allow a modified `EventBus` to be monitored for subscription services.
    `void` | `initialize(RequestFactory requestFactory, E editor)` Initializes a driver with the editor it will run, and a RequestFactory to use for subscription services.
    `boolean` | `setViolations(java.lang.Iterable<Violation> violations)` Deprecated. Users should switch to `EditorDriver.setConstraintViolations(Iterable)`

    - ### Methods inherited from interface com.google.gwt.editor.client.EditorDriver

      `accept, getErrors, hasErrors, isDirty, setConstraintViolations`

- - ### Method Detail

    - #### display

          void display(P proxy)

      Start driving the Editor and its sub-editors with data for display-only mode.
      Parameters:
        `proxy` - a Proxy of type P

    - #### edit

          void edit(P proxy,
                  RequestContext request)

      Start driving the Editor and its sub-editors with data. A `RequestContext` is required to provide context for the changes to the proxy (see `RequestContext.edit(T)`. Note that this driver will not fire the request.
      Parameters:
        `proxy` - the proxy to be edited
        `request` - the request context that will accumulate edits and is returned form `flush()`

    - #### flush

          RequestContext flush()

      Update the object being edited with the current state of the Editor.
      Specified by:
        `flush` in interface `EditorDriver<RequestContext>`
      Returns:
        the RequestContext passed into `edit(Object, RequestContext)`
      Throws:
        `java.lang.IllegalStateException` - if `edit(Object, RequestContext)` has not been called

    - #### getPaths

          java.lang.String[] getPaths()

      Returns a new array containing the request paths.
      Returns:
        an array of Strings

    - #### initialize

          void initialize(E editor)

      Initializes a driver that will not be able to support subscriptions. Calls to `EditorDelegate.subscribe()` will do nothing.
      Parameters:
        `editor` - an `Editor` of type E

    - #### initialize

          void initialize(EventBus eventBus,
                        RequestFactory requestFactory,
                        E editor)

      Overload of `initialize(RequestFactory, Editor)` to allow a modified `EventBus` to be monitored for subscription services.
      Parameters:
        `eventBus` - the `EventBus`
        `requestFactory` - a `RequestFactory` instance
        `editor` - an `Editor` of type E
      See Also:
        `EditorDelegate.subscribe()`, `ResettableEventBus`

    - #### initialize

          void initialize(RequestFactory requestFactory,
                        E editor)

      Initializes a driver with the editor it will run, and a RequestFactory to use for subscription services.
      Parameters:
        `requestFactory` - a `RequestFactory` instance
        `editor` - an `Editor` of type E
      See Also:
        `EditorDelegate.subscribe()`

    - #### setViolations

          @Deprecated
          boolean setViolations(java.lang.Iterable<Violation> violations)

      Deprecated. Users should switch to `EditorDriver.setConstraintViolations(Iterable)`
      Show Violations returned from an attempt to submit a request. The violations will be converted into `EditorError` objects whose `getUserData()` method can be used to access the original Violation object.
      Parameters:
        `violations` - an Iterable over `Violation` instances
      Returns:
        `true` if there were any unconsumed EditorErrors which can be retrieved from `EditorDriver.getErrors()`