org.eclipse.jface.viewers
Class Viewer

java.lang.Object
  extended by org.eclipse.jface.viewers.Viewer
All Implemented Interfaces:
IInputProvider, IInputSelectionProvider, ISelectionProvider
Direct Known Subclasses:
ContentViewer

public abstract class Viewer
extends java.lang.Object
implements IInputSelectionProvider

A viewer is a model-based adapter on a widget.

A viewer can be created as an adapter on a pre-existing control (e.g., creating a ListViewer on an existing List control). All viewers also provide a convenience constructor for creating the control.

Implementing a concrete viewer typically involves the following steps:


Field Summary
protected static java.lang.String WIDGET_DATA_KEY
          Unique key for associating element data with widgets.
 
Constructor Summary
protected Viewer()
          Creates a new viewer.
 
Method Summary
 void addSelectionChangedListener(ISelectionChangedListener listener)
          Adds a listener for help requests in this viewer.
protected  void fireSelectionChanged(SelectionChangedEvent event)
          Notifies any selection changed listeners that the viewer's selection has changed.
abstract  Control getControl()
          Returns the primary control associated with this viewer.
 java.lang.Object getData(java.lang.String key)
          Returns the value of the property with the given name, or null if the property is not found.
abstract  java.lang.Object getInput()
          Returns the input.
abstract  ISelection getSelection()
          Returns the current selection for this provider.
protected  void inputChanged(java.lang.Object input, java.lang.Object oldInput)
          Internal hook method called when the input to this viewer is initially set or subsequently changed.
abstract  void refresh()
          Refreshes this viewer completely with information freshly obtained from this viewer's model.
 void removeSelectionChangedListener(ISelectionChangedListener listener)
          Removes the given help listener from this viewer.
 Item scrollDown(int x, int y)
          Scrolls the viewer's control down by one item from the given display-relative coordinates.
 Item scrollUp(int x, int y)
          Scrolls the viewer's control up by one item from the given display-relative coordinates.
 void setData(java.lang.String key, java.lang.Object value)
          Sets the value of the property with the given name to the given value, or to null if the property is to be removed.
abstract  void setInput(java.lang.Object input)
          Sets or clears the input for this viewer.
 void setSelection(ISelection selection)
          The viewer implementation of this ISelectionProvider method make the new selection for this viewer without making it visible.
abstract  void setSelection(ISelection selection, boolean reveal)
          Sets a new selection for this viewer and optionally makes it visible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WIDGET_DATA_KEY

protected static final java.lang.String WIDGET_DATA_KEY
Unique key for associating element data with widgets.

See Also:
Widget.setData(String, Object), Constant Field Values
Constructor Detail

Viewer

protected Viewer()
Creates a new viewer.

Method Detail

addSelectionChangedListener

public void addSelectionChangedListener(ISelectionChangedListener listener)
Adds a listener for help requests in this viewer. Has no effect if an identical listener is already registered.

Specified by:
addSelectionChangedListener in interface ISelectionProvider
Parameters:
listener - a help listener

fireSelectionChanged

protected void fireSelectionChanged(SelectionChangedEvent event)
Notifies any selection changed listeners that the viewer's selection has changed. Only listeners registered at the time this method is called are notified.

Parameters:
event - a selection changed event
See Also:
ISelectionChangedListener.selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)

getControl

public abstract Control getControl()
Returns the primary control associated with this viewer.

Returns:
the SWT control which displays this viewer's content

getData

public java.lang.Object getData(java.lang.String key)
Returns the value of the property with the given name, or null if the property is not found.

The default implementation performs a (linear) search of an internal table. Overriding this method is generally not required if the number of different keys is small. If a more efficient representation of a viewer's properties is required, override both getData and setData.

Parameters:
key - the property name
Returns:
the property value, or null if the property is not found

getInput

public abstract java.lang.Object getInput()
Description copied from interface: IInputProvider
Returns the input.

Specified by:
getInput in interface IInputProvider
Returns:
the input object

getSelection

public abstract ISelection getSelection()
Description copied from interface: ISelectionProvider
Returns the current selection for this provider.

Specified by:
getSelection in interface ISelectionProvider
Returns:
the current selection

inputChanged

protected void inputChanged(java.lang.Object input,
                            java.lang.Object oldInput)
Internal hook method called when the input to this viewer is initially set or subsequently changed.

The default implementation does nothing. Subclassers may override this method to do something when a viewer's input is set. A typical use is populate the viewer.

Parameters:
input - the new input of this viewer, or null if none
oldInput - the old input element or null if there was previously no input

refresh

public abstract void refresh()
Refreshes this viewer completely with information freshly obtained from this viewer's model.


removeSelectionChangedListener

public void removeSelectionChangedListener(ISelectionChangedListener listener)
Removes the given help listener from this viewer. Has no affect if an identical listener is not registered.

Specified by:
removeSelectionChangedListener in interface ISelectionProvider
Parameters:
listener - a help listener

scrollDown

public Item scrollDown(int x,
                       int y)
Scrolls the viewer's control down by one item from the given display-relative coordinates. Returns the newly revealed Item, or null if no scrolling occurred or if the viewer doesn't represent an item-based widget.

Parameters:
x - horizontal coordinate
y - vertical coordinate

scrollUp

public Item scrollUp(int x,
                     int y)
Scrolls the viewer's control up by one item from the given display-relative coordinates. Returns the newly revealed Item, or null if no scrolling occurred or if the viewer doesn't represent an item-based widget.

Parameters:
x - horizontal coordinate
y - vertical coordinate

setData

public void setData(java.lang.String key,
                    java.lang.Object value)
Sets the value of the property with the given name to the given value, or to null if the property is to be removed. If this viewer has such a property, its value is replaced; otherwise a new property is added.

The default implementation records properties in an internal table which is searched linearly. Overriding this method is generally not required if the number of different keys is small. If a more efficient representation of a viewer's properties is required, override both getData and setData.

Parameters:
key - the property name
value - the property value, or null if the property is not found

setInput

public abstract void setInput(java.lang.Object input)
Sets or clears the input for this viewer.

Parameters:
input - the input of this viewer, or null if none

setSelection

public void setSelection(ISelection selection)
The viewer implementation of this ISelectionProvider method make the new selection for this viewer without making it visible.

This method is equivalent to setSelection(selection,false).

Specified by:
setSelection in interface ISelectionProvider
Parameters:
selection - the new selection

setSelection

public abstract void setSelection(ISelection selection,
                                  boolean reveal)
Sets a new selection for this viewer and optionally makes it visible.

Subclasses must implement this method.

Parameters:
selection - the new selection
reveal - true if the selection is to be made visible, and false otherwise