Eclipse Platform
Release 3.4

org.eclipse.jface.databinding.viewers
Class ObservableSetContentProvider

java.lang.Object
  extended byorg.eclipse.jface.databinding.viewers.ObservableSetContentProvider
All Implemented Interfaces:
IContentProvider, IStructuredContentProvider

public class ObservableSetContentProvider
extends Object
implements IStructuredContentProvider

A content provider for AbstractTableViewer or AbstractListViewer that provides elements of an IObservableSet when set as the viewer's input. Objects of this class listen for changes to the observable set, and will insert and remove viewer elements to reflect observed changes.

This class is not intended to be subclassed by clients.

Since:
1.1

Constructor Summary
ObservableSetContentProvider()
          Constructs an ObservableSetContentProvider
 
Method Summary
 void dispose()
          Disposes of this content provider.
 Object[] getElements(Object inputElement)
          Returns the elements to display in the viewer when its input is set to the given element.
 IObservableSet getKnownElements()
          Returns the set of elements known to this content provider.
 void inputChanged(Viewer viewer, Object oldInput, Object newInput)
          Notifies this content provider that the given viewer's input has been switched to a different element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObservableSetContentProvider

public ObservableSetContentProvider()
Constructs an ObservableSetContentProvider

Method Detail

inputChanged

public void inputChanged(Viewer viewer,
                         Object oldInput,
                         Object newInput)
Description copied from interface: IContentProvider
Notifies this content provider that the given viewer's input has been switched to a different element.

A typical use for this method is registering the content provider as a listener to changes on the new input (using model-specific means), and deregistering the viewer from the old input. In response to these change notifications, the content provider should update the viewer (see the add, remove, update and refresh methods on the viewers).

The viewer should not be updated during this call, as it might be in the process of being disposed.

Specified by:
inputChanged in interface IContentProvider
Parameters:
viewer - the viewer
oldInput - the old input element, or null if the viewer did not previously have an input
newInput - the new input element, or null if the viewer does not have an input

getElements

public Object[] getElements(Object inputElement)
Description copied from interface: IStructuredContentProvider
Returns the elements to display in the viewer when its input is set to the given element. These elements can be presented as rows in a table, items in a list, etc. The result is not modified by the viewer.

NOTE: For instances where the viewer is displaying a tree containing a single 'root' element it is still necessary that the 'input' does not return itself from this method. This leads to recursion issues (see bug 9262).

Specified by:
getElements in interface IStructuredContentProvider
Parameters:
inputElement - the input element
Returns:
the array of elements to display in the viewer

dispose

public void dispose()
Description copied from interface: IContentProvider
Disposes of this content provider. This is called by the viewer when it is disposed.

The viewer should not be updated during this call, as it is in the process of being disposed.

Specified by:
dispose in interface IContentProvider

getKnownElements

public IObservableSet getKnownElements()
Returns the set of elements known to this content provider. Label providers may track this set if they need to be notified about additions before the viewer sees the added element, and notified about removals after the element was removed from the viewer. This is intended for use by label providers, as it will always return the items that need labels.

Returns:
unmodifiable set of items that will need labels

Eclipse Platform
Release 3.4

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.