org.eclipse.handly.ui.outline

## Class ElementChangeListenerContribution

- java.lang.Object
- - org.eclipse.handly.ui.outline.OutlineContribution
  - - org.eclipse.handly.ui.outline.ElementChangeListenerContribution

- All Implemented Interfaces:
    IOutlineContribution

      public abstract class ElementChangeListenerContribution
      extends OutlineContribution

  An abstract base class for outline contributions listening to `IElementChangeEvent`s.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ElementChangeListenerContribution()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | `addElementChangeListener(IElementChangeListener listener)` Registers the given element change listener with the underlying model.
    `protected boolean` | `affects(IElementChangeEvent event, java.lang.Object inputElement)` Returns whether the given element change event affects the outline's input element.
    `protected boolean` | `affects(IElementDelta delta, IElement element)` Returns whether the given element delta affects the given element.
    `void` | `dispose()` Disposes of this contribution.
    `protected abstract void` | `elementChanged(IElementChangeEvent event)` Notifies that the outline page is affected in some way by the given element change event.
    `protected IContentAdapter` | `getContentAdapter()` Returns the installed content adapter, or a `NullContentAdapter` if none.
    `void` | `init(ICommonOutlinePage outlinePage)` Initializes this contribution.
    `protected abstract void` | `removeElementChangeListener(IElementChangeListener listener)` Removes the given element change listener from the underlying model.

    - ### Methods inherited from class org.eclipse.handly.ui.outline.OutlineContribution

      `getOutlinePage`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ElementChangeListenerContribution

          public ElementChangeListenerContribution()

  - ### Method Detail

    - #### init

          public void init(ICommonOutlinePage outlinePage)

      Initializes this contribution. This method is called after the outline page's tree viewer has been created.

      This method may be extended by subclasses. Subclasses must call the superclass implementation.

      `ElementChangeListenerContribution` extends this method to `register` an element change listener that invokes `elementChanged(IElementChangeEvent)` if the element change event `affects` the outline's input element.

      Specified by:
        `init` in interface `IOutlineContribution`
      Overrides:
        `init` in class `OutlineContribution`
      Parameters:
        `outlinePage` - the contribution's outline page (never `null`)

    - #### dispose

          public void dispose()

      Description copied from class: `OutlineContribution`
      Disposes of this contribution. Implementors should clean up any resources associated with this contribution. Note that there is no guarantee that `init()` has been called. This method has no effect if this contribution has already been disposed.

      This method may be extended by subclasses. Subclasses must call the superclass implementation.

      Specified by:
        `dispose` in interface `IOutlineContribution`
      Overrides:
        `dispose` in class `OutlineContribution`

    - #### affects

          protected boolean affects(IElementChangeEvent event,
                                    java.lang.Object inputElement)

      Returns whether the given element change event affects the outline's input element.

      This implementation uses the `content adapter` to adapt the input element to an `IElement`. It then delegates to `affects(IElementDelta, IElement)`.

      Parameters:
        `event` - never `null`
        `inputElement` - may be `null`
      Returns:
        `true` if the given element change event affects the outline's input element, and `false` otherwise

    - #### affects

          protected boolean affects(IElementDelta delta,
                                    IElement element)

      Returns whether the given element delta affects the given element.

      This implementation checks whether the given element delta tree contains a delta that designates a `structural change` to the given element.

      Parameters:
        `delta` - never `null`
        `element` - never `null`
      Returns:
        `true` if the given delta affects the given element, and `false` otherwise

    - #### addElementChangeListener

          protected abstract void addElementChangeListener(IElementChangeListener listener)

      Registers the given element change listener with the underlying model.
      Parameters:
        `listener` - never `null`

    - #### removeElementChangeListener

          protected abstract void removeElementChangeListener(IElementChangeListener listener)

      Removes the given element change listener from the underlying model.
      Parameters:
        `listener` - never `null`

    - #### elementChanged

          protected abstract void elementChanged(IElementChangeEvent event)

      Notifies that the outline page is affected in some way by the given element change event.

      Note: This method may be called in any thread. The event object (and the deltas within it) is valid only for the duration of the invocation of this method.

      Parameters:
        `event` - never `null`

    - #### getContentAdapter

          protected IContentAdapter getContentAdapter()

      Returns the installed content adapter, or a `NullContentAdapter` if none.

      This implementation returns the content adapter provided by the outline page, if the outline page is an `IContentAdapterProvider`.

      Returns:
        an `IContentAdapter` (never `null`)

Copyright (c) 2014, 2020 1C-Soft LLC and others. Made available under the Eclipse Public License 2.0