Skip to content
Snippets Groups Projects
Commit ef1f1129 authored by Jens Bendisposto's avatar Jens Bendisposto
Browse files

at least it compiles & we can edit basic stuff

parent a2d5866b
No related branches found
No related tags found
No related merge requests found
Showing
with 69 additions and 26 deletions
......@@ -18,13 +18,13 @@ Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)",
org.eclipse.emf.compare.edit;bundle-version="4.0.0",
org.eclipse.emf.compare.ide;bundle-version="3.1.1",
org.eclipse.emf.compare.rcp;bundle-version="2.2.0"
Export-Package: org.eventb.texttools,
org.eventb.texttools.formulas,
org.eventb.texttools.merge,
org.eventb.texttools.model.texttools,
org.eventb.texttools.prettyprint,
org.eventb.texttools.syntaxExtension
Bundle-Vendor: Heinrich-Heine University Dusseldorf
Bundle-ClassPath: .
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
Export-Package: org.eventb.texttools,
org.eventb.texttools.formulas,
org.eventb.texttools.model.texttools,
org.eventb.texttools.model.texttools.impl,
org.eventb.texttools.model.texttools.util,
org.eventb.texttools.prettyprint
......@@ -47,7 +47,7 @@
</attributeType>
</relationship>
</extension>
<extension
<!-- <extension
point="org.eclipse.emf.compare.match.engine">
<matchengine
label="EventB Match Engine"
......@@ -70,5 +70,5 @@
label="Event-B Difference Engine"
priority="highest">
</diffengine>
</extension>
</extension> -->
</plugin>
......@@ -8,6 +8,7 @@ package org.eventb.texttools;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
......@@ -18,6 +19,23 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.compare.Comparison;
import org.eclipse.emf.compare.Diff;
import org.eclipse.emf.compare.EMFCompare;
import org.eclipse.emf.compare.match.DefaultComparisonFactory;
import org.eclipse.emf.compare.match.DefaultEqualityHelperFactory;
import org.eclipse.emf.compare.match.DefaultMatchEngine;
import org.eclipse.emf.compare.match.IComparisonFactory;
import org.eclipse.emf.compare.match.IMatchEngine;
import org.eclipse.emf.compare.match.eobject.IEObjectMatcher;
import org.eclipse.emf.compare.match.impl.MatchEngineFactoryImpl;
import org.eclipse.emf.compare.match.impl.MatchEngineFactoryRegistryImpl;
import org.eclipse.emf.compare.merge.BatchMerger;
import org.eclipse.emf.compare.merge.IMerger.Registry;
import org.eclipse.emf.compare.merge.IMerger.RegistryImpl;
import org.eclipse.emf.compare.scope.DefaultComparisonScope;
import org.eclipse.emf.compare.scope.IComparisonScope;
import org.eclipse.emf.compare.utils.UseIdentifiers;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
......@@ -26,7 +44,7 @@ import org.eventb.emf.core.AttributeType;
import org.eventb.emf.core.CoreFactory;
import org.eventb.emf.core.EventBElement;
import org.eventb.emf.core.EventBNamedCommentedComponentElement;
import org.eventb.texttools.merge.ModelMerge;
//import org.eventb.texttools.merge.ModelMerge;
import org.eventb.texttools.prettyprint.PrettyPrinter;
import de.be4.eventb.core.parser.BException;
......@@ -141,14 +159,44 @@ public class PersistenceHelper {
final IProgressMonitor monitor) {
try {
long time0 = System.currentTimeMillis();
final ModelMerge merge = new ModelMerge(oldVersion, newVersion);
IEObjectMatcher matcher = DefaultMatchEngine
.createDefaultEObjectMatcher(UseIdentifiers.NEVER);
IComparisonFactory comparisonFactory = new DefaultComparisonFactory(
new DefaultEqualityHelperFactory());
IMatchEngine.Factory matchEngineFactory = new MatchEngineFactoryImpl(
matcher, comparisonFactory);
matchEngineFactory.setRanking(20);
IMatchEngine.Factory.Registry matchEngineRegistry = new MatchEngineFactoryRegistryImpl();
matchEngineRegistry.add(matchEngineFactory);
EMFCompare comparator = EMFCompare.builder()
.setMatchEngineFactoryRegistry(matchEngineRegistry).build();
IComparisonScope scope = new DefaultComparisonScope(oldVersion,
newVersion, null);
Comparison comparison = comparator.compare(scope);
List<Diff> differences = comparison.getDifferences();
Registry registry = RegistryImpl.createStandaloneInstance();
BatchMerger bm = new BatchMerger(registry);
bm.copyAllRightToLeft(differences, null);
System.out.println("LeFuck");
// final ModelMerge merge = new ModelMerge(oldVersion, newVersion);
long time1 = System.currentTimeMillis();
merge.applyChanges(monitor);
// merge.applyChanges(monitor);
long time2 = System.currentTimeMillis();
if (DEBUG) {
System.out.println("new ModelMerge: " + (time1 - time0));
System.out.println("merge.applyChanges: " + (time2 - time1));
}
if (3 == 2 * 5) { // FIXME temp fix for dead code
throw new InterruptedException();
}
} catch (final InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
......@@ -349,7 +397,7 @@ public class PersistenceHelper {
final long diff = resourceTimestamp - textTimestamp;
// tolerate 50ms offset (time to save file)
// TODO this is ugly!!!
// FIXME this is ugly!!!
if (diff < 50) {
return true;
}
......
......@@ -14,11 +14,6 @@ import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
import org.eventb.emf.core.context.provider.ContextItemProviderAdapterFactory;
import org.eventb.emf.core.machine.provider.MachineItemProviderAdapterFactory;
import org.eventb.emf.core.provider.CoreItemProviderAdapterFactory;
public class ResourceManager {
private final Map<IProject, AdapterFactoryEditingDomain> projectEditingDomains = new HashMap<IProject, AdapterFactoryEditingDomain>();
......@@ -37,15 +32,15 @@ public class ResourceManager {
final ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
adapterFactory
.addAdapterFactory(new ResourceItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
adapterFactory
.addAdapterFactory(new MachineItemProviderAdapterFactory());
adapterFactory
.addAdapterFactory(new ContextItemProviderAdapterFactory());
adapterFactory
.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
// adapterFactory
// .addAdapterFactory(new ResourceItemProviderAdapterFactory());
// adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
// adapterFactory
// .addAdapterFactory(new MachineItemProviderAdapterFactory());
// adapterFactory
// .addAdapterFactory(new ContextItemProviderAdapterFactory());
// adapterFactory
// .addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
final BasicCommandStack commandStack = new BasicCommandStack();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment