diff options
author | glefur | 2010-11-18 14:29:46 +0000 |
---|---|---|
committer | glefur | 2010-11-18 14:29:46 +0000 |
commit | 6ed2368759bcb038795794802fd3bee9ad75f93f (patch) | |
tree | ae2dc93234b3e20f325d6c21fb16d0d3b2e7879d /plugins | |
parent | 6d195d191449669bf0ac1930cc57f1ae623b25f9 (diff) | |
download | org.eclipse.eef-6ed2368759bcb038795794802fd3bee9ad75f93f.tar.gz org.eclipse.eef-6ed2368759bcb038795794802fd3bee9ad75f93f.tar.xz org.eclipse.eef-6ed2368759bcb038795794802fd3bee9ad75f93f.zip |
FIXED: wizard editing domain shared bug
Diffstat (limited to 'plugins')
8 files changed, 185 insertions, 36 deletions
diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFElementBindingBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFElementBindingBasePropertiesEditionComponent.java index d534641e3..2413d515a 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFElementBindingBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFElementBindingBasePropertiesEditionComponent.java @@ -30,10 +30,14 @@ import org.eclipse.emf.eef.mapping.parts.EMFElementBindingPropertiesEditionPart; import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; import org.eclipse.emf.eef.runtime.impl.filters.EObjectFilter; import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.utils.EEFConverterUtil; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings; @@ -117,8 +121,8 @@ public class EMFElementBindingBasePropertiesEditionComponent extends SinglePartP }); basePart.addFilterToViews(new EObjectFilter(ViewsPackage.eINSTANCE.getView())); // Start of user code for additional businessfilters for views - - // End of user code + + // End of user code basePart.addFilterToModel(new ViewerFilter() { @@ -133,8 +137,8 @@ public class EMFElementBindingBasePropertiesEditionComponent extends SinglePartP }); // Start of user code for additional businessfilters for model - - // End of user code + + // End of user code } // init values for referenced views @@ -169,7 +173,22 @@ public class EMFElementBindingBasePropertiesEditionComponent extends SinglePartP } } if (MappingViewsRepository.EMFElementBinding.Binding.model == event.getAffectedEditor()) { - modelSettings.setToReference((EClassifier)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + modelSettings.setToReference((EClassifier)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, MappingPackage.eINSTANCE.getEMFElementBinding_Model(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + modelSettings.setToReference(resultEObject); + } + } + } + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFMultiPropertiesBindingBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFMultiPropertiesBindingBasePropertiesEditionComponent.java index 26fff150f..56733f540 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFMultiPropertiesBindingBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFMultiPropertiesBindingBasePropertiesEditionComponent.java @@ -112,8 +112,8 @@ public class EMFMultiPropertiesBindingBasePropertiesEditionComponent extends Sin }); basePart.addFilterToViews(new EObjectFilter(ViewsPackage.eINSTANCE.getElementEditor())); // Start of user code for additional businessfilters for views - - // End of user code + + // End of user code basePart.addFilterToModel(new ViewerFilter() { @@ -131,8 +131,8 @@ public class EMFMultiPropertiesBindingBasePropertiesEditionComponent extends Sin }); basePart.addFilterToModel(new EObjectFilter(EcorePackage.eINSTANCE.getEStructuralFeature())); // Start of user code for additional businessfilters for model - - // End of user code + + // End of user code } // init values for referenced views diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFPropertyBindingBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFPropertyBindingBasePropertiesEditionComponent.java index 7899198a7..45d0b3b0a 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFPropertyBindingBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/EMFPropertyBindingBasePropertiesEditionComponent.java @@ -30,10 +30,14 @@ import org.eclipse.emf.eef.mapping.parts.EMFPropertyBindingPropertiesEditionPart import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; import org.eclipse.emf.eef.runtime.impl.filters.EObjectFilter; import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.utils.EEFConverterUtil; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings; @@ -117,8 +121,8 @@ public class EMFPropertyBindingBasePropertiesEditionComponent extends SinglePart }); basePart.addFilterToViews(new EObjectFilter(ViewsPackage.eINSTANCE.getElementEditor())); // Start of user code for additional businessfilters for views - - // End of user code + + // End of user code basePart.addFilterToModel(new ViewerFilter() { @@ -133,8 +137,8 @@ public class EMFPropertyBindingBasePropertiesEditionComponent extends SinglePart }); // Start of user code for additional businessfilters for model - - // End of user code + + // End of user code } // init values for referenced views @@ -169,7 +173,22 @@ public class EMFPropertyBindingBasePropertiesEditionComponent extends SinglePart } } if (MappingViewsRepository.EMFPropertyBinding.Binding.model == event.getAffectedEditor()) { - modelSettings.setToReference((EStructuralFeature)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + modelSettings.setToReference((EStructuralFeature)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, MappingPackage.eINSTANCE.getEMFPropertyBinding_Model(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + modelSettings.setToReference(resultEObject); + } + } + } + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/ElementBindingReferenceBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/ElementBindingReferenceBasePropertiesEditionComponent.java index 6b2e997a1..f84c83d8d 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/ElementBindingReferenceBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/ElementBindingReferenceBasePropertiesEditionComponent.java @@ -26,7 +26,12 @@ import org.eclipse.emf.eef.mapping.parts.ElementBindingReferencePropertiesEditio import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; +import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.jface.viewers.Viewer; @@ -93,8 +98,8 @@ public class ElementBindingReferenceBasePropertiesEditionComponent extends Singl }); // Start of user code for additional businessfilters for binding - - // End of user code + + // End of user code } // init values for referenced views @@ -115,7 +120,22 @@ public class ElementBindingReferenceBasePropertiesEditionComponent extends Singl public void updateSemanticModel(final IPropertiesEditionEvent event) { ElementBindingReference elementBindingReference = (ElementBindingReference)semanticObject; if (MappingViewsRepository.ElementBindingReference.Reference.binding == event.getAffectedEditor()) { - bindingSettings.setToReference((AbstractElementBinding)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + bindingSettings.setToReference((AbstractElementBinding)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, MappingPackage.eINSTANCE.getElementBindingReference_Binding(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + bindingSettings.setToReference(resultEObject); + } + } + } + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/OnlyReferenceTypeFilterBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/OnlyReferenceTypeFilterBasePropertiesEditionComponent.java index 26f607872..6c64b5601 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/OnlyReferenceTypeFilterBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/OnlyReferenceTypeFilterBasePropertiesEditionComponent.java @@ -18,6 +18,7 @@ import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.WrappedException; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.util.Diagnostician; import org.eclipse.emf.ecore.util.EcoreUtil; @@ -27,7 +28,11 @@ import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.mapping.parts.OnlyReferenceTypeFilterPropertiesEditionPart; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; +import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.jface.viewers.Viewer; @@ -95,8 +100,8 @@ public class OnlyReferenceTypeFilterBasePropertiesEditionComponent extends Singl }); // Start of user code for additional businessfilters for referencedFeature - - // End of user code + + // End of user code } // init values for referenced views @@ -121,7 +126,20 @@ public class OnlyReferenceTypeFilterBasePropertiesEditionComponent extends Singl public void updateSemanticModel(final IPropertiesEditionEvent event) { OnlyReferenceTypeFilter onlyReferenceTypeFilter = (OnlyReferenceTypeFilter)semanticObject; if (MappingViewsRepository.OnlyReferenceTypeFilter.ReferencedFeature.referencedFeature_ == event.getAffectedEditor()) { - referenceSettings.setToReference((EReference)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + referenceSettings.setToReference((EReference)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReference eObject = EcoreFactory.eINSTANCE.createEReference(); + EObjectPropertiesEditionContext context = new EObjectPropertiesEditionContext(editingContext, this, eObject, editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(eObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy != null) { + policy.execute(); + } + } + referenceSettings.setToReference(eObject); + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/SimpleModelNavigationPropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/SimpleModelNavigationPropertiesEditionComponent.java index 11f4e5ca3..5fbc3b5ee 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/SimpleModelNavigationPropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/SimpleModelNavigationPropertiesEditionComponent.java @@ -20,6 +20,7 @@ import org.eclipse.emf.common.util.WrappedException; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcoreFactory; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.util.Diagnostician; @@ -30,8 +31,14 @@ import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.mapping.parts.SimpleModelNavigationPropertiesEditionPart; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EObjectPropertiesEditionContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; +import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.utils.EEFConverterUtil; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.jface.viewers.Viewer; @@ -111,8 +118,8 @@ public class SimpleModelNavigationPropertiesEditionComponent extends SinglePartP }); // Start of user code for additional businessfilters for feature - - // End of user code + + // End of user code basePart.addFilterToDiscriminatorType(new ViewerFilter() { @@ -127,8 +134,8 @@ public class SimpleModelNavigationPropertiesEditionComponent extends SinglePartP }); // Start of user code for additional businessfilters for discriminatorType - - // End of user code + + // End of user code } // init values for referenced views @@ -154,10 +161,38 @@ public class SimpleModelNavigationPropertiesEditionComponent extends SinglePartP simpleModelNavigation.setIndex((EEFConverterUtil.createIntFromString(EcorePackage.eINSTANCE.getEInt(), (String)event.getNewValue()))); } if (MappingViewsRepository.SimpleModelNavigation.Properties.feature == event.getAffectedEditor()) { - featureSettings.setToReference((EReference)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + featureSettings.setToReference((EReference)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReference eObject = EcoreFactory.eINSTANCE.createEReference(); + EObjectPropertiesEditionContext context = new EObjectPropertiesEditionContext(editingContext, this, eObject, editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(eObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy != null) { + policy.execute(); + } + } + featureSettings.setToReference(eObject); + } } if (MappingViewsRepository.SimpleModelNavigation.Properties.discriminatorType == event.getAffectedEditor()) { - discriminatorTypeSettings.setToReference((EClassifier)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + discriminatorTypeSettings.setToReference((EClassifier)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, NavigationPackage.eINSTANCE.getSimpleModelNavigation_DiscriminatorType(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + discriminatorTypeSettings.setToReference(resultEObject); + } + } + } + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardElementBindingBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardElementBindingBasePropertiesEditionComponent.java index 83642d264..ba688bea6 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardElementBindingBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardElementBindingBasePropertiesEditionComponent.java @@ -30,10 +30,14 @@ import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.mapping.parts.StandardElementBindingPropertiesEditionPart; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; import org.eclipse.emf.eef.runtime.impl.filters.EObjectFilter; import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.utils.EEFConverterUtil; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings; @@ -117,8 +121,8 @@ public class StandardElementBindingBasePropertiesEditionComponent extends Single }); basePart.addFilterToViews(new EObjectFilter(ViewsPackage.eINSTANCE.getView())); // Start of user code for additional businessfilters for views - - // End of user code + + // End of user code basePart.addFilterToModel(new ViewerFilter() { @@ -133,8 +137,8 @@ public class StandardElementBindingBasePropertiesEditionComponent extends Single }); // Start of user code for additional businessfilters for model - - // End of user code + + // End of user code } // init values for referenced views @@ -169,7 +173,22 @@ public class StandardElementBindingBasePropertiesEditionComponent extends Single } } if (MappingViewsRepository.StandardElementBinding.Binding.model == event.getAffectedEditor()) { - modelSettings.setToReference((ModelElement)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + modelSettings.setToReference((ModelElement)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, MappingPackage.eINSTANCE.getStandardElementBinding_Model(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + modelSettings.setToReference(resultEObject); + } + } + } + } } } diff --git a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardPropertyBindingBasePropertiesEditionComponent.java b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardPropertyBindingBasePropertiesEditionComponent.java index 1b8839029..f66ce2618 100644 --- a/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardPropertyBindingBasePropertiesEditionComponent.java +++ b/plugins/org.eclipse.emf.eef.mapping.edit/src-gen/org/eclipse/emf/eef/mapping/components/StandardPropertyBindingBasePropertiesEditionComponent.java @@ -30,10 +30,14 @@ import org.eclipse.emf.eef.mapping.parts.MappingViewsRepository; import org.eclipse.emf.eef.mapping.parts.StandardPropertyBindingPropertiesEditionPart; import org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent; import org.eclipse.emf.eef.runtime.context.PropertiesEditingContext; +import org.eclipse.emf.eef.runtime.context.impl.EReferencePropertiesEditionContext; import org.eclipse.emf.eef.runtime.impl.components.SinglePartPropertiesEditingComponent; import org.eclipse.emf.eef.runtime.impl.filters.EObjectFilter; import org.eclipse.emf.eef.runtime.impl.notify.PropertiesEditionEvent; import org.eclipse.emf.eef.runtime.impl.utils.EEFConverterUtil; +import org.eclipse.emf.eef.runtime.policies.PropertiesEditingPolicy; +import org.eclipse.emf.eef.runtime.policies.impl.CreateEditingPolicy; +import org.eclipse.emf.eef.runtime.providers.PropertiesEditingProvider; import org.eclipse.emf.eef.runtime.ui.widgets.ButtonsModeEnum; import org.eclipse.emf.eef.runtime.ui.widgets.eobjflatcombo.EObjectFlatComboSettings; import org.eclipse.emf.eef.runtime.ui.widgets.referencestable.ReferencesTableSettings; @@ -117,8 +121,8 @@ public class StandardPropertyBindingBasePropertiesEditionComponent extends Singl }); basePart.addFilterToViews(new EObjectFilter(ViewsPackage.eINSTANCE.getElementEditor())); // Start of user code for additional businessfilters for views - - // End of user code + + // End of user code basePart.addFilterToModel(new ViewerFilter() { @@ -133,8 +137,8 @@ public class StandardPropertyBindingBasePropertiesEditionComponent extends Singl }); // Start of user code for additional businessfilters for model - - // End of user code + + // End of user code } // init values for referenced views @@ -169,7 +173,22 @@ public class StandardPropertyBindingBasePropertiesEditionComponent extends Singl } } if (MappingViewsRepository.StandardPropertyBinding.Binding.model == event.getAffectedEditor()) { - modelSettings.setToReference((ModelProperty)event.getNewValue()); + if (event.getKind() == PropertiesEditionEvent.SET) { + modelSettings.setToReference((ModelProperty)event.getNewValue()); + } else if (event.getKind() == PropertiesEditionEvent.ADD) { + EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, semanticObject, MappingPackage.eINSTANCE.getStandardPropertyBinding_Model(), editingContext.getAdapterFactory()); + PropertiesEditingProvider provider = (PropertiesEditingProvider)editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class); + if (provider != null) { + PropertiesEditingPolicy policy = provider.getPolicy(context); + if (policy instanceof CreateEditingPolicy) { + policy.execute(); + EObject resultEObject = (EObject) ((CreateEditingPolicy) policy).getResult(); + if (resultEObject != null) { + modelSettings.setToReference(resultEObject); + } + } + } + } } } |