diff options
author | Cedric Notot | 2013-07-26 08:34:18 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2013-07-29 14:51:19 +0000 |
commit | 90d475f41d4bee1a94c4be7468ad93048fa6384c (patch) | |
tree | db4d0ee34c9369877b7a493d97d4ee6944a1e665 /plugins/org.eclipse.emf.compare.ide.ui/src | |
parent | 85693af8d6e87cd2a620f16aa790904b238c0e98 (diff) | |
download | org.eclipse.emf.compare-90d475f41d4bee1a94c4be7468ad93048fa6384c.tar.gz org.eclipse.emf.compare-90d475f41d4bee1a94c4be7468ad93048fa6384c.tar.xz org.eclipse.emf.compare-90d475f41d4bee1a94c4be7468ad93048fa6384c.zip |
Add diagnostic to comparison object.
- Add eAttribute to Comparison EClass
- Regeneration of model and edit
- Checking for error and monitor cancellation in EMFCompare class
- Display a diagnostic dialog if comparison diagnostic contains an error
at least.
Change-Id: I942fa3283c2b71398837b4c8993bbfaae018eb74
Diffstat (limited to 'plugins/org.eclipse.emf.compare.ide.ui/src')
-rw-r--r-- | plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/structuremergeviewer/EMFCompareStructureMergeViewer.java | 19 |
1 files changed, 19 insertions, 0 deletions
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 6eeed23b6..04091355c 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 @@ -35,7 +35,9 @@ import org.eclipse.core.runtime.jobs.Job; import org.eclipse.emf.common.command.Command; import org.eclipse.emf.common.command.CommandStack; import org.eclipse.emf.common.command.CommandStackListener; +import org.eclipse.emf.common.ui.dialogs.DiagnosticDialog; import org.eclipse.emf.common.util.BasicMonitor; +import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.compare.Comparison; import org.eclipse.emf.compare.EMFCompare; import org.eclipse.emf.compare.Match; @@ -54,6 +56,7 @@ import org.eclipse.emf.compare.ide.ui.internal.util.PlatformElementUtil; import org.eclipse.emf.compare.ide.ui.internal.util.SWTUtil; import org.eclipse.emf.compare.ide.ui.logical.IModelResolver; import org.eclipse.emf.compare.ide.ui.logical.IStorageProviderAccessor; +import org.eclipse.emf.compare.internal.utils.ComparisonUtil; import org.eclipse.emf.compare.rcp.EMFCompareRCPPlugin; import org.eclipse.emf.compare.rcp.ui.internal.EMFCompareConstants; import org.eclipse.emf.compare.rcp.ui.internal.structuremergeviewer.groups.IDifferenceGroupProvider; @@ -375,6 +378,9 @@ public class EMFCompareStructureMergeViewer extends AbstractViewerWrapper implem IComparisonScope comparisonScope = input.getComparisonScope(); Comparison comparison = comparator.compare(comparisonScope, BasicMonitor.toMonitor(monitor)); + + reportErrors(comparison); + compareInputChanged(input.getComparisonScope(), comparison); } @@ -449,6 +455,8 @@ public class EMFCompareStructureMergeViewer extends AbstractViewerWrapper implem .setPostProcessorRegistry(EMFCompareRCPPlugin.getDefault().getPostProcessorRegistry()) .build().compare(scope, BasicMonitor.toMonitor(subMonitor.newChild(15))); + reportErrors(compareResult); + final ResourceSet leftResourceSet = (ResourceSet)scope.getLeft(); final ResourceSet rightResourceSet = (ResourceSet)scope.getRight(); final ResourceSet originResourceSet = (ResourceSet)scope.getOrigin(); @@ -531,6 +539,17 @@ public class EMFCompareStructureMergeViewer extends AbstractViewerWrapper implem } } + private void reportErrors(final Comparison comparison) { + if (ComparisonUtil.containsErrors(comparison)) { + SWTUtil.safeAsyncExec(new Runnable() { + public void run() { + DiagnosticDialog.open(getControl().getShell(), "Comparison report", //$NON-NLS-1$ + "Some issues were detected.", (Diagnostic)comparison.getDiagnostic()); //$NON-NLS-1$ + } + }); + } + } + /** * Constructs the comparison scope corresponding to the given typed elements. * |