Package org.eclipse.ui.navigator

# Interface ICommonViewerMapper

public interface ICommonViewerMapper
Allows improved performance by optimizing label updates of the CommonViewer. Often label updates come in the form of resource updates, and the resources themselves are not directly stored in the `CommonViewer`; instead other model objects are stored. In addition, it may be the case where the objects that have changed are not present in the Tree associated with the CommonViewer because they have not been opened or expanded. You can use an instance of this class to define a mapping between the current Tree Items associated with the CommonViewer and the (typically resource) objects where a change is notified. The change is notified to the `CommonViewer.handleLabelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)`. The mapper object (implementing this interface) is associated with the CommonViewer using the `CommonViewer.setMapper(ICommonViewerMapper)` method. When this mapper wishes to update the CommonViewer, the `CommonViewer.doUpdateItem(org.eclipse.swt.widgets.Widget)` method is used.

Since:
  3.4
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`void`
`addToMap(Object element, Item item)`
Adds a new item to the map.
`void`
`clearMap()`
Clears the map.
`boolean`
`handlesObject(Object object)`
Tests if this mapper handles the specified object.
`boolean`
`isEmpty()`
Tests if the map is empty
`void`
`objectChanged(Object object)`
Indicates the specified object has changed.
`void`
`removeFromMap(Object element, Item item)`
Removes an element from the map.

## Method Details

### addToMap

void addToMap(Object element, Item item)
Adds a new item to the map. Called by the `CommonViewer` when the element is added to the Tree.

Parameters:
  `element` - Element to map
  `item` - The item used for the element

### removeFromMap

void removeFromMap(Object element, Item item)
Removes an element from the map. Called by the `CommonViewer` when the element is removed from the Tree.

Parameters:
  `element` - The data element
  `item` - The table or tree item

### clearMap

void clearMap()
Clears the map.

### isEmpty

boolean isEmpty()
Tests if the map is empty

Returns:
  Returns if there are mappings

### handlesObject

boolean handlesObject(Object object)
Tests if this mapper handles the specified object. This is used only by the viewer to determine if the object should be looked up in the mapper. This is not to be used when the object is being added to the mapper, as the mapper may adapt to the desired object to be mapped (like adapting from a Java model object to a resource object for example).

Parameters:
  `object` - the object that the mapper can handle
Returns:
  true if it does

### objectChanged

void objectChanged(Object object)
Indicates the specified object has changed. If the object has a corresponding Item in the map, the associated `CommonViewer` is notified of the change using the `CommonViewer.doUpdateItem(org.eclipse.swt.widgets.Widget)` method so that it can update its state.

Parameters:
  `object` - the object that changed