Class SaveablesProvider

  • All Implemented Interfaces:
    IDisposable

    public abstract class SaveablesProvider
    extends Object
    implements IDisposable
    Provides Saveable objects to the common navigator, and allows to map between elements in the tree and models.

    This class is intended to be subclassed by clients.

    Instances of subclasses will be returned from content extensions that implement IAdaptable.
    Since:
    3.2
    • Constructor Detail

      • SaveablesProvider

        protected SaveablesProvider()
        Creates a new saveable model provider. May only be called by subclasses.
    • Method Detail

      • init

        public final void init​(ISaveablesLifecycleListener listener)
        Initializes this SaveablesProvider with the given listener, and calls the hook method doInit().
        Parameters:
        listener - listener for lifecycle events
      • doInit

        protected void doInit()
        May be overridden by clients. The default implementation does nothing.
      • fireSaveablesOpened

        protected final void fireSaveablesOpened​(Saveable[] models)
        Notifies the listener that the given models were opened in this model provider. This method must be called on the UI thread.
        Parameters:
        models - the affected saveables
      • fireSaveablesClosing

        protected final boolean fireSaveablesClosing​(Saveable[] models,
                                                     boolean force)
        Notifies the listener that the given models are about to be closed in this model provider. This method must be called on the UI thread.
        Parameters:
        models - the affected saveables
        force - true if the closing may be canceled by the user
        Returns:
        true if the listener vetoed the closing (may be ignored if force is true)
      • fireSaveablesClosed

        protected final void fireSaveablesClosed​(Saveable[] models)
        Notifies the listener that the given models were closed in this model provider. This method must be called on the UI thread.
        Parameters:
        models - the affected saveables
      • fireSaveablesDirtyChanged

        protected final void fireSaveablesDirtyChanged​(Saveable[] models)
        Notifies the listener that the given models' dirty state has changed. This method must be called on the UI thread.
        Parameters:
        models - the affected saveables
      • getSaveables

        public abstract Saveable[] getSaveables()
        Returns the saveables reachable through this provider. Changes to the list of saveables or to the saveables' dirty state must be announced using the appropriate fire* methods.
        Returns:
        the saveables returned by this saveables provider.
      • getElements

        public abstract Object[] getElements​(Saveable saveable)
        Returns the elements representing the given saveable. It is recommended that a saveable be represented by only one element.
        Parameters:
        saveable - the savable
        Returns:
        the elements representing the given saveable (array may be empty)
      • getSaveable

        public abstract Saveable getSaveable​(Object element)
        Returns the saveable for the given element, or null if the element does not represent a saveable.
        Parameters:
        element - the element
        Returns:
        the saveable for the given element, or null
      • dispose

        public void dispose()
        Disposes of this saveables provider. Subclasses may extend, but must call the super implementation.
        Specified by:
        dispose in interface IDisposable