public class TreeMergeViewerItemContentProvider extends Object implements IMergeViewerItemContentProvider
IMergeViewerItems which uses their 'left', 'right' and 'ancestor' sides in
combination with the given AdapterFactory to create the children and parent
IMergeViewerItems.| Constructor and Description |
|---|
TreeMergeViewerItemContentProvider() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canHandle(Object object)
Indicates whether this provider wants to handle the given
object. |
protected List<? extends Diff> |
collectAndFilterDifferences(Iterable<Object> objects,
IMergeViewerItemProviderConfiguration configuration)
Determines the differences related to the given objects and filters them according to the
visibleContainmentDiffPredicate(IMergeViewerItemProviderConfiguration). |
protected IMergeViewerItem |
createBasicContainer(ResourceAttachmentChange diff,
IMergeViewerItem mergeViewerItem,
AdapterFactory adapterFactory)
Create an IMergeViewerItem for the parent of the given
ResourceAttachmentChange. |
protected List<IMergeViewerItem> |
createInsertionPoints(IMergeViewerItem parent,
List<IMergeViewerItem> values,
List<? extends Diff> differences,
IMergeViewerItemProviderConfiguration configuration)
Creates and inserts the insertion points for the given
values. |
protected List<IMergeViewerItem> |
createInsertionPoints(IMergeViewerItem parent,
List<Object> sideContent,
List<Object> oppositeContent,
List<Object> ancestorContent,
List<? extends IMergeViewerItem> values,
List<? extends Diff> differences,
IMergeViewerItemProviderConfiguration configuration)
Creates the insertion points for the given
values based on the children of each side. |
protected IMergeViewerItem |
createMergeViewerItem(Comparison comparison,
Diff diff,
Match match,
IMergeViewer.MergeViewerSide side,
AdapterFactory adapterFactory)
Creates the
IMergeViewerItem from the given data. |
protected IMergeViewerItem |
createMergeViewerItem(Comparison comparison,
Diff diff,
Object left,
Object right,
Object ancestor,
IMergeViewer.MergeViewerSide side,
AdapterFactory adapterFactory)
Creates the
IMergeViewerItem from the given data. |
protected IMergeViewerItem |
createMergeViewerItemFrom(EObject eObject,
IMergeViewerItem parent,
IMergeViewerItemProviderConfiguration configuration)
Creates an IMergeViewerItem from an EObject.
|
protected List<IMergeViewerItem> |
createMergeViewerItemsFrom(Collection<?> values,
IMergeViewerItem parent,
IMergeViewerItemProviderConfiguration configuration)
Creates the Merge Viewer Items for the given
values. |
protected Object |
getBestSideValue(IMergeViewerItem mergeViewerItem,
IMergeViewer.MergeViewerSide side)
Get a non-null side of the the given
IMergeViewerItem, preferring but not limited to the given
side. |
Object[] |
getChildren(Object object,
IMergeViewerItemProviderConfiguration configuration)
Determine the children of the given
object |
protected List<Object> |
getChildrenFromContentProvider(Object object,
AdapterFactory adapterFactory)
Adapts to
ITreeItemMergeViewerContentProvider or ITreeItemContentProvider and calls
getChildren. |
protected Object |
getDiffValue(Diff diff)
Determines the value of the given diff.
|
protected Object |
getFirstValue(Iterable<Diff> diffs)
Determines the first non-null value of the given diffs.
|
Object |
getParent(Object object,
IMergeViewerItemProviderConfiguration configuration)
Determine the parent of the given
object. |
protected Object |
getSideValue(IMergeViewerItem mergeViewerItem,
IMergeViewer.MergeViewerSide side) |
protected Iterable<? extends Diff> |
getVisibleContainmentDiffs(EObject object,
IMergeViewerItemProviderConfiguration configuration)
Determines all differences regarding the given
object which are related to a containment
reference change and are visible in the viewer. |
boolean |
hasChildren(Object object,
IMergeViewerItemProviderConfiguration configuration)
Indicates whether the given
object has children. |
protected com.google.common.base.Predicate<Diff> |
visibleContainmentDiffPredicate(IMergeViewerItemProviderConfiguration configuration)
Predicate for checking if the given
diff is visible and itself (or any of its 'refining' diffs)
is a containment reference change. |
protected com.google.common.base.Predicate<Diff> |
visibleInMergeViewerPredicate(com.google.common.base.Predicate<? super EObject> predicate,
IDifferenceGroupProvider groupProvider)
Predicate for checking if the given
diff is visible in the merge viewer. |
protected boolean |
yieldsInsertionPoint(IMergeViewerItem parent,
Iterable<? extends Diff> diffs,
IMergeViewerItemProviderConfiguration configuration)
Indicates whether for the given diffs at least one
IMergeViewerItem insertion point should be
created. |
protected boolean |
yieldsMergeViewerItem(Comparison comparison,
Diff diff,
Collection<?> values)
Indicates whether for the given values at least one
IMergeViewerItem should be created. |
public boolean canHandle(Object object)
object.canHandle in interface IOptionalProviderobject - the Object.true if the provider wants to handle the given object, false otherwise.public Object getParent(Object object, IMergeViewerItemProviderConfiguration configuration)
object.getParent in interface IMergeViewerItemContentProviderobject - the Object for which the parent is to be determined.configuration - the IMergeViewerItemProviderConfiguration.null if there is none.public boolean hasChildren(Object object, IMergeViewerItemProviderConfiguration configuration)
object has children.hasChildren in interface IMergeViewerItemContentProviderobject - the Object for which it is indicated whether it has children.configuration - the IMergeViewerItemProviderConfiguration.true if the given object has children, false otherwise.public Object[] getChildren(Object object, IMergeViewerItemProviderConfiguration configuration)
objectgetChildren in interface IMergeViewerItemContentProviderobject - the Object for which the children are to be determined.configuration - the IMergeViewerItemProviderConfiguration.protected List<? extends Diff> collectAndFilterDifferences(Iterable<Object> objects, IMergeViewerItemProviderConfiguration configuration)
visibleContainmentDiffPredicate(IMergeViewerItemProviderConfiguration).objects - the objects.configuration - the IMergeViewerItemProviderConfiguration.protected List<IMergeViewerItem> createInsertionPoints(IMergeViewerItem parent, List<IMergeViewerItem> values, List<? extends Diff> differences, IMergeViewerItemProviderConfiguration configuration)
values.parent - the IMergeViewerItem parent.values - the list of IMergeViewerItem children for which insertion points are to be created.differences - the list of relevant differences.configuration - the IMergeViewerItemProviderConfiguration.values containing the created insertion points.protected List<IMergeViewerItem> createInsertionPoints(IMergeViewerItem parent, List<Object> sideContent, List<Object> oppositeContent, List<Object> ancestorContent, List<? extends IMergeViewerItem> values, List<? extends Diff> differences, IMergeViewerItemProviderConfiguration configuration)
values based on the children of each side.parent - the IMergeViewerItem parent.sideContent - the object for 'this' side.oppositeContent - the object for the 'other' side.ancestorContent - the objects for the 'origin' side-values - the IMergeViewerItems for which the insertion points are to be created.differences - the list of relevant differences.configuration - the IMergeViewerItemProviderConfiguration.values containing the created insertion points.protected Object getDiffValue(Diff diff)
diff - the Diff to check.null will be returned.protected Object getFirstValue(Iterable<Diff> diffs)
diffs - the Diffs to check.null otherwise.protected List<Object> getChildrenFromContentProvider(Object object, AdapterFactory adapterFactory)
ITreeItemMergeViewerContentProvider or ITreeItemContentProvider and calls
getChildren. Also unwraps FeatureMap.Entry.object - The object for which the children are to be determined.object.protected boolean yieldsInsertionPoint(IMergeViewerItem parent, Iterable<? extends Diff> diffs, IMergeViewerItemProviderConfiguration configuration)
IMergeViewerItem insertion point should be
created.comparison - the Comparison.diffs - the Diffs.configuration - the IMergeViewerItemProviderConfiguration.true if at least one IMergeViewerItem should be created, false
otherwise.protected boolean yieldsMergeViewerItem(Comparison comparison, Diff diff, Collection<?> values)
IMergeViewerItem should be created.comparison - the Comparison.diff - the Diff.values - the values.true if at least one IMergeViewerItem should be created, false
otherwise.protected Iterable<? extends Diff> getVisibleContainmentDiffs(EObject object, IMergeViewerItemProviderConfiguration configuration)
object which are related to a containment
reference change and are visible in the viewer.object - the EObject.configuration - the IMergeViewerItemProviderConfiguration.object related to containment differences.protected Object getBestSideValue(IMergeViewerItem mergeViewerItem, IMergeViewer.MergeViewerSide side)
IMergeViewerItem, preferring but not limited to the given
side.mergeViewerItem - the IMergeViewerItem.side - IMergeViewer.MergeViewerSideprotected Object getSideValue(IMergeViewerItem mergeViewerItem, IMergeViewer.MergeViewerSide side)
mergeViewerItem - org.eclipse.emf.compare.rcp.ui.mergeviewer.item.ide.ui.internal.contentmergeviewer.IMergeViewerItem#getSideValue(org.eclipse.emf.compare.rcp.ui.mergeviewer.ide.ui.internal.contentmergeviewer.IMergeViewer.MergeViewerSide)protected IMergeViewerItem createBasicContainer(ResourceAttachmentChange diff, IMergeViewerItem mergeViewerItem, AdapterFactory adapterFactory)
ResourceAttachmentChange.diff - the given ResourceAttachmentChange.protected com.google.common.base.Predicate<Diff> visibleContainmentDiffPredicate(IMergeViewerItemProviderConfiguration configuration)
diff is visible and itself (or any of its 'refining' diffs)
is a containment reference change.configuration - the IMergeViewerItemProviderConfiguration.Predicate.protected com.google.common.base.Predicate<Diff> visibleInMergeViewerPredicate(com.google.common.base.Predicate<? super EObject> predicate, IDifferenceGroupProvider groupProvider)
diff is visible in the merge viewer.predicate - the filtering Predicate.groupProvider - the active IDifferenceGroupProvider.Predicate.protected List<IMergeViewerItem> createMergeViewerItemsFrom(Collection<?> values, IMergeViewerItem parent, IMergeViewerItemProviderConfiguration configuration)
values.values - the object for which IMergeViewerItems shall be created.parent - the IMergeViewerItem parent of the children to createconfiguration - the IMergeViewerItemProviderConfiguration.protected IMergeViewerItem createMergeViewerItemFrom(EObject eObject, IMergeViewerItem parent, IMergeViewerItemProviderConfiguration configuration)
eObject - the given eObject.parent - the IMergeViewerItem parent of the child to create.configuration - the IMergeViewerItemProviderConfiguration.protected IMergeViewerItem createMergeViewerItem(Comparison comparison, Diff diff, Object left, Object right, Object ancestor, IMergeViewer.MergeViewerSide side, AdapterFactory adapterFactory)
IMergeViewerItem from the given data.comparison - the Comparison.diff - the Diff. May be null.left - the left object. May be null. (One of left, right, ancestor should be non-null).right - the right object. May be null. (One of left, right, ancestor should be non-null).ancestor - the ancestor object. May be null. (One of left, right, ancestor should be non-null).side - the IMergeViewer.MergeViewerSide.adapterFactory - the AdapterFactory.IMergeViewerItem.protected IMergeViewerItem createMergeViewerItem(Comparison comparison, Diff diff, Match match, IMergeViewer.MergeViewerSide side, AdapterFactory adapterFactory)
IMergeViewerItem from the given data.comparison - the Comparison.diff - the Diff. May be null.match - the Match.side - the IMergeViewer.MergeViewerSide.adapterFactory - the AdapterFactory.IMergeViewerItem.
Copyright (c) 2006, 2015 Obeo and others. All rights reserved.