Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Notot2013-07-26 08:34:18 +0000
committerGerrit Code Review @ Eclipse.org2013-07-29 14:51:19 +0000
commit90d475f41d4bee1a94c4be7468ad93048fa6384c (patch)
treedb4d0ee34c9369877b7a493d97d4ee6944a1e665 /plugins/org.eclipse.emf.compare.ide.ui/src
parent85693af8d6e87cd2a620f16aa790904b238c0e98 (diff)
downloadorg.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.java19
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.
*

Back to the top