diff options
author | tfesenko | 2011-02-02 13:42:19 +0000 |
---|---|---|
committer | tfesenko | 2011-02-02 13:42:19 +0000 |
commit | b7c243eb50b12d47c8282bf3108adebfb74d44df (patch) | |
tree | dc69371d5ceb68f4fb1a7a11c45ae31cab77cf70 /extraplugins | |
parent | b0a3b53721d01614a0d4fc7a51bc4727a67e9939 (diff) | |
download | org.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')
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; } |