fix change recorder init in SemanticPEC
change API in context factory
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/context/PropertiesEditingContextFactory.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/context/PropertiesEditingContextFactory.java
index a99674c..eef8be8 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/context/PropertiesEditingContextFactory.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/context/PropertiesEditingContextFactory.java
@@ -14,6 +14,7 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.eef.runtime.internal.context.ReflectivePropertiesEditingContext;
import org.eclipse.emf.eef.runtime.notify.PropertiesEditingEvent;
import org.eclipse.emf.eef.runtime.services.EEFService;
@@ -109,7 +110,7 @@
* context.
* @return the created {@link PropertiesEditingContext}.
*/
- PropertiesEditingContext createSemanticPropertiesEditingContext(PropertiesEditingContext parentContext, PropertiesEditingEvent editingEvent);
+ SemanticPropertiesEditingContext createSemanticPropertiesEditingContext(PropertiesEditingContext parentContext, PropertiesEditingEvent editingEvent);
/**
* Creates a reflective {@link PropertiesEditingContext} usable to preview a
@@ -121,7 +122,7 @@
* the view to preview.
* @return the create {@link PropertiesEditingContext}.
*/
- PropertiesEditingContext createReflectivePropertiesEditingContext(AdapterFactory adapterFactory, EObject view);
+ ReflectivePropertiesEditingContext createReflectivePropertiesEditingContext(AdapterFactory adapterFactory, EObject view);
/**
* Creates a reflective {@link PropertiesEditingContext} usable to preview a
@@ -134,6 +135,6 @@
* the view to preview.
* @return the create {@link PropertiesEditingContext}.
*/
- PropertiesEditingContext createReflectivePropertiesEditingContext(PropertiesEditingContext parentContext, EObject view);
+ ReflectivePropertiesEditingContext createReflectivePropertiesEditingContext(PropertiesEditingContext parentContext, EObject view);
}
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/PropertiesEditingContextFactoryImpl.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/PropertiesEditingContextFactoryImpl.java
index 487d4f8..b2f958d 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/PropertiesEditingContextFactoryImpl.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/PropertiesEditingContextFactoryImpl.java
@@ -130,7 +130,7 @@
context = new DomainPropertiesEditingContext(parentContext, eObject);
} else if (parentContext instanceof EObjectPropertiesEditingContext) {
context = new EObjectPropertiesEditingContext(parentContext, eObject);
- } else if (parentContext instanceof SemanticPropertiesEditingContext){
+ } else if (parentContext instanceof SemanticPropertiesEditingContext) {
context = new EObjectPropertiesEditingContext(parentContext, eObject);
} else {
throw new IllegalArgumentException("Unable to process this context as a parent");
@@ -170,7 +170,7 @@
* @see org.eclipse.emf.eef.runtime.context.PropertiesEditingContextFactory#createSemanticPropertiesEditingContext(org.eclipse.emf.eef.runtime.context.PropertiesEditingContext,
* org.eclipse.emf.eef.runtime.notify.PropertiesEditingEvent)
*/
- public PropertiesEditingContext createSemanticPropertiesEditingContext(PropertiesEditingContext parentContext, PropertiesEditingEvent editingEvent) {
+ public SemanticPropertiesEditingContext createSemanticPropertiesEditingContext(PropertiesEditingContext parentContext, PropertiesEditingEvent editingEvent) {
SemanticPropertiesEditingContext context;
if (parentContext instanceof DomainAwarePropertiesEditingContext) {
context = new SemanticDomainPropertiesEditingContext((DomainAwarePropertiesEditingContext) parentContext, editingEvent);
@@ -186,7 +186,7 @@
* @see org.eclipse.emf.eef.runtime.context.PropertiesEditingContextFactory#createReflectivePropertiesEditingContext(org.eclipse.emf.common.notify.AdapterFactory,
* org.eclipse.emf.ecore.EObject)
*/
- public PropertiesEditingContext createReflectivePropertiesEditingContext(AdapterFactory adapterFactory, EObject view) {
+ public ReflectivePropertiesEditingContext createReflectivePropertiesEditingContext(AdapterFactory adapterFactory, EObject view) {
ReflectivePropertiesEditingContext context = new ReflectivePropertiesEditingContext(adapterFactory, view);
context.setEMFServiceProvider(emfServiceProvider);
context.setEEFEditingServiceProvider(eefEditingServiceProvider);
@@ -202,7 +202,7 @@
* @see org.eclipse.emf.eef.runtime.context.PropertiesEditingContextFactory#createReflectivePropertiesEditingContext(context,
* org.eclipse.emf.ecore.EObject)
*/
- public PropertiesEditingContext createReflectivePropertiesEditingContext(PropertiesEditingContext parentContext, EObject view) {
+ public ReflectivePropertiesEditingContext createReflectivePropertiesEditingContext(PropertiesEditingContext parentContext, EObject view) {
ReflectivePropertiesEditingContext context = new ReflectivePropertiesEditingContext(parentContext, view);
context.setEMFServiceProvider(emfServiceProvider);
context.setEEFEditingServiceProvider(eefEditingServiceProvider);
diff --git a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/SemanticPropertiesEditingContextImpl.java b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/SemanticPropertiesEditingContextImpl.java
index adeda8e..47cd472 100644
--- a/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/SemanticPropertiesEditingContextImpl.java
+++ b/plugins/org.eclipse.emf.eef.runtime/src/org/eclipse/emf/eef/runtime/internal/context/SemanticPropertiesEditingContextImpl.java
@@ -43,7 +43,6 @@
this.editingEvent = editingEvent;
this.options = new ContextOptions(parentContext.getOptions());
this.editingRecorder = new EditingRecorderImpl();
- editingRecorder.initRecording(parentContext.getEditingComponent().getEObject());
}
/**
@@ -87,7 +86,9 @@
* @see org.eclipse.emf.eef.runtime.context.PropertiesEditingContext#startEditing()
*/
public void startEditing() {
- editingRecorder.initRecording(parentContext.getEditingComponent().getEObject());
+ if (editingRecorder.getChangeRecorder() == null || (editingRecorder.getChangeRecorder() != null && !editingRecorder.getChangeRecorder().isRecording())) {
+ editingRecorder.initRecording(parentContext.getEditingComponent().getEObject());
+ }
}
/**