Package 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:
CellWidget
,CheckBox
,DateBox
,DateLabel
,DatePicker
,DialogBox.CaptionImpl
,DoubleBox
,Hidden
,HTML
,InlineHTML
,InlineLabel
,IntegerBox
,Label
,LongBox
,NumberLabel
,PasswordTextBox
,RadioButton
,SimpleCheckBox
,SimpleRadioButton
,SuggestBox
,TextArea
,TextBox
,TextBoxBase
,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:
-
Method Summary