Class EMFCompareStructureMergeViewerContentProvider
- java.lang.Object
-
- org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider
-
- org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerContentProvider
-
- All Implemented Interfaces:
org.eclipse.core.runtime.jobs.IJobChangeListener,INotifyChangedListener,org.eclipse.jface.viewers.IContentProvider,org.eclipse.jface.viewers.IStructuredContentProvider,org.eclipse.jface.viewers.ITreeContentProvider,org.eclipse.ui.views.properties.IPropertySourceProvider
public class EMFCompareStructureMergeViewerContentProvider extends AdapterFactoryContentProvider implements org.eclipse.core.runtime.jobs.IJobChangeListener
Specialized AdapterFactoryContentProvider for the emf compare structure merge viewer.This class is not intended to be used outside of its package. It has been set to public for testing purpose only.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classEMFCompareStructureMergeViewerContentProvider.CallbackTypeEnum used for better readability of the methodrunWhenReady(CallbackType, Runnable).-
Nested classes/interfaces inherited from class org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider
AdapterFactoryContentProvider.ViewerRefresh
-
-
Field Summary
-
Fields inherited from class org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider
adapterFactory, viewer, viewerRefresh
-
-
Constructor Summary
Constructors Constructor Description EMFCompareStructureMergeViewerContentProvider(AdapterFactory adapterFactory, org.eclipse.jface.viewers.AbstractTreeViewer viewer)Constructs the content provider with the appropriate adapter factory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaboutToRun(org.eclipse.core.runtime.jobs.IJobChangeEvent event)protected Object[]adaptElementsToCompareInput(Object[] elements)Adapt all of the given elements that are not instances ofPendingUpdateAdapterintoICompareInputfor the emf compare viewers when possible.booleanaddFetchingListener(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerContentProvider.FetchListener listener)Adds a listener to this content provider.voidawake(org.eclipse.core.runtime.jobs.IJobChangeEvent event)voiddispose()voiddone(org.eclipse.core.runtime.jobs.IJobChangeEvent event)Object[]getChildren(Object element)Object[]getElements(Object element)ObjectgetParent(Object element)protected Object[]getRawChildren(Object element)Returns the raw list of children for the given element.booleanhasChildren(Object element)voidnotifyChanged(Notification notification)This implementation specializes the EMF implementation to ensure that if more than 30 notifications arrive, the viewer is simply refreshed rather than processing each update separately.booleanremoveFetchingListener(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerContentProvider.FetchListener listener)Removes a listener to this content provider.voidrunning(org.eclipse.core.runtime.jobs.IJobChangeEvent event)voidrunWhenReady(EMFCompareStructureMergeViewerContentProvider.CallbackType type, Runnable runnable)Run the given runnable in the specified thread when then content provider is ready.voidscheduled(org.eclipse.core.runtime.jobs.IJobChangeEvent event)voidsleeping(org.eclipse.core.runtime.jobs.IJobChangeEvent event)-
Methods inherited from class org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider
createPropertySource, getAdapterFactory, getPropertySource, getViewerRefreshDelay, getViewerRefreshTheshold, inputChanged, setAdapterFactory
-
-
-
-
Constructor Detail
-
EMFCompareStructureMergeViewerContentProvider
public EMFCompareStructureMergeViewerContentProvider(AdapterFactory adapterFactory, org.eclipse.jface.viewers.AbstractTreeViewer viewer)
Constructs the content provider with the appropriate adapter factory.- Parameters:
adapterFactory- The adapter factory used to construct the content provider.
-
-
Method Detail
-
getParent
public Object getParent(Object element)
- Specified by:
getParentin interfaceorg.eclipse.jface.viewers.ITreeContentProvider- Overrides:
getParentin classAdapterFactoryContentProvider- See Also:
AdapterFactoryContentProvider.getParent(Object object)
-
runWhenReady
public void runWhenReady(EMFCompareStructureMergeViewerContentProvider.CallbackType type, Runnable runnable)
Run the given runnable in the specified thread when then content provider is ready. It can be run directly if the content provider is not fecthing or during a callback when the content provider is done fetching.- Parameters:
type- of thread to run theRunnableinside.runnable- to run
-
addFetchingListener
public boolean addFetchingListener(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerContentProvider.FetchListener listener)
Adds a listener to this content provider.- Parameters:
listener- to add- Returns:
-
removeFetchingListener
public boolean removeFetchingListener(org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.EMFCompareStructureMergeViewerContentProvider.FetchListener listener)
Removes a listener to this content provider.- Parameters:
listener- to remove- Returns:
-
hasChildren
public boolean hasChildren(Object element)
- Specified by:
hasChildrenin interfaceorg.eclipse.jface.viewers.ITreeContentProvider- Overrides:
hasChildrenin classAdapterFactoryContentProvider- See Also:
AdapterFactoryContentProvider.hasChildren(Object object)
-
getChildren
public Object[] getChildren(Object element)
- Specified by:
getChildrenin interfaceorg.eclipse.jface.viewers.ITreeContentProvider- Overrides:
getChildrenin classAdapterFactoryContentProvider- See Also:
AdapterFactoryContentProvider.getChildren(java.lang.Object)
-
getRawChildren
protected Object[] getRawChildren(Object element)
Returns the raw list of children for the given element. This array will not be useable by the EMF Compare viewers without prior going throughadaptElementsToCompareInput(Object[]).- Parameters:
element- The element which children we need.- Returns:
- The children of this element.
-
adaptElementsToCompareInput
protected Object[] adaptElementsToCompareInput(Object[] elements)
Adapt all of the given elements that are not instances ofPendingUpdateAdapterintoICompareInputfor the emf compare viewers when possible.- Parameters:
elements- The elements to adapt.- Returns:
- The array of adapted elements.
-
getElements
public Object[] getElements(Object element)
- Specified by:
getElementsin interfaceorg.eclipse.jface.viewers.IStructuredContentProvider- Specified by:
getElementsin interfaceorg.eclipse.jface.viewers.ITreeContentProvider- Overrides:
getElementsin classAdapterFactoryContentProvider- See Also:
AdapterFactoryContentProvider.getElements(Object object)
-
dispose
public void dispose()
- Specified by:
disposein interfaceorg.eclipse.jface.viewers.IContentProvider- Overrides:
disposein classAdapterFactoryContentProvider- See Also:
IContentProvider.dispose()
-
notifyChanged
public void notifyChanged(Notification notification)
This implementation specializes the EMF implementation to ensure that if more than 30 notifications arrive, the viewer is simply refreshed rather than processing each update separately. This is especially important for when undo is invoked in editor and there are many things to be undone.- Specified by:
notifyChangedin interfaceINotifyChangedListener- Overrides:
notifyChangedin classAdapterFactoryContentProvider- See Also:
IContentProvider.dispose()
-
aboutToRun
public void aboutToRun(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
aboutToRunin interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
awake
public void awake(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
awakein interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener- See Also:
IJobChangeListener.awake(IJobChangeEvent)
-
done
public void done(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
donein interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener- See Also:
IJobChangeListener.done(IJobChangeEvent)
-
running
public void running(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
runningin interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener- See Also:
IJobChangeListener.running(IJobChangeEvent)
-
scheduled
public void scheduled(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
scheduledin interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener- See Also:
IJobChangeListener.scheduled(IJobChangeEvent)
-
sleeping
public void sleeping(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
sleepingin interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener- See Also:
IJobChangeListener.sleeping(IJobChangeEvent)
-
-