Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfesenko2011-02-02 13:42:19 +0000
committertfesenko2011-02-02 13:42:19 +0000
commitb7c243eb50b12d47c8282bf3108adebfb74d44df (patch)
treedc69371d5ceb68f4fb1a7a11c45ae31cab77cf70 /extraplugins
parentb0a3b53721d01614a0d4fc7a51bc4727a67e9939 (diff)
downloadorg.eclipse.papyrus-b7c243eb50b12d47c8282bf3108adebfb74d44df.tar.gz
org.eclipse.papyrus-b7c243eb50b12d47c8282bf3108adebfb74d44df.tar.xz
org.eclipse.papyrus-b7c243eb50b12d47c8282bf3108adebfb74d44df.zip
Bug 324071 - [Compare] support UML Stereotypes in models compared with EMF Compare
Diffstat (limited to 'extraplugins')
-rw-r--r--extraplugins/compare/org.eclipse.papyrus.compare/plugin.xml10
-rw-r--r--extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/UMLReferenceCheck.java6
-rw-r--r--extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/extension/ProcessTaggedValues.java4
-rw-r--r--extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/element/CompareTwoElementsAction.java11
4 files changed, 22 insertions, 9 deletions
diff --git a/extraplugins/compare/org.eclipse.papyrus.compare/plugin.xml b/extraplugins/compare/org.eclipse.papyrus.compare/plugin.xml
index f644cbfcb18..af62e1fc215 100644
--- a/extraplugins/compare/org.eclipse.papyrus.compare/plugin.xml
+++ b/extraplugins/compare/org.eclipse.papyrus.compare/plugin.xml
@@ -39,11 +39,13 @@
<extension point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="true"
- objectClass="org.eclipse.gmt.modisco.infra.browser.uicore.internal.model.ModelElementItem"
+ objectClass="org.eclipse.emf.ecore.EObject"
nameFilter="*"
id="org.eclipse.papyrus.domaincodegen.ui.popupMenus.contribution.IFile">
- <menu id="org.eclipse.papyrus.compare.menu" label="Papyrus Compare" path="additionsAcceleo">
- <groupMarker name="acceleo"/>
+ <menu id="UMLCompare" label="Papyrus Compare" path="additions">
+ <separator
+ name="compareTwoElements">
+ </separator>
</menu>
<action
class="org.eclipse.papyrus.compare.element.CompareTwoElementsAction"
@@ -51,7 +53,7 @@
id="org.eclipse.papyrus.compare.action.CompareTwoElementsAction"
icon="icons/export_as_html.gif"
label="Compare two models"
- menubarPath="org.eclipse.papyrus.compare.menu/compare"/>
+ menubarPath="UMLCompare/compareTwoElements"/>
</objectContribution>
</extension>
diff --git a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/UMLReferenceCheck.java b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/UMLReferenceCheck.java
index e2a02b14897..9859b5a560e 100644
--- a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/UMLReferenceCheck.java
+++ b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/UMLReferenceCheck.java
@@ -44,9 +44,9 @@ public class UMLReferenceCheck extends ReferencesCheck {
@Override
protected boolean shouldBeIgnored(EReference reference) {
- if (isTaggedValue(reference)) {
- return false;
- }
+// if (isTaggedValue(reference)) {
+// return false;
+// }
return super.shouldBeIgnored(reference);
}
diff --git a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/extension/ProcessTaggedValues.java b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/extension/ProcessTaggedValues.java
index fddb84945a1..bf4c67fd851 100644
--- a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/extension/ProcessTaggedValues.java
+++ b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/diff/extension/ProcessTaggedValues.java
@@ -65,11 +65,11 @@ public class ProcessTaggedValues extends AbstractDiffExtensionImpl {
}
if(element instanceof AttributeChange) {
AttributeChange attributeChange = (AttributeChange)element;
- EObject stereotypeApplication = attributeChange.getLeftElement();
+ EObject stereotypeApplication = attributeChange.getRightElement();
if(UMLCompareUtils.isStereotypeApplication(stereotypeApplication)) {
return stereotypeApplication;
}
- stereotypeApplication = attributeChange.getRightElement();
+ stereotypeApplication = attributeChange.getLeftElement();
if(UMLCompareUtils.isStereotypeApplication(stereotypeApplication)) {
return stereotypeApplication;
}
diff --git a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/element/CompareTwoElementsAction.java b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/element/CompareTwoElementsAction.java
index 965021010a5..ba214705475 100644
--- a/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/element/CompareTwoElementsAction.java
+++ b/extraplugins/compare/org.eclipse.papyrus.compare/src/org/eclipse/papyrus/compare/element/CompareTwoElementsAction.java
@@ -16,16 +16,19 @@ package org.eclipse.papyrus.compare.element;
import static org.eclipse.papyrus.compare.Activator.log;
import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
import java.util.Map;
import org.eclipse.compare.CompareUI;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.compare.EMFCompareException;
+import org.eclipse.emf.compare.diff.metamodel.AbstractDiffExtension;
import org.eclipse.emf.compare.diff.metamodel.ComparisonResourceSnapshot;
import org.eclipse.emf.compare.diff.metamodel.ComparisonSnapshot;
import org.eclipse.emf.compare.diff.metamodel.DiffFactory;
import org.eclipse.emf.compare.diff.metamodel.DiffModel;
+import org.eclipse.emf.compare.diff.service.DiffService;
import org.eclipse.emf.compare.match.MatchOptions;
import org.eclipse.emf.compare.match.engine.GenericMatchScopeProvider;
import org.eclipse.emf.compare.match.engine.IMatchEngine;
@@ -106,6 +109,14 @@ public class CompareTwoElementsAction extends TeamAction {
protected DiffModel contentDiff(final EObject left, final EObject right, final MatchModel match) {
ElementContentDiffEngine engine = new ElementContentDiffEngine(left, right);
final DiffModel diff = engine.doDiff(match);
+ final Collection<AbstractDiffExtension> extensions = DiffService.getCorrespondingDiffExtensions(match);
+ for(final AbstractDiffExtension ext : extensions) {
+ if(ext != null) {
+ ext.visit(diff);
+ }
+ }
+
+ engine.reset();
return diff;
}

Back to the top