T - the base type being editedC - the component type to be editedE - the type of Editor that will edit the component typepublic interface CompositeEditor<T,C,E extends Editor<? super C>> extends ValueAwareEditor<T>
 For example, the ListEditor type is a
 CompositeEditor<List<T>, T, E extends Editor<T>>; that
 is, ListEditor will accept a List<T> and will edit some unknown number of
 T's using the Editor type E. Another example might
 be:
 
 
 class WorkgroupEditor implements CompositeEditor<Workgroup, Person, PersonSummaryEditor>{
   public void setValue(Workgroup workgroup) {
     // Assuming Workgroup implements Iterable<Person>
     for (Person p : workgroup) {
       PersonSummaryEditor editor = new PersonSummaryEditor();
       // Attach editor to DOM
       somePanel.add(editor);
       // Let the generated code drive the sub-editor
       editorChain.attach(p, editor);
     }
   }
 }
 | Modifier and Type | Interface and Description | 
|---|---|
| static interface  | CompositeEditor.EditorChain<C,E extends Editor<? super C>>Allows instances of the component type to be attached to the Editor
 framework. | 
Editor.Ignore, Editor.Path| Modifier and Type | Method and Description | 
|---|---|
| E | createEditorForTraversal()Returns an canonical sub-editor instance that will be used by the driver
 for computing all edited paths. | 
| java.lang.String | getPathElement(E subEditor)Used to implement  EditorDelegate.getPath()for the component
 Editors. | 
| void | setEditorChain(CompositeEditor.EditorChain<C,E> chain)Called by the Editor framework to provide the  CompositeEditor.EditorChain. | 
flush, onPropertyChange, setValuesetDelegateE createEditorForTraversal()
java.lang.String getPathElement(E subEditor)
EditorDelegate.getPath() for the component
 Editors.subEditor - an instance of the Editor type previously passed into
          CompositeEditor.EditorChain.attach(C, E)void setEditorChain(CompositeEditor.EditorChain<C,E> chain)
CompositeEditor.EditorChain.chain - an CompositeEditor.EditorChain instance