Class ListValidationEditor<T,​E extends org.gwtproject.editor.client.Editor<? super T>>

  • Type Parameters:
    T - The type of data being managed
    E - The type of Editor
    All Implemented Interfaces:
    HasParentDriverSetter, org.gwtproject.editor.client.CompositeEditor<List<T>,​T,​E>, org.gwtproject.editor.client.Editor<List<T>>, org.gwtproject.editor.client.HasEditorDelegate<List<T>>, org.gwtproject.editor.client.ValueAwareEditor<List<T>>

    public class ListValidationEditor<T,​E extends org.gwtproject.editor.client.Editor<? super T>>
    extends Object
    implements org.gwtproject.editor.client.CompositeEditor<List<T>,​T,​E>, HasParentDriverSetter
    Manages a list of objects and their associated Editors.

    The ListEditor will have no backing list until setValue(List) is called with a non-null value.

    • Constructor Detail

      • ListValidationEditor

        protected ListValidationEditor​(org.gwtproject.editor.client.adapters.EditorSource<E> source)
        Create a ListEditor backed by an EditorSource.
        Parameters:
        source - the EditorSource which will create sub-Editors
    • Method Detail

      • of

        public static <T,​E extends org.gwtproject.editor.client.Editor<? super T>> ListValidationEditor<T,​E> of​(org.gwtproject.editor.client.adapters.EditorSource<E> source)
        Create a ListEditor backed by an EditorSource.
        Type Parameters:
        T - The type of data being managed
        E - The type of Editor
        Parameters:
        source - the EditorSource which will create sub-Editors
        Returns:
        a new instance of ListEditor
      • createEditorForTraversal

        public E createEditorForTraversal()
        Creates a temporary sub-Editor to use for traversal.
        Specified by:
        createEditorForTraversal in interface org.gwtproject.editor.client.CompositeEditor<List<T>,​T,​E extends org.gwtproject.editor.client.Editor<? super T>>
        Returns:
        an Editor of type E
      • flush

        public void flush()
        Specified by:
        flush in interface org.gwtproject.editor.client.ValueAwareEditor<T>
      • getEditors

        public List<E> getEditors()
        Returns an unmodifiable, live view of the Editors managed by the ListEditor.

        The returned list will be live until the next call to setValue(List) and shouldn't be used after that. Editors might (or might not) be reused after a call to setValue(List).

        If there is no backing list, an empty list will be returned.

        Returns:
        a List of Editors of type E
      • getList

        public List<T> getList()
        Returns a live view of the ListEditor's backing data.

        The structure of the List may be mutated arbitrarily, subject to the limitations of the backing List, but the elements themselves should not be mutated except through getEditors() to avoid data inconsistency.

        Returns null if there is no backing list, and edits cannot be made.

         ListEditor<Foo, MyFooEditor> listEditor = ListEditor.of(...);
         listEditor.setValue(listOfFoo); // Usually called by EditorDriver
         listEditor.getList().set(1, new Foo());
         listEditor.getEditors().get(1).getFooFieldEditor().setValue(....);
         
        Returns:
        a live view of the ListEditor's backing data, or null if there is no backing list.
      • getPathElement

        public String getPathElement​(E subEditor)
        Specified by:
        getPathElement in interface org.gwtproject.editor.client.CompositeEditor<List<T>,​T,​E extends org.gwtproject.editor.client.Editor<? super T>>
      • onPropertyChange

        public void onPropertyChange​(String... paths)
        Specified by:
        onPropertyChange in interface org.gwtproject.editor.client.ValueAwareEditor<T>
      • setDelegate

        public void setDelegate​(org.gwtproject.editor.client.EditorDelegate<List<T>> delegate)
        Specified by:
        setDelegate in interface org.gwtproject.editor.client.HasEditorDelegate<T>
      • setEditorChain

        public void setEditorChain​(org.gwtproject.editor.client.CompositeEditor.EditorChain<T,​E> chain)
        Specified by:
        setEditorChain in interface org.gwtproject.editor.client.CompositeEditor<List<T>,​T,​E extends org.gwtproject.editor.client.Editor<? super T>>
      • setValue

        public void setValue​(List<T> value)
        Sets the ListEditor's backing data.

        If a null is passed in, the ListEditor will have no backing list and edits cannot be made.

        Specified by:
        setValue in interface org.gwtproject.editor.client.ValueAwareEditor<T>
        Parameters:
        value - a List of data objects of type T