diff options
-rw-r--r-- | plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/impl/BasicDifferenceGroupImpl.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/impl/BasicDifferenceGroupImpl.java b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/impl/BasicDifferenceGroupImpl.java index 702540565..b7af47ac8 100644 --- a/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/impl/BasicDifferenceGroupImpl.java +++ b/plugins/org.eclipse.emf.compare.rcp.ui/src/org/eclipse/emf/compare/rcp/ui/internal/structuremergeviewer/groups/impl/BasicDifferenceGroupImpl.java @@ -348,9 +348,9 @@ public class BasicDifferenceGroupImpl extends AdapterImpl implements IDifference node.getChildren().addAll(buildSubTree(matchOfValue, true, DIFF_TO_SIDE.apply(diff))); } if (containment) { - ret.addAll(manageRefines(diff)); + ret.addAll(manageRefines(diff, side)); } else { - nodeChildren.addAll(manageRefines(diff)); + nodeChildren.addAll(manageRefines(diff, side)); } } else if (!(diff instanceof ResourceAttachmentChange)) { if (diff.getPrimeRefining() != null && extensionDiffProcessed.contains(diff)) { @@ -428,14 +428,16 @@ public class BasicDifferenceGroupImpl extends AdapterImpl implements IDifference * * @param diff * the given Diff. + * @param side + * the accepted side(s) for children of current level. * @return the sub tree of refines diffs. */ - private List<TreeNode> manageRefines(Diff diff) { + private List<TreeNode> manageRefines(Diff diff, ChildrenSide side) { final List<TreeNode> ret = Lists.newArrayList(); final EList<Diff> refines = diff.getRefines(); for (Diff refine : refines) { Diff mainDiff = refine.getPrimeRefining(); - if (mainDiff != null && mainDiff == diff) { + if (mainDiff != null && mainDiff == diff && and(filter, compatibleSide(side)).apply(refine)) { TreeNode refineSubTree = buildSubTree(refine); ret.add(refineSubTree); extensionDiffProcessed.add(refine); |