Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java')
-rw-r--r--incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
index f33b8d9ce04..f44cd7d2d90 100644
--- a/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
+++ b/incoming/org.eclipse.papyrus.properties.customization/src/org/eclipse/papyrus/properties/customization/modelelement/CustomizationModelElement.java
@@ -15,12 +15,16 @@ import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.papyrus.properties.contexts.ContextsPackage;
+import org.eclipse.papyrus.properties.contexts.DataContextElement;
import org.eclipse.papyrus.properties.contexts.Section;
+import org.eclipse.papyrus.properties.customization.providers.ConstraintDescriptorContentProvider;
import org.eclipse.papyrus.properties.customization.providers.ContextLabelProvider;
+import org.eclipse.papyrus.properties.customization.providers.DataContextElementContentProvider;
import org.eclipse.papyrus.properties.customization.providers.DependencyContentProvider;
import org.eclipse.papyrus.properties.customization.providers.EnvironmentContentProvider;
import org.eclipse.papyrus.properties.customization.providers.PropertyContentProvider;
@@ -29,6 +33,7 @@ import org.eclipse.papyrus.properties.environment.EnvironmentPackage;
import org.eclipse.papyrus.properties.modelelement.AbstractModelElement;
import org.eclipse.papyrus.properties.modelelement.EMFModelElement;
import org.eclipse.papyrus.properties.modelelement.ModelElement;
+import org.eclipse.papyrus.widgets.creation.ReferenceValueFactory;
import org.eclipse.papyrus.widgets.providers.EmptyContentProvider;
import org.eclipse.papyrus.widgets.providers.IStaticContentProvider;
@@ -46,6 +51,9 @@ import org.eclipse.papyrus.widgets.providers.IStaticContentProvider;
*/
public class CustomizationModelElement extends AbstractModelElement {
+ //TODO : Support for ConstraintDescriptor content provider
+ //The provider relies on EMF, which loads the whole model (including XWT files)
+
private EMFModelElement delegate;
private static Map<EClassifier, IStaticContentProvider> providers;
@@ -98,11 +106,27 @@ public class CustomizationModelElement extends AbstractModelElement {
//Sections can only be moved to tabs from non-plugin contexts
boolean editableTabsOnly = delegate.getSource() instanceof Section;
return new TabContentProvider(delegate.getSource(), editableTabsOnly);
+ } else if(classifier == ContextsPackage.eINSTANCE.getConstraintDescriptor()) {
+ return new ConstraintDescriptorContentProvider(delegate.getSource());
+ } else if(isDataContextElement(classifier)) {
+ return new DataContextElementContentProvider((DataContextElement)delegate.getSource());
} else {
return delegate.getContentProvider(propertyPath);
}
}
+ private boolean isDataContextElement(EClassifier classifier) {
+ if(classifier == ContextsPackage.eINSTANCE.getDataContextElement())
+ return true;
+
+ if(classifier instanceof EClass) {
+ EClass eClass = (EClass)classifier;
+ return eClass.getEAllSuperTypes().contains(ContextsPackage.eINSTANCE.getDataContextElement());
+ }
+
+ return false;
+ }
+
@Override
public ILabelProvider getLabelProvider(String propertyPath) {
return new ContextLabelProvider();
@@ -131,6 +155,11 @@ public class CustomizationModelElement extends AbstractModelElement {
}
@Override
+ public ReferenceValueFactory getValueFactory(String propertyPath) {
+ return delegate.getValueFactory(propertyPath);
+ }
+
+ @Override
public boolean forceRefresh(String localPropertyPath) {
return false;
}

Back to the top