diff options
Diffstat (limited to 'plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java')
-rw-r--r-- | plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java index 604124a8c..65e74a097 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/table/TableContentMergeViewer.java @@ -10,12 +10,17 @@ *******************************************************************************/ package org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.table; +import static com.google.common.collect.Iterables.addAll; + +import java.util.ArrayList; +import java.util.List; import java.util.ResourceBundle; import org.eclipse.compare.CompareConfiguration; import org.eclipse.emf.common.command.Command; import org.eclipse.emf.compare.Diff; import org.eclipse.emf.compare.DifferenceState; +import org.eclipse.emf.compare.ide.EMFCompareIDEPlugin; import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.EMFCompareContentMergeViewer; import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin; import org.eclipse.emf.compare.rcp.ui.mergeviewer.IMergeViewer.MergeViewerSide; @@ -24,6 +29,7 @@ import org.eclipse.emf.compare.rcp.ui.mergeviewer.MatchedObject; import org.eclipse.emf.compare.rcp.ui.mergeviewer.MergeViewer; import org.eclipse.emf.compare.rcp.ui.mergeviewer.TableMergeViewer; import org.eclipse.emf.compare.rcp.ui.mergeviewer.accessor.ICompareAccessor; +import org.eclipse.emf.compare.utils.DiffUtil; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; @@ -112,10 +118,15 @@ public class TableContentMergeViewer extends EMFCompareContentMergeViewer { protected void copyDiff(boolean leftToRight) { final Diff diffToCopy = getDiffToCopy(getRightMergeViewer()); if (diffToCopy != null) { - Command copyCommand = getEditingDomain().createCopyCommand(diffToCopy, leftToRight, + List<Diff> diffsToCopy = new ArrayList<Diff>(); + diffsToCopy.add(diffToCopy); + if (isSubDiffFilterActive()) { + addAll(diffsToCopy, DiffUtil.getSubDiffs(leftToRight).apply(diffToCopy)); + } + Command copyCommand = getEditingDomain().createCopyCommand(diffsToCopy, leftToRight, EMFCompareRCPPlugin.getDefault().getMergerRegistry()); - getEditingDomain().getCommandStack().execute(copyCommand); + getEditingDomain().getCommandStack().execute(copyCommand); refresh(); } } |