GWT 2.7.0

## com.google.gwt.editor.client.adapters
Class OptionalFieldEditor<T,E extends Editor<? super T>>

    java.lang.Object
      com.google.gwt.editor.client.adapters.OptionalFieldEditor<T,E>

Type Parameters:
  `T` - The type of data being managed
  `E` - The type of Editor

All Implemented Interfaces:
  CompositeEditor<T,T,E>, Editor<T>, HasEditorDelegate<T>, LeafValueEditor<T>, ValueAwareEditor<T>, TakesValue<T>

    public class OptionalFieldEditor<T,E extends Editor<? super T>>

extends java.lang.Object
implements CompositeEditor<T,T,E>, LeafValueEditor<T>

This adapter can be used when a type being edited has an optional field that may be nullified or reassigned as part of the editing process. This consumer of this adapter will typically expose it via the `IsEditor` interface:

     class FooSelector extends Composite implements IsEditor<OptionalFieldEditor<Foo, FooEditor>> {
       private OptionalFieldEditor<Foo, FooEditor> editor = OptionalFieldEditor.of(new FooEditor());
       public OptionalFieldEditor<Foo, FooEditor> asEditor() {
         return editor;
       }
     }

Nested Class Summary

Nested classes/interfaces inherited from interface com.google.gwt.editor.client.CompositeEditor
`CompositeEditor.EditorChain<C,E extends Editor<? super C>>`

Nested classes/interfaces inherited from interface com.google.gwt.editor.client.Editor
`Editor.Ignore, Editor.Path`

Constructor Summary
`protected` | `OptionalFieldEditor(E subEditor)` Construct an OptionalFieldEditor backed by the given sub-Editor.

Method Summary
`E` | `createEditorForTraversal()` Returns the sub-Editor that the OptionalFieldEditor was constructed with.
`void` | `flush()` Indicates that the Editor cycle is finished.
`java.lang.String` | `getPathElement(E subEditor)` Returns an empty string because there is only ever one sub-editor used.
`T` | `getValue()` Returns the current value.

`static

`<T,E extends Editor<? super T>> OptionalFieldEditor<T,E>`

`

`of(E subEditor)`
Construct an OptionalFieldEditor backed by the given sub-Editor.

`void` | `onPropertyChange(java.lang.String... paths)` Notifies the Editor that one or more value properties have changed.
`void` | `setDelegate(EditorDelegate<T> delegate)` Called by the EditorDriver to provide access to the EditorDelegate the Editor is peered with.
`void` | `setEditorChain(CompositeEditor.EditorChain<T,E> chain)` Called by the Editor framework to provide the `CompositeEditor.EditorChain`.
`void` | `setValue(T value)` Called by the EditorDriver to set the object the Editor is peered with

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### OptionalFieldEditor

    protected OptionalFieldEditor(E subEditor)

  Construct an OptionalFieldEditor backed by the given sub-Editor.

  Parameters:
    `subEditor` - the sub-Editor that will be attached to the Editor hierarchy

Method Detail

### of

    public static <T,E extends Editor<? super T>> OptionalFieldEditor<T,E> of(E subEditor)

  Construct an OptionalFieldEditor backed by the given sub-Editor.

  Type Parameters:
    `T` - The type of data being managed
    `E` - The type of Editor
  Parameters:
    `subEditor` - the sub-Editor that will be attached to the Editor hierarchy
  Returns:
    a new instance of OptionalFieldEditor

### createEditorForTraversal

    public E createEditorForTraversal()

  Returns the sub-Editor that the OptionalFieldEditor was constructed with.

  Specified by:
    `createEditorForTraversal` in interface `CompositeEditor<T,T,E extends Editor<? super T>>`
  Returns:
    an `Editor` of type E

### flush

    public void flush()

  Description copied from interface: `ValueAwareEditor`
  Indicates that the Editor cycle is finished. This method will be called in a depth-first order by the EditorDriver, so Editors do not generally need to flush their sub-editors.

  Specified by:
    `flush` in interface `ValueAwareEditor<T>`

### getPathElement

    public java.lang.String getPathElement(E subEditor)

  Returns an empty string because there is only ever one sub-editor used.

  Specified by:
    `getPathElement` in interface `CompositeEditor<T,T,E extends Editor<? super T>>`
  Parameters:
    `subEditor` - an instance of the Editor type previously passed into `CompositeEditor.EditorChain.attach(C, E)`
  Returns:
    the path element as a String

### getValue

    public T getValue()

  Description copied from interface: `TakesValue`
  Returns the current value.

  Specified by:
    `getValue` in interface `TakesValue<T>`
  Returns:
    the value as an object of type V
  See Also:
    `TakesValue.setValue(V)`

### onPropertyChange

    public void onPropertyChange(java.lang.String... paths)

  Description copied from interface: `ValueAwareEditor`
  Notifies the Editor that one or more value properties have changed. Not all backing services support property-based notifications.

  Specified by:
    `onPropertyChange` in interface `ValueAwareEditor<T>`
  Parameters:
    `paths` - a list of String paths

### setDelegate

    public void setDelegate(EditorDelegate<T> delegate)

  Description copied from interface: `HasEditorDelegate`
  Called by the EditorDriver to provide access to the EditorDelegate the Editor is peered with.

  Specified by:
    `setDelegate` in interface `HasEditorDelegate<T>`
  Parameters:
    `delegate` - an `EditorDelegate` of type T

### setEditorChain

    public void setEditorChain(CompositeEditor.EditorChain<T,E> chain)

  Description copied from interface: `CompositeEditor`
  Called by the Editor framework to provide the `CompositeEditor.EditorChain`.

  Specified by:
    `setEditorChain` in interface `CompositeEditor<T,T,E extends Editor<? super T>>`
  Parameters:
    `chain` - an `CompositeEditor.EditorChain` instance

### setValue

    public void setValue(T value)

  Description copied from interface: `ValueAwareEditor`
  Called by the EditorDriver to set the object the Editor is peered with

  ValueAwareEditors should preferentially use sub-editors to alter the properties of the object being edited.

  Specified by:
    `setValue` in interface `ValueAwareEditor<T>`
  Specified by:
    `setValue` in interface `TakesValue<T>`
  Parameters:
    `value` - a value of type T
  See Also:
    `TakesValue.getValue()`

GWT 2.7.0