diff options
author | Mikaël Barbero | 2013-01-25 10:42:29 +0000 |
---|---|---|
committer | Mikaël Barbero | 2013-01-25 14:18:30 +0000 |
commit | 3b3cc11b29023569eac50ef33d750478b51354f7 (patch) | |
tree | ca1b009ab3101fade9935aaccee29a8790a86874 | |
parent | f6caf2ba9692c90ab40eaa64e2696a2c0839d011 (diff) | |
download | org.eclipse.emf.compare-3b3cc11b29023569eac50ef33d750478b51354f7.tar.gz org.eclipse.emf.compare-3b3cc11b29023569eac50ef33d750478b51354f7.tar.xz org.eclipse.emf.compare-3b3cc11b29023569eac50ef33d750478b51354f7.zip |
Simplify handling of adaptation of Comparison EObject to Node for
StructureMergeViewer
- move all label and content provider logic to .edit plugins
- adapters do not implement IDiffElement and IDiffContainer anymore (no
need).
- change merge diff icon
47 files changed, 547 insertions, 447 deletions
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/add_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/add_ov.gif Binary files differindex c123a2b13..c123a2b13 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/add_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/add_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/chg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/chg_ov.gif Binary files differindex 2b1b8d677..2b1b8d677 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/chg_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/chg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confadd_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confadd_ov.png Binary files differindex f7834e57e..f7834e57e 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confadd_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confadd_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confchg_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confchg_ov.png Binary files differindex 6be0f6725..6be0f6725 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confchg_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confchg_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confdel_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confdel_ov.png Binary files differindex dac7e135d..dac7e135d 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confdel_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confdel_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_add_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_add_ov.png Binary files differindex ffed135d2..ffed135d2 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_add_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_add_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_chg_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_chg_ov.png Binary files differindex b5d33e535..b5d33e535 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_chg_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_chg_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_del_ov.png b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_del_ov.png Binary files differindex 2bff268e6..2bff268e6 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/confr_del_ov.png +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/confr_del_ov.png diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/del_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/del_ov.gif Binary files differindex ef0207c62..ef0207c62 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/del_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/del_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/error_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/error_ov.gif Binary files differindex 0bc60689c..0bc60689c 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/error_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/error_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/inadd_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inadd_ov.gif Binary files differindex 05a9f5a68..05a9f5a68 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/inadd_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inadd_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/inchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inchg_ov.gif Binary files differindex 12d4a9732..12d4a9732 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/inchg_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/indel_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/indel_ov.gif Binary files differindex 373a68f14..373a68f14 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/indel_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/indel_ov.gif diff --git a/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inoutchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inoutchg_ov.gif Binary files differnew file mode 100644 index 000000000..453497689 --- /dev/null +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/inoutchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/merged_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/merged_ov.gif Binary files differnew file mode 100644 index 000000000..603a9e124 --- /dev/null +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/merged_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outadd_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outadd_ov.gif Binary files differindex 63fb2967c..63fb2967c 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outadd_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outadd_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outchg_ov.gif Binary files differindex 78321d74d..78321d74d 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outchg_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outdel_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outdel_ov.gif Binary files differindex 7182e5596..7182e5596 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/outdel_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/outdel_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_inadd_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inadd_ov.gif Binary files differindex 0ac0cea9e..0ac0cea9e 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_inadd_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inadd_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_inchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inchg_ov.gif Binary files differindex c330c0c9f..c330c0c9f 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_inchg_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_indel_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_indel_ov.gif Binary files differindex 5acab6778..5acab6778 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_indel_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_indel_ov.gif diff --git a/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inoutchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inoutchg_ov.gif Binary files differnew file mode 100644 index 000000000..ca8c6f4a4 --- /dev/null +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_inoutchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outadd_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outadd_ov.gif Binary files differindex 69607651f..69607651f 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outadd_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outadd_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outchg_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outchg_ov.gif Binary files differindex 17ba1af4f..17ba1af4f 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outchg_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outchg_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outdel_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outdel_ov.gif Binary files differindex ef6b8b745..ef6b8b745 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/r_outdel_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/r_outdel_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/removed_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/removed_ov.gif Binary files differindex 045d88f09..045d88f09 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/removed_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/removed_ov.gif diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/warning_ov.gif b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/warning_ov.gif Binary files differindex 2b2e50fe7..2b2e50fe7 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/warning_ov.gif +++ b/plugins/org.eclipse.emf.compare.edit/icons/full/ovr16/warning_ov.gif diff --git a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/AttributeChangeItemProviderSpec.java b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/AttributeChangeItemProviderSpec.java index 8c80e662a..8f70267aa 100644 --- a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/AttributeChangeItemProviderSpec.java +++ b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/AttributeChangeItemProviderSpec.java @@ -33,11 +33,14 @@ import org.eclipse.emf.ecore.util.EcoreUtil; */
public class AttributeChangeItemProviderSpec extends AttributeChangeItemProvider implements IItemStyledLabelProvider {
+ private final OverlayImageProvider overlayProvider;
+
/**
* @param adapterFactory
*/
public AttributeChangeItemProviderSpec(AdapterFactory adapterFactory) {
super(adapterFactory);
+ overlayProvider = new OverlayImageProvider(getResourceLocator(), true);
}
/**
@@ -48,12 +51,16 @@ public class AttributeChangeItemProviderSpec extends AttributeChangeItemProvider @Override
public Object getImage(Object object) {
AttributeChange attributeChange = (AttributeChange)object;
- Object ret = AdapterFactoryUtil.getImage(getRootAdapterFactory(), attributeChange.getValue());
+ Object attributeChangeValueImage = AdapterFactoryUtil.getImage(getRootAdapterFactory(),
+ attributeChange.getValue());
- if (ret == null) {
- ret = super.getImage(object);
+ if (attributeChangeValueImage == null) {
+ attributeChangeValueImage = super.getImage(object);
}
+ Object diffImage = overlayProvider.getComposedImage(attributeChange, attributeChangeValueImage);
+ Object ret = overlayImage(object, diffImage);
+
return ret;
}
diff --git a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/MatchItemProviderSpec.java b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/MatchItemProviderSpec.java index 15f954ee6..7fd6d7397 100644 --- a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/MatchItemProviderSpec.java +++ b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/MatchItemProviderSpec.java @@ -59,6 +59,8 @@ public class MatchItemProviderSpec extends MatchItemProvider implements IItemSty }
};
+ private final OverlayImageProvider overlayProvider;
+
/**
* Constructor calling super {@link #MatchItemProvider(AdapterFactory)}.
*
@@ -67,6 +69,7 @@ public class MatchItemProviderSpec extends MatchItemProvider implements IItemSty */
public MatchItemProviderSpec(AdapterFactory adapterFactory) {
super(adapterFactory);
+ overlayProvider = new OverlayImageProvider(getResourceLocator(), true);
}
/**
@@ -91,6 +94,9 @@ public class MatchItemProviderSpec extends MatchItemProvider implements IItemSty ret = super.getImage(object);
}
+ Object matchImage = overlayProvider.getComposedImage(match, ret);
+ ret = overlayImage(object, matchImage);
+
return ret;
}
diff --git a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/OverlayImageProvider.java b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/OverlayImageProvider.java new file mode 100644 index 000000000..b5ba7a103 --- /dev/null +++ b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/OverlayImageProvider.java @@ -0,0 +1,342 @@ +/*******************************************************************************
+ * Copyright (c) 2012 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.compare.provider.spec;
+
+import static com.google.common.collect.Iterables.any;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.isEmpty;
+import static com.google.common.collect.Lists.newArrayList;
+import static org.eclipse.emf.compare.utils.EMFComparePredicates.hasConflict;
+
+import com.google.common.base.Predicate;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.compare.Comparison;
+import org.eclipse.emf.compare.Conflict;
+import org.eclipse.emf.compare.ConflictKind;
+import org.eclipse.emf.compare.Diff;
+import org.eclipse.emf.compare.DifferenceKind;
+import org.eclipse.emf.compare.DifferenceSource;
+import org.eclipse.emf.compare.DifferenceState;
+import org.eclipse.emf.compare.Match;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.ComposedImage;
+
+/**
+ * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a>
+ */
+public class OverlayImageProvider {
+
+ private final boolean fLeftIsLocal;
+
+ private final ResourceLocator fResourceLocator;
+
+ /**
+ *
+ */
+ public OverlayImageProvider(ResourceLocator resourceLocator, boolean leftIsLocal) {
+ this.fResourceLocator = resourceLocator;
+ this.fLeftIsLocal = leftIsLocal;
+ }
+
+ public Object getComposedImage(Diff diff, Object imageToCompose) {
+ String overlay = getImageOverlay(diff);
+ return getComposedImage(imageToCompose, overlay);
+ }
+
+ public Object getComposedImage(Match match, Object imageToCompose) {
+ String overlay = getImageOverlay(match);
+ return getComposedImage(imageToCompose, overlay);
+ }
+
+ private Object getComposedImage(Object imageToCompose, String overlay) {
+ Collection<Object> images = newArrayList();
+ images.add(imageToCompose);
+ if (overlay != null) {
+ Object image = fResourceLocator.getImage(overlay);
+ images.add(image);
+ }
+ return new ComposedImageExtension(images);
+ }
+
+ private String getImageOverlay(Diff diff) {
+ final DifferenceSource source = diff.getSource();
+ final Match match = diff.getMatch();
+ final Conflict conflict = diff.getConflict();
+ final DifferenceKind diffKind = diff.getKind();
+ final Comparison c = match.getComparison();
+ String path = "full/ovr16/";
+
+ if (diff.getState() == DifferenceState.MERGED) {
+ path += "merged_ov";
+ } else if (diff.getState() == DifferenceState.DISCARDED) {
+ path += "removed_ov";
+ } else if (c.isThreeWay()) {
+ String filext = "";
+ if (conflict != null) {
+ if (conflict.getKind() == ConflictKind.REAL) {
+ filext = ".png";
+ path += "conf";
+ path += getConflictWay(source);
+ }
+ // if (conflict.getKind() == ConflictKind.PSEUDO) {
+ // path += "pconf";
+ // }
+ } else {
+ switch (source) {
+ case LEFT:
+ if (fLeftIsLocal) {
+ path += "r_out";
+ } else {
+ path += "out";
+ }
+ break;
+ case RIGHT:
+ if (fLeftIsLocal) {
+ path += "r_in";
+ } else {
+ path += "in";
+ }
+ break;
+ default:
+ // Cannot happen ... for now
+ break;
+ }
+ }
+
+ switch (diffKind) {
+ case ADD:
+ path += "add_ov";
+ break;
+ case DELETE:
+ path += "del_ov";
+ break;
+ case CHANGE:
+ // fallthrough
+ case MOVE:
+ path += "chg_ov";
+ break;
+ default:
+ // Cannot happen ... for now
+ break;
+ }
+ path += filext;
+ } else {
+ path += getPathForTwoWayDiff(diffKind);
+ }
+ return path;
+ }
+
+ private String getPathForTwoWayDiff(final DifferenceKind diffKind) {
+ final String path;
+ switch (diffKind) {
+ case ADD:
+ if (fLeftIsLocal) {
+ path = "add_ov";
+ } else {
+ path = "del_ov";
+ }
+ break;
+ case DELETE:
+ if (fLeftIsLocal) {
+ path = "del_ov";
+ } else {
+ path = "add_ov";
+ }
+ break;
+ case CHANGE:
+ // fallthrough
+ case MOVE:
+ path = "chg_ov";
+ break;
+ default:
+ path = "";
+ break;
+ }
+ return path;
+ }
+
+ private String getConflictWay(final DifferenceSource source) {
+ final String path;
+ if (source == DifferenceSource.LEFT && !fLeftIsLocal) {
+ path = "r_";
+ } else if (source == DifferenceSource.RIGHT && fLeftIsLocal) {
+ path = "r_";
+ } else {
+ path = "";
+ }
+ return path;
+ }
+
+ private String getImageOverlay(Match match) {
+ String path = null;
+ final EObject ancestor = match.getOrigin();
+ final EObject left = match.getLeft();
+ final EObject right = match.getRight();
+
+ final Iterable<Diff> differences = match.getAllDifferences();
+
+ if (match.getComparison().isThreeWay()) {
+ boolean hasConflicts = any(differences, hasConflict(ConflictKind.REAL, ConflictKind.PSEUDO));
+
+ if (ancestor == null) {
+ if (left == null) {
+ if (right != null) {
+ if (fLeftIsLocal) {
+ path = "r_inadd_ov";
+ } else {
+ path = "inadd_ov";
+ }
+ }
+ } else if (right == null) {
+ if (fLeftIsLocal) {
+ path = "r_outadd_ov";
+ } else {
+ path = "outadd_ov";
+ }
+ } else if (hasConflicts && any(differences, hasConflict(ConflictKind.REAL))) {
+ path = "confadd_ov.png";
+ }
+ } else if (left == null) {
+ if (right == null) {
+ // path = Differencer.CONFLICTING | Differencer.DELETION |
+ // Differencer.PSEUDO_CONFLICT;
+ } else if (!hasConflicts) {
+ if (fLeftIsLocal) {
+ path = "r_outdel_ov";
+ } else {
+ path = "outdel_ov";
+ }
+ } else if (any(differences, hasConflict(ConflictKind.REAL))) {
+ path = "confdel_ov.png";
+ }
+ } else if (right == null) {
+ if (!hasConflicts) {
+ if (fLeftIsLocal) {
+ path = "r_indel_ov";
+ } else {
+ path = "indel_ov";
+ }
+ } else if (any(differences, hasConflict(ConflictKind.REAL))) {
+ path = "confchg_ov.png";
+ }
+ } else {
+ boolean ay = isEmpty(filter(differences, LEFT_DIFF));
+ boolean am = isEmpty(filter(differences, RIGHT_DIFF));
+
+ if (isEmpty(differences)) {
+ // empty
+ } else if (ay && !am) {
+ if (fLeftIsLocal) {
+ path = "r_inchg_ov";
+ } else {
+ path = "inchg_ov";
+ }
+ } else if (!ay && am) {
+ if (fLeftIsLocal) {
+ path = "r_outchg_ov";
+ } else {
+ path = "outchg_ov";
+ }
+ } else {
+ if (hasConflicts && any(differences, hasConflict(ConflictKind.REAL))) {
+ path = "confchg_ov.png";
+ } else {
+ path = "r_inoutchg_ov.gif";
+ }
+ }
+ }
+ } else if (left == null) {
+ if (right != null) {
+ if (fLeftIsLocal) {
+ path = "add_ov";
+ } else {
+ path = "del_ov";
+ }
+ }
+ } else if (right == null) {
+ if (fLeftIsLocal) {
+ path = "del_ov";
+ } else {
+ path = "add_ov";
+ }
+ } else if (!isEmpty(differences)) {
+ path = "chg_ov";
+ }
+
+ String ret = null;
+ if (path != null) {
+ ret = "full/ovr16/" + path;
+ }
+ return ret;
+ }
+
+ private static final Predicate<Diff> LEFT_DIFF = new Predicate<Diff>() {
+ public boolean apply(Diff input) {
+ return input != null && input.getSource() == DifferenceSource.LEFT;
+ }
+ };
+
+ private static final Predicate<Diff> RIGHT_DIFF = new Predicate<Diff>() {
+ public boolean apply(Diff input) {
+ return input != null && input.getSource() == DifferenceSource.RIGHT;
+ }
+ };
+
+ private final class ComposedImageExtension extends ComposedImage {
+
+ /**
+ * @param images
+ */
+ ComposedImageExtension(Collection<?> images) {
+ super(images);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.edit.provider.ComposedImage#getDrawPoints(org.eclipse.emf.edit.provider.ComposedImage.Size)
+ */
+ @Override
+ public List<Point> getDrawPoints(Size size) {
+ List<ComposedImage.Point> result = super.getDrawPoints(size);
+ if (result.size() > 1) {
+ result.get(1).x = 12;
+ result.get(1).y = 2;
+ }
+ return result;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.edit.provider.ComposedImage#getSize(java.util.Collection)
+ */
+ @Override
+ public Size getSize(Collection<? extends Size> imageSizes) {
+ this.imageSizes = newArrayList(imageSizes);
+ List<Point> drawPoints = getDrawPoints(null);
+
+ Size result = new Size();
+ for (int i = 0; i < imageSizes.size(); i++) {
+ Size size = this.imageSizes.get(i);
+ Point point = drawPoints.get(i);
+
+ result.width = Math.max(result.width, size.width + Math.abs(point.x));
+ result.height = Math.max(result.height, size.height + Math.abs(point.y));
+ }
+ return result;
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/ReferenceChangeItemProviderSpec.java b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/ReferenceChangeItemProviderSpec.java index 99a049cfa..f97dbec9c 100644 --- a/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/ReferenceChangeItemProviderSpec.java +++ b/plugins/org.eclipse.emf.compare.edit/src/org/eclipse/emf/compare/provider/spec/ReferenceChangeItemProviderSpec.java @@ -49,6 +49,8 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider; */
public class ReferenceChangeItemProviderSpec extends ReferenceChangeItemProvider implements IItemStyledLabelProvider {
+ private final OverlayImageProvider overlayProvider;
+
/**
* Constructor calling super {@link #ReferenceChangeItemProvider(AdapterFactory)}.
*
@@ -57,6 +59,7 @@ public class ReferenceChangeItemProviderSpec extends ReferenceChangeItemProvider */
public ReferenceChangeItemProviderSpec(AdapterFactory adapterFactory) {
super(adapterFactory);
+ overlayProvider = new OverlayImageProvider(getResourceLocator(), true);
}
/**
@@ -139,9 +142,13 @@ public class ReferenceChangeItemProviderSpec extends ReferenceChangeItemProvider public Object getImage(Object object) {
ReferenceChange refChange = (ReferenceChange)object;
- Object image = AdapterFactoryUtil.getImage(getRootAdapterFactory(), refChange.getValue());
+ Object refChangeValueImage = AdapterFactoryUtil.getImage(getRootAdapterFactory(), refChange
+ .getValue());
+
+ Object diffImage = overlayProvider.getComposedImage(refChange, refChangeValueImage);
+ Object ret = overlayImage(object, diffImage);
- return image;
+ return ret;
}
/**
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/merged_ov.gif b/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/merged_ov.gif Binary files differdeleted file mode 100644 index 874a6dcea..000000000 --- a/plugins/org.eclipse.emf.compare.ide.ui/icons/full/ovr16/merged_ov.gif +++ /dev/null diff --git a/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml b/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml index 5cac68976..f5d8a4c55 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml +++ b/plugins/org.eclipse.emf.compare.ide.ui/plugin.xml @@ -56,11 +56,7 @@ point="org.eclipse.emf.edit.itemProviderAdapterFactories">
<factory
class="org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.CompareNodeAdapterFactory"
- supportedTypes=
- "org.eclipse.compare.structuremergeviewer.IDiffElement
- org.eclipse.compare.structuremergeviewer.IDiffContainer
- org.eclipse.compare.structuremergeviewer.ITypedElement
- org.eclipse.compare.structuremergeviewer.ICompareInput"
+ supportedTypes="org.eclipse.compare.structuremergeviewer.ICompareInput"
uri="http://www.eclipse.org/emf/compare">
</factory>
</extension>
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/accessor/AbstractAccessorFactory.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/accessor/AbstractAccessorFactory.java deleted file mode 100644 index 260b8c946..000000000 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/accessor/AbstractAccessorFactory.java +++ /dev/null @@ -1,16 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2012 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.accessor;
-
-/**
- * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a>
- */
-
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewerContentProvider.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewerContentProvider.java index 4bab9d525..4f5c006e6 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewerContentProvider.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/text/EMFCompareTextMergeViewerContentProvider.java @@ -135,6 +135,7 @@ public class EMFCompareTextMergeViewerContentProvider implements IMergeViewerCon }
if (element instanceof ICompareInput) {
Object left = ((ICompareInput)element).getLeft();
+ // TODO: MBA use adapterfactory
if (left == null && element instanceof IDiffElement) {
IDiffElement parent = ((IDiffElement)element).getParent();
if (parent instanceof ICompareInput) {
@@ -206,6 +207,7 @@ public class EMFCompareTextMergeViewerContentProvider implements IMergeViewerCon if (element instanceof ICompareInput) {
Object right = ((ICompareInput)element).getRight();
if (right == null && element instanceof IDiffElement) {
+ // TODO: MBA use adapterfactory
IDiffContainer parent = ((IDiffElement)element).getParent();
if (parent instanceof ICompareInput) {
right = ((ICompareInput)parent).getRight();
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewerContentProvider.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewerContentProvider.java index 89158b648..3283d8945 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewerContentProvider.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/contentmergeviewer/tree/TreeContentMergeViewerContentProvider.java @@ -50,7 +50,8 @@ public class TreeContentMergeViewerContentProvider implements IMergeViewerConten private final Comparison fComparison;
/**
- * Creates a new {@link TreeContentMergeViewerContentProvider} and stored the given {@link CompareConfiguration}.
+ * Creates a new {@link TreeContentMergeViewerContentProvider} and stored the given
+ * {@link CompareConfiguration}.
*
* @param cc
* the {@link CompareConfiguration} that will be used to get label and image of left, right and
@@ -111,6 +112,7 @@ public class TreeContentMergeViewerContentProvider implements IMergeViewerConten Object ret = compareInput.getAncestor();
// if no ancestor and element is a diff, try to reach the ancestor of parent, recursively
if (ret == null && element instanceof IDiffElement) {
+ // TODO: MBA use adapterfactory
IDiffContainer parent = ((IDiffElement)compareInput).getParent();
ret = getAncestorContent(parent);
}
@@ -162,6 +164,7 @@ public class TreeContentMergeViewerContentProvider implements IMergeViewerConten Object ret = compareInput.getLeft();
// if no left and element is a diff, try to reach the left of parent, recursively
if (ret == null && element instanceof IDiffElement) {
+ // TODO: MBA use adapterfactory
IDiffContainer parent = ((IDiffElement)compareInput).getParent();
ret = getLeftContent(parent);
}
@@ -240,6 +243,7 @@ public class TreeContentMergeViewerContentProvider implements IMergeViewerConten Object ret = compareInput.getRight();
// if no right and element is a diff, try to reach the right of parent, recursively
if (ret == null && element instanceof IDiffElement) {
+ // TODO: MBA use adapterfactory
IDiffContainer parent = ((IDiffElement)compareInput).getParent();
ret = getRightContent(parent);
}
@@ -260,6 +264,7 @@ public class TreeContentMergeViewerContentProvider implements IMergeViewerConten } else if (element instanceof ICompareInput) {
Object right = ((ICompareInput)element).getRight();
if (right == null && element instanceof IDiffElement) {
+ // TODO: MBA use adapterfactory
IDiffContainer parent = ((IDiffElement)element).getParent();
if (parent instanceof ICompareInput) {
right = ((ICompareInput)parent).getRight();
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffContainer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffContainer.java deleted file mode 100644 index c9fcde5ec..000000000 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffContainer.java +++ /dev/null @@ -1,120 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2012 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer;
-
-import static com.google.common.collect.Iterables.filter;
-import static com.google.common.collect.Iterables.toArray;
-import static com.google.common.collect.Iterables.transform;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-
-import java.util.Collection;
-
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
-/**
- * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a>
- */
-public abstract class AbstractEDiffContainer extends AbstractEDiffElement implements IDiffContainer {
-
- /**
- * @param adapterFactory
- */
- public AbstractEDiffContainer(AdapterFactory adapterFactory) {
- super(adapterFactory);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffContainer#hasChildren()
- */
- public boolean hasChildren() {
- boolean ret = false;
- Adapter treeItemContentProvider = getAdapterFactory().adapt(getTarget(),
- ITreeItemContentProvider.class);
- if (treeItemContentProvider instanceof ITreeItemContentProvider) {
- ret = ((ITreeItemContentProvider)treeItemContentProvider).hasChildren(target);
- }
- return ret;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffContainer#getChildren()
- */
- public IDiffElement[] getChildren() {
- Iterable<IDiffElement> ret = ImmutableList.of();
- Adapter treeItemContentProvider = getAdapterFactory().adapt(target, ITreeItemContentProvider.class);
- if (treeItemContentProvider instanceof ITreeItemContentProvider) {
- Collection<?> children = ((ITreeItemContentProvider)treeItemContentProvider).getChildren(target);
- ret = adapt(children, getAdapterFactory(), IDiffElement.class);
- }
-
- return toArray(ret, IDiffElement.class);
- }
-
- /**
- * Always throws {@link UnsupportedOperationException}. This {@link AbstractEDiffContainer} is adapted
- * from a diff EObject and cannot be modified directly.
- *
- * @param child
- * the child to add
- * @throws UnsupportedOperationException
- * @see org.eclipse.compare.structuremergeviewer.IDiffContainer#add(org.eclipse.compare.structuremergeviewer.IDiffElement)
- */
- public void add(IDiffElement child) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Always throws {@link UnsupportedOperationException}. This {@link AbstractEDiffContainer} is adapted
- * from a diff EObject and cannot be modified directly.
- *
- * @param child
- * the child to add
- * @throws UnsupportedOperationException
- * @see org.eclipse.compare.structuremergeviewer.IDiffContainer#removeToRoot(org.eclipse.compare.structuremergeviewer.IDiffElement)
- */
- public void removeToRoot(IDiffElement child) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Adapts each elements of the the given <code>iterable</code> to the given <code>type</code> by using the
- * given <code>adapterFactory</code>.
- *
- * @param <T>
- * the type of returned elements.
- * @param iterable
- * the iterable to transform.
- * @param adapterFactory
- * the {@link AdapterFactory} used to adapt elements
- * @param type
- * the target type of adapted elements
- * @return an iterable with element of type <code>type</code>.
- */
- protected static <T> Iterable<T> adapt(Iterable<?> iterable, final AdapterFactory adapterFactory,
- final Class<T> type) {
- Function<Object, Object> adaptFunction = new Function<Object, Object>() {
- public Object apply(Object input) {
- return adapterFactory.adapt(input, type);
- }
- };
- return filter(transform(iterable, adaptFunction), type);
- }
-}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffElement.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffElement.java deleted file mode 100644 index f0d1422bb..000000000 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffElement.java +++ /dev/null @@ -1,157 +0,0 @@ -/*******************************************************************************
- * Copyright (c) 2012 Obeo.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Obeo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer;
-
-import org.eclipse.compare.structuremergeviewer.Differencer;
-import org.eclipse.compare.structuremergeviewer.IDiffContainer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * An EMF {@link Adapter} implementing the {@link IDiffElement} interface.
- * <p>
- * It is delegating {@link #getImage()} and {@link #getName()} to an adapter retrieved from an
- * {@link AdapterFactory}.
- *
- * @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a>
- */
-public abstract class AbstractEDiffElement extends AdapterImpl implements IDiffElement {
-
- /**
- * The {@link AdapterFactory} used to implement {@link #getName()} and {@link #getImage()}.
- */
- private final AdapterFactory fAdapterFactory;
-
- /**
- * Simple constructor storing the given {@link AdapterFactory}.
- *
- * @param adapterFactory
- * the factory.
- */
- public AbstractEDiffElement(AdapterFactory adapterFactory) {
- fAdapterFactory = adapterFactory;
- }
-
- @Override
- public boolean isAdapterForType(Object type) {
- return type == fAdapterFactory;
- }
-
- /**
- * Final accessor to the {@link AdapterFactory} for sub classses.
- *
- * @return the wrapped {@link AdapterFactory}.
- */
- protected final AdapterFactory getAdapterFactory() {
- return fAdapterFactory;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.ITypedElement#getName()
- */
- public String getName() {
- String ret = null;
- Adapter adapter = getAdapterFactory().adapt(target, IItemLabelProvider.class);
- if (adapter instanceof IItemLabelProvider) {
- ret = ((IItemLabelProvider)adapter).getText(target);
- }
- return ret;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.ITypedElement#getImage()
- */
- public Image getImage() {
- Image ret = null;
- Adapter adapter = getAdapterFactory().adapt(target, IItemLabelProvider.class);
- if (adapter instanceof IItemLabelProvider) {
- Object imageObject = ((IItemLabelProvider)adapter).getImage(target);
- ret = ExtendedImageRegistry.getInstance().getImage(imageObject);
- }
- return ret;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.ITypedElement#getType()
- */
- public String getType() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.structuremergeviewer.IDiffElement#getKind()
- */
- public int getKind() {
- return Differencer.NO_CHANGE;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.compare.structuremergeviewer.IDiffElement#getParent()
- */
- public IDiffContainer getParent() {
- IDiffContainer ret = null;
- if (target instanceof EObject) {
- Adapter treeItemContentProvider = getAdapterFactory().adapt(target,
- ITreeItemContentProvider.class);
- if (treeItemContentProvider instanceof ITreeItemContentProvider) {
- ret = getParentAndAdaptAsIDiffContainer((ITreeItemContentProvider)treeItemContentProvider);
- }
- }
- return ret;
- }
-
- /**
- * @param treeItemContentProvider
- * @return
- */
- private IDiffContainer getParentAndAdaptAsIDiffContainer(ITreeItemContentProvider treeItemContentProvider) {
- IDiffContainer ret = null;
- Object parent = treeItemContentProvider.getParent(target);
- if (parent instanceof EObject) {
- Object diffContainer = getAdapterFactory().adapt(parent, IDiffContainer.class);
- if (diffContainer instanceof IDiffContainer) {
- ret = (IDiffContainer)diffContainer;
- }
- }
- return ret;
- }
-
- /**
- * Always throws {@link UnsupportedOperationException}. This {@link AbstractEDiffElement} is adapted from
- * a diff EObject and cannot be modified directly.
- *
- * @param parent
- * the parent to set
- * @see org.eclipse.compare.structuremergeviewer.IDiffElement#setParent(org.eclipse.compare.structuremergeviewer.IDiffContainer)
- * @throws UnsupportedOperationException
- */
- public void setParent(IDiffContainer parent) {
- throw new UnsupportedOperationException();
- }
-
-}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffNode.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffNode.java index 943129613..a7d8107ac 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffNode.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/AbstractEDiffNode.java @@ -11,20 +11,26 @@ package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer;
import org.eclipse.compare.ITypedElement;
+import org.eclipse.compare.structuremergeviewer.Differencer;
import org.eclipse.compare.structuremergeviewer.ICompareInput;
import org.eclipse.compare.structuremergeviewer.ICompareInputChangeListener;
import org.eclipse.core.runtime.ListenerList;
import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.accessor.IAccessorFactory;
import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.accessor.IAccessorFactory.Registry;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
import org.eclipse.jface.util.SafeRunnable;
+import org.eclipse.swt.graphics.Image;
/**
* @author <a href="mailto:mikael.barbero@obeo.fr">Mikael Barbero</a>
*/
-public abstract class AbstractEDiffNode extends AbstractEDiffContainer implements ICompareInput {
+public abstract class AbstractEDiffNode extends AdapterImpl implements ICompareInput {
/**
*
@@ -32,13 +38,35 @@ public abstract class AbstractEDiffNode extends AbstractEDiffContainer implement private final ListenerList fListener;
/**
+ * The {@link AdapterFactory} used to implement {@link #getName()} and {@link #getImage()}.
+ */
+ private final AdapterFactory fAdapterFactory;
+
+ /**
+ * Simple constructor storing the given {@link AdapterFactory}.
+ *
* @param adapterFactory
+ * the factory.
*/
public AbstractEDiffNode(AdapterFactory adapterFactory) {
- super(adapterFactory);
+ fAdapterFactory = adapterFactory;
fListener = new ListenerList();
}
+ @Override
+ public boolean isAdapterForType(Object type) {
+ return type == fAdapterFactory;
+ }
+
+ /**
+ * Final accessor to the {@link AdapterFactory} for sub classses.
+ *
+ * @return the wrapped {@link AdapterFactory}.
+ */
+ protected final AdapterFactory getAdapterFactory() {
+ return fAdapterFactory;
+ }
+
/**
* {@inheritDoc}
*
@@ -92,6 +120,34 @@ public abstract class AbstractEDiffNode extends AbstractEDiffContainer implement /**
* {@inheritDoc}
*
+ * @see org.eclipse.compare.ITypedElement#getImage()
+ */
+ public Image getImage() {
+ Image ret = null;
+ Adapter adapter = getAdapterFactory().adapt(target, IItemLabelProvider.class);
+ if (adapter instanceof IItemLabelProvider) {
+ Object imageObject = ((IItemLabelProvider)adapter).getImage(target);
+ ret = ExtendedImageRegistry.getInstance().getImage(imageObject);
+ }
+ return ret;
+ }
+
+ public int getKind() {
+ return Differencer.NO_CHANGE;
+ }
+
+ public String getName() {
+ String ret = null;
+ Adapter adapter = getAdapterFactory().adapt(target, IItemLabelProvider.class);
+ if (adapter instanceof IItemLabelProvider) {
+ ret = ((IItemLabelProvider)adapter).getText(target);
+ }
+ return ret;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
* @see org.eclipse.compare.structuremergeviewer.ICompareInput#getAncestor()
*/
public ITypedElement getAncestor() {
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/DiffNodeComparer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/DiffNodeComparer.java index 53250f592..cbb779b68 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/DiffNodeComparer.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/DiffNodeComparer.java @@ -10,6 +10,7 @@ *******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer;
+import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.jface.viewers.IElementComparer;
@@ -49,13 +50,13 @@ public class DiffNodeComparer implements IElementComparer { */
public boolean equals(Object a, Object b) {
final boolean equal;
- if (a instanceof AbstractEDiffElement && b instanceof AbstractEDiffElement) {
- final Notifier targetA = ((AbstractEDiffElement)a).getTarget();
+ if (a instanceof Adapter && b instanceof Adapter) {
+ final Notifier targetA = ((Adapter)a).getTarget();
if (targetA == null) {
// Fall back to default behavior
equal = a.equals(b);
} else {
- equal = targetA.equals(((AbstractEDiffElement)b).getTarget());
+ equal = targetA.equals(((Adapter)b).getTarget());
}
} else if (delegate != null) {
equal = delegate.equals(a, b);
@@ -74,8 +75,8 @@ public class DiffNodeComparer implements IElementComparer { */
public int hashCode(Object element) {
final int hashCode;
- if (element instanceof AbstractEDiffElement) {
- final Notifier target = ((AbstractEDiffElement)element).getTarget();
+ if (element instanceof Adapter) {
+ final Notifier target = ((Adapter)element).getTarget();
if (target == null) {
// Fall back to default behavior
hashCode = element.hashCode();
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java index 26c9ddb92..a782adadd 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java @@ -24,7 +24,6 @@ import org.eclipse.compare.ITypedElement; import org.eclipse.compare.structuremergeviewer.DiffTreeViewer; import org.eclipse.compare.structuremergeviewer.ICompareInput; import org.eclipse.compare.structuremergeviewer.ICompareInputChangeListener; -import org.eclipse.compare.structuremergeviewer.IDiffElement; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.SubProgressMonitor; @@ -109,7 +108,7 @@ public class EMFCompareStructureMergeViewer extends DiffTreeViewer implements Co boolean leftIsLocal = CompareConfigurationExtension.getBoolean(configuration, "LEFT_IS_LOCAL", false); //$NON-NLS-1$ setLabelProvider(new DelegatingStyledCellLabelProvider( - new EMFCompareStructureMergeViewerLabelProvider(fAdapterFactory, this, leftIsLocal))); + new EMFCompareStructureMergeViewerLabelProvider(fAdapterFactory, this))); setContentProvider(new EMFCompareStructureMergeViewerContentProvider(fAdapterFactory, differenceGrouper)); @@ -308,7 +307,7 @@ public class EMFCompareStructureMergeViewer extends DiffTreeViewer implements Co void compareInputChanged(final Comparison comparison) { getCompareConfiguration().setProperty(EMFCompareConstants.COMPARE_RESULT, comparison); - fRoot = fAdapterFactory.adapt(comparison, IDiffElement.class); + fRoot = fAdapterFactory.adapt(comparison, ICompareInput.class); getCompareConfiguration().getContainer().runAsynchronously(new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { @@ -455,7 +454,7 @@ public class EMFCompareStructureMergeViewer extends DiffTreeViewer implements Co if (!affectedObjects.isEmpty()) { List<Object> adaptedAffectedObject = newArrayList(); for (Object affectedObject : affectedObjects) { - adaptedAffectedObject.add(fAdapterFactory.adapt(affectedObject, IDiffElement.class)); + adaptedAffectedObject.add(fAdapterFactory.adapt(affectedObject, ICompareInput.class)); } setSelection(new StructuredSelection(adaptedAffectedObject), true); } diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerContentProvider.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerContentProvider.java index 479f777cf..435ea025d 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerContentProvider.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerContentProvider.java @@ -10,46 +10,41 @@ *******************************************************************************/ package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer; +import static com.google.common.collect.Iterables.filter; import static com.google.common.collect.Iterables.isEmpty; import static com.google.common.collect.Iterables.toArray; -import static org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffContainer.adapt; +import static com.google.common.collect.Iterables.transform; +import com.google.common.base.Function; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; -import org.eclipse.compare.structuremergeviewer.IDiffContainer; -import org.eclipse.compare.structuremergeviewer.IDiffElement; +import org.eclipse.compare.structuremergeviewer.ICompareInput; +import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.compare.Comparison; import org.eclipse.emf.compare.Diff; import org.eclipse.emf.compare.ide.ui.internal.actions.group.DifferenceGroup; import org.eclipse.emf.compare.ide.ui.internal.actions.group.DifferenceGrouper; import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.ComparisonNode; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.Viewer; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider; -class EMFCompareStructureMergeViewerContentProvider implements ITreeContentProvider { +class EMFCompareStructureMergeViewerContentProvider extends AdapterFactoryContentProvider { private final DifferenceGrouper fDifferenceGrouper; - private final AdapterFactory fAdapterFactory; - EMFCompareStructureMergeViewerContentProvider(AdapterFactory adapterFactory, DifferenceGrouper differenceGrouper) { - this.fAdapterFactory = adapterFactory; + super(adapterFactory); this.fDifferenceGrouper = differenceGrouper; } - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { - // empty implementation - } - - public void dispose() { - } - + @Override public Object getParent(Object element) { final Object ret; - if (element instanceof IDiffElement) { - ret = ((IDiffElement)element).getParent(); + if (element instanceof Adapter) { + ret = getAdapterFactory().adapt(super.getParent(((Adapter)element).getTarget()), + ICompareInput.class); } else if (element instanceof DifferenceGroup) { ret = ((DifferenceGroup)element).getComparison(); } else { @@ -58,30 +53,28 @@ class EMFCompareStructureMergeViewerContentProvider implements ITreeContentProvi return ret; } + @Override public final boolean hasChildren(Object element) { final boolean ret; if (element instanceof ComparisonNode) { Comparison target = ((ComparisonNode)element).getTarget(); final Iterable<? extends DifferenceGroup> groups = fDifferenceGrouper.getGroups(target); if (isEmpty(groups)) { - ret = doHasChildren((ComparisonNode)element); + ret = super.hasChildren(((Adapter)element).getTarget()); } else { ret = true; } - } else if (element instanceof IDiffContainer) { - ret = doHasChildren((IDiffContainer)element); } else if (element instanceof DifferenceGroup) { ret = !isEmpty(((DifferenceGroup)element).getDifferences()); + } else if (element instanceof Adapter) { + ret = super.hasChildren(((Adapter)element).getTarget()); } else { ret = false; } return ret; } - private boolean doHasChildren(IDiffContainer element) { - return element.hasChildren(); - } - + @Override public final Object[] getChildren(Object element) { final Object[] ret; if (element instanceof ComparisonNode) { @@ -90,25 +83,55 @@ class EMFCompareStructureMergeViewerContentProvider implements ITreeContentProvi if (!isEmpty(groups)) { ret = Iterables.toArray(groups, DifferenceGroup.class); } else { - ret = doGetChildren((IDiffContainer)element); + Iterable<ICompareInput> compareInputs = adapt(super.getChildren(((Adapter)element) + .getTarget()), getAdapterFactory(), ICompareInput.class); + ret = toArray(compareInputs, ICompareInput.class); } - } else if (element instanceof IDiffContainer) { - ret = doGetChildren((IDiffContainer)element); } else if (element instanceof DifferenceGroup) { Iterable<? extends Diff> differences = ((DifferenceGroup)element).getDifferences(); - Iterable<IDiffElement> diffNodes = adapt(differences, fAdapterFactory, IDiffElement.class); - ret = toArray(diffNodes, IDiffElement.class); + Iterable<ICompareInput> compareInputs = adapt(differences, getAdapterFactory(), + ICompareInput.class); + ret = toArray(compareInputs, ICompareInput.class); + } else if (element instanceof Adapter) { + Iterable<ICompareInput> compareInputs = adapt(super.getChildren(((Adapter)element).getTarget()), + getAdapterFactory(), ICompareInput.class); + ret = toArray(compareInputs, ICompareInput.class); } else { ret = new Object[0]; } return ret; } - private Object[] doGetChildren(IDiffContainer diffContainer) { - return diffContainer.getChildren(); - } - + @Override public Object[] getElements(Object element) { return getChildren(element); } + + /** + * Adapts each elements of the the given <code>iterable</code> to the given <code>type</code> by using the + * given <code>adapterFactory</code>. + * + * @param <T> + * the type of returned elements. + * @param iterable + * the iterable to transform. + * @param adapterFactory + * the {@link AdapterFactory} used to adapt elements + * @param type + * the target type of adapted elements + * @return an iterable with element of type <code>type</code>. + */ + static <T> Iterable<T> adapt(Iterable<?> iterable, final AdapterFactory adapterFactory, + final Class<T> type) { + Function<Object, Object> adaptFunction = new Function<Object, Object>() { + public Object apply(Object input) { + return adapterFactory.adapt(input, type); + } + }; + return filter(transform(iterable, adaptFunction), type); + } + + static <T> Iterable<T> adapt(Object[] iterable, final AdapterFactory adapterFactory, final Class<T> type) { + return adapt(Lists.newArrayList(iterable), adapterFactory, type); + } } diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerLabelProvider.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerLabelProvider.java index 91fc20779..bfb6df4b1 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerLabelProvider.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewerLabelProvider.java @@ -10,22 +10,16 @@ *******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer;
-import org.eclipse.compare.structuremergeviewer.IDiffElement;
+import com.google.common.base.Preconditions;
+
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.compare.Diff;
-import org.eclipse.emf.compare.Match;
-import org.eclipse.emf.compare.ide.ui.internal.EMFCompareConstants;
+import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.compare.ide.ui.internal.EMFCompareIDEUIPlugin;
import org.eclipse.emf.compare.ide.ui.internal.actions.group.DifferenceGroup;
-import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.DiffNode;
-import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.ImageProvider;
-import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider.MatchNode;
-import org.eclipse.emf.compare.ide.ui.internal.util.EMFCompareCompositeImageDescriptor;
import org.eclipse.emf.compare.ide.ui.internal.util.StyledStringConverter;
import org.eclipse.emf.compare.provider.IItemStyledLabelProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.Viewer;
@@ -35,18 +29,11 @@ import org.eclipse.swt.graphics.Image; class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelProvider.FontAndColorProvider implements IStyledLabelProvider {
- private final boolean fLeftIsLocal;
-
- private final ImageProvider imgProvider;
-
/**
* @param adapterFactory
*/
- public EMFCompareStructureMergeViewerLabelProvider(AdapterFactory adapterFactory, Viewer viewer,
- boolean leftIsLocal) {
+ public EMFCompareStructureMergeViewerLabelProvider(AdapterFactory adapterFactory, Viewer viewer) {
super(adapterFactory, viewer);
- fLeftIsLocal = leftIsLocal;
- imgProvider = new ImageProvider(fLeftIsLocal);
}
@Override
@@ -61,8 +48,8 @@ class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelPro */
@Override
public Font getFont(Object object) {
- if (object instanceof AbstractEDiffElement) {
- return super.getFont(((AbstractEDiffElement)object).getTarget());
+ if (object instanceof Adapter) {
+ return super.getFont(((Adapter)object).getTarget());
}
return super.getFont(object);
}
@@ -74,8 +61,8 @@ class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelPro */
@Override
public Color getForeground(Object object) {
- if (object instanceof AbstractEDiffElement) {
- return super.getForeground(((AbstractEDiffElement)object).getTarget());
+ if (object instanceof Adapter) {
+ return super.getForeground(((Adapter)object).getTarget());
}
return super.getForeground(object);
}
@@ -87,8 +74,8 @@ class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelPro */
@Override
public Color getBackground(Object object) {
- if (object instanceof AbstractEDiffElement) {
- return super.getBackground(((AbstractEDiffElement)object).getTarget());
+ if (object instanceof Adapter) {
+ return super.getBackground(((Adapter)object).getTarget());
}
return super.getBackground(object);
}
@@ -96,22 +83,8 @@ class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelPro @Override
public Image getImage(Object element) {
final Image ret;
- if (element instanceof DiffNode) {
- Diff target = ((DiffNode)element).getTarget();
- ImageDescriptor overlay = imgProvider.getImageDescriptorOverlay(target);
- Image base = super.getImage(target);
- EMFCompareCompositeImageDescriptor descriptor = new EMFCompareCompositeImageDescriptor(base,
- overlay, EMFCompareConstants.COMPARE_IMAGE_WIDTH, !fLeftIsLocal);
- ret = EMFCompareIDEUIPlugin.getDefault().getImage(descriptor);
- } else if (element instanceof MatchNode) {
- Match target = ((MatchNode)element).getTarget();
- ImageDescriptor overlay = imgProvider.getImageDescriptorOverlay(target);
- Image base = super.getImage(target);
- EMFCompareCompositeImageDescriptor descriptor = new EMFCompareCompositeImageDescriptor(base,
- overlay, EMFCompareConstants.COMPARE_IMAGE_WIDTH, !fLeftIsLocal);
- ret = EMFCompareIDEUIPlugin.getDefault().getImage(descriptor);
- } else if (element instanceof AbstractEDiffElement) {
- ret = ((AbstractEDiffElement)element).getImage();
+ if (element instanceof Adapter) {
+ ret = super.getImage(((Adapter)element).getTarget());
} else if (element instanceof DifferenceGroup) {
final Image groupImage = ((DifferenceGroup)element).getImage();
if (groupImage != null) {
@@ -127,27 +100,45 @@ class EMFCompareStructureMergeViewerLabelProvider extends AdapterFactoryLabelPro }
public StyledString getStyledText(Object element) {
- Object target = null;
- Object adapter = null;
+ final StyledString ret;
if (element instanceof Adapter) {
- target = ((Adapter)element).getTarget();
- adapter = adapterFactory.adapt(target, IItemStyledLabelProvider.class);
- if (adapter instanceof IItemStyledLabelProvider) {
- StyledStringConverter stringConverter = new StyledStringConverter();
- return stringConverter.toJFaceStyledString(((IItemStyledLabelProvider)adapter)
- .getStyledText(target));
- }
- }
-
- final String ret;
- if (element instanceof IDiffElement) {
- ret = ((IDiffElement)element).getName();
+ Notifier target = ((Adapter)element).getTarget();
+ ret = getStyledText(getAdapterFactory(), target);
} else if (element instanceof DifferenceGroup) {
- ret = ((DifferenceGroup)element).getName();
+ ret = new StyledString(((DifferenceGroup)element).getName());
} else {
- ret = super.getText(element);
+ ret = new StyledString(super.getText(element));
}
- return new StyledString(ret);
+ return ret;
}
+
+ /**
+ * Returns the styled text string of the given <code>object</code> by adapting it to
+ * {@link IItemStyledLabelProvider} and asking for its
+ * {@link IItemStyledLabelProvider#getStyledText(Object) text}. Returns null if <code>object</code> is
+ * null.
+ *
+ * @param adapterFactory
+ * the adapter factory to adapt from
+ * @param object
+ * the object from which we want a text
+ * @return the text, or null if object is null.
+ * @throws NullPointerException
+ * if <code>adapterFactory</code> is null.
+ */
+ private static StyledString getStyledText(final AdapterFactory adapterFactory, final Object object) {
+ Preconditions.checkNotNull(adapterFactory);
+ if (object == null) {
+ return null;
+ }
+
+ Object itemStyledLabelProvider = adapterFactory.adapt(object, IItemStyledLabelProvider.class);
+ if (itemStyledLabelProvider instanceof IItemStyledLabelProvider) {
+ StyledStringConverter stringConverter = new StyledStringConverter();
+ return stringConverter.toJFaceStyledString(((IItemStyledLabelProvider)itemStyledLabelProvider)
+ .getStyledText(object));
+ }
+ return null;
+ }
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/AttributeChangeNode.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/AttributeChangeNode.java index 1b9c758ad..8e2e01d19 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/AttributeChangeNode.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/AttributeChangeNode.java @@ -10,7 +10,6 @@ *******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider;
-import org.eclipse.compare.ITypedElement;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.compare.AttributeChange;
@@ -40,14 +39,4 @@ public class AttributeChangeNode extends DiffNode { public AttributeChange getTarget() {
return (AttributeChange)super.getTarget();
}
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffElement#getType()
- */
- @Override
- public String getType() {
- return ITypedElement.TEXT_TYPE;
- }
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/CompareNodeAdapterFactory.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/CompareNodeAdapterFactory.java index b30a27c73..1ed9c125c 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/CompareNodeAdapterFactory.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/CompareNodeAdapterFactory.java @@ -14,10 +14,7 @@ import static com.google.common.collect.Lists.newArrayList; import java.util.Collection; -import org.eclipse.compare.ITypedElement; import org.eclipse.compare.structuremergeviewer.ICompareInput; -import org.eclipse.compare.structuremergeviewer.IDiffContainer; -import org.eclipse.compare.structuremergeviewer.IDiffElement; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; @@ -54,9 +51,6 @@ public class CompareNodeAdapterFactory extends CompareAdapterFactory implements /** * Creates an {@link ComposeableAdapterFactory} with the following supported types: * <ul> - * <li>{@link IDiffElement}</li>, - * <li>{@link IDiffContainer}</li>, - * <li>{@link ITypedElement}</li>, * <li>{@link ICompareInput}</li>. * </ul> * @@ -64,9 +58,6 @@ public class CompareNodeAdapterFactory extends CompareAdapterFactory implements * This will be used by the comparison adapter to group differences together. */ public CompareNodeAdapterFactory() { - supportedTypes.add(IDiffElement.class); - supportedTypes.add(IDiffContainer.class); - supportedTypes.add(ITypedElement.class); supportedTypes.add(ICompareInput.class); } diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/ConflictNode.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/ConflictNode.java index 2c638cab0..e9fcb0457 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/ConflictNode.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/ConflictNode.java @@ -10,7 +10,6 @@ *******************************************************************************/
package org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.provider;
-import org.eclipse.compare.structuremergeviewer.Differencer;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.compare.Conflict;
import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffNode;
@@ -41,14 +40,4 @@ public class ConflictNode extends AbstractEDiffNode { public Conflict getTarget() {
return (Conflict)super.getTarget();
}
-
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffElement#getKind()
- */
- @Override
- public int getKind() {
- return Differencer.CONFLICTING;
- }
}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/MatchNode.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/MatchNode.java index 3e6783fae..b3293ce2f 100644 --- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/MatchNode.java +++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/provider/MatchNode.java @@ -23,7 +23,6 @@ import org.eclipse.emf.compare.ConflictKind; import org.eclipse.emf.compare.Diff;
import org.eclipse.emf.compare.DifferenceSource;
import org.eclipse.emf.compare.Match;
-import org.eclipse.emf.compare.ide.ui.internal.contentmergeviewer.accessor.ContentMergeViewerConstants;
import org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffNode;
import org.eclipse.emf.ecore.EObject;
@@ -84,16 +83,6 @@ public class MatchNode extends AbstractEDiffNode { /**
* {@inheritDoc}
*
- * @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffElement#getType()
- */
- @Override
- public String getType() {
- return ContentMergeViewerConstants.EOBJECT_NODE_TYPE;
- }
-
- /**
- * {@inheritDoc}
- *
* @see org.eclipse.emf.compare.ide.ui.internal.structuremergeviewer.AbstractEDiffElement#getKind()
*/
@Override
|