com.ibm.jdg2e.view.marker
Class MarkerContentProvider

java.lang.Object
  extended bycom.ibm.jdg2e.view.marker.MarkerContentProvider
All Implemented Interfaces:
java.util.EventListener, org.eclipse.jface.viewers.IContentProvider, org.eclipse.core.resources.IResourceChangeListener, org.eclipse.jface.viewers.IStructuredContentProvider

class MarkerContentProvider
extends java.lang.Object
implements org.eclipse.jface.viewers.IStructuredContentProvider, org.eclipse.core.resources.IResourceChangeListener

This content provider processes the input (IWorkspace to find the content required in the viewer. This is defined as recent edit markers whose marker id is defined in the MarkerView.MARKER_ID field.

A IResourceChangeListener is implemented by this content provider so that it can react to marker changes.


Constructor Summary
(package private) MarkerContentProvider()
          The constructor.
 
Method Summary
 void dispose()
          Remove resource change listener
 java.lang.Object[] getElements(java.lang.Object parent)
          Obtains content from the input in the form of an array of IMarker elements.
 void inputChanged(org.eclipse.jface.viewers.Viewer v, java.lang.Object oldInput, java.lang.Object newInput)
          Saves input reference and adds change listener first time around.
 void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
          React to changes that impact the elements in the associated viewer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MarkerContentProvider

MarkerContentProvider()
The constructor.

Method Detail

dispose

public void dispose()
Remove resource change listener

Specified by:
dispose in interface org.eclipse.jface.viewers.IContentProvider
See Also:
IContentProvider.dispose()

getElements

public java.lang.Object[] getElements(java.lang.Object parent)
Obtains content from the input in the form of an array of IMarker elements.

Specified by:
getElements in interface org.eclipse.jface.viewers.IStructuredContentProvider
Returns:
Object[] - Array of IMarker objects from the workspace
See Also:
IStructuredContentProvider.getElements(java.lang.Object)

inputChanged

public void inputChanged(org.eclipse.jface.viewers.Viewer v,
                         java.lang.Object oldInput,
                         java.lang.Object newInput)
Saves input reference and adds change listener first time around. When the newInput is null, change listener is removed and input released.

Specified by:
inputChanged in interface org.eclipse.jface.viewers.IContentProvider
See Also:
IContentProvider.inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)

resourceChanged

public void resourceChanged(org.eclipse.core.resources.IResourceChangeEvent event)
React to changes that impact the elements in the associated viewer.

As this method is not fired on the UI thread we need to use the SWT Display to get back on the UI thread before telling the viewer to refresh. An asyncExec will work here as we do not need to visit the delta in the runnable.

If resource delta must be visited inside the runnable then a syncExec must be used to ensure the delta is not discarded.

Specified by:
resourceChanged in interface org.eclipse.core.resources.IResourceChangeListener
See Also:
IResourceChangeListener.resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)