com.google.gwt.editor.client

## Interface IsEditor<E extends Editor<?>>

- Type Parameters:
    `E` - the type of Editor the view object will provide
  All Known Implementing Classes:
    ButtonBase, CellWidget, CheckBox, DateBox, DateLabel, DatePicker, DialogBox.CaptionImpl, DoubleBox, Hidden, HTML, InlineHTML, InlineLabel, IntegerBox, Label, LongBox, NumberLabel, PasswordTextBox, RadioButton, SimpleCheckBox, SimpleRadioButton, SuggestBox, TextArea, TextBox, TextBoxBase, TextButton, ToggleButton, ValueBox, ValueBoxBase, ValueBoxEditorDecorator, ValueLabel, ValueListBox, ValuePicker

      public interface IsEditor<E extends Editor<?>>

  Extended by view objects that wish to participate in an Editor hierarchy, but that do not implement the `Editor` contract directly. The primary advantage of the IsEditor interface is that is allows composition of behavior without the need to implement delegate methods for every interface implemented by the common editor logic.

  For example, an editor Widget that supports adding and removing elements from a list might wish to re-use the provided `ListEditor` controller. It might be roughly built as:

       class MyListEditor extends Composite implements IsEditor<ListEditor<Foo, FooEditor>> {
         private ListEditor<Foo, FooEditor> controller = ListEditor.of(new FooEditorSource());
         public ListEditor<Foo, FooEditor> asEditor() {return controller;}
         void onAddButtonClicked() { controller.getList().add(new Foo()); }
         void onClearButtonClicked() { controller.getList().clear(); }
       }

  By implementing only the one `asEditor()` method, the `MyListEditor` type is able to incorporate the `ListEditor` behavior without needing to write delegate methods for every method in `ListEditor`.

  It is legal for a type to implement both Editor and IsEditor. In this case, the Editor returned from `asEditor()` will be a co-Editor of the IsEditor instance.

  See Also:
    `CompositeEditor`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `E` | `asEditor()` Returns the Editor encapsulated by the view object.

- - ### Method Detail

    - #### asEditor

          E asEditor()

      Returns the Editor encapsulated by the view object.
      Returns:
        an `Editor` of type E