diff options
| author | Pierre-Charles David | 2016-05-04 07:38:59 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-05-04 08:09:00 +0000 |
| commit | b66f2dabc0c2744941bb46f8e9eaa2a67370f166 (patch) | |
| tree | 01fbd45b6dd0e18e708ae59305692a3881392be6 | |
| parent | 95792864a830b332a1e5751d9c62db3cb8d9e11c (diff) | |
| download | org.eclipse.sirius-b66f2dabc0c2744941bb46f8e9eaa2a67370f166.tar.gz org.eclipse.sirius-b66f2dabc0c2744941bb46f8e9eaa2a67370f166.tar.xz org.eclipse.sirius-b66f2dabc0c2744941bb46f8e9eaa2a67370f166.zip | |
[482528] Use a Sirius-session aware IEEFDomainClassTester
Use the Sirius session's ModelAccessor to test for domain classes in
Sirius-provided properties views, but adapt its contract to what
IEEFDomainClassTester expects in the case when no domainClass is
specified.
Bug: 482528
Change-Id: I786c9873725783d476c881fea66c2b7981093651
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
| -rw-r--r-- | incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java index 9c7d081c49..c536c9eaee 100644 --- a/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java +++ b/incubation/org.eclipse.sirius.ui.properties/src/org/eclipse/sirius/ui/properties/internal/tabprovider/SiriusTabDescriptorProvider.java @@ -16,10 +16,13 @@ import java.util.List; import java.util.Set; import org.eclipse.eef.EEFViewDescription; +import org.eclipse.eef.common.api.utils.Util; import org.eclipse.eef.core.api.EEFExpressionUtils; import org.eclipse.eef.core.api.EEFPage; import org.eclipse.eef.core.api.EEFView; import org.eclipse.eef.core.api.EEFViewFactory; +import org.eclipse.eef.core.api.IEEFDomainClassTester; +import org.eclipse.eef.core.internal.EEFDomainClassTester; import org.eclipse.eef.ide.ui.properties.api.EEFTabDescriptor; import org.eclipse.eef.properties.ui.api.IEEFTabDescriptor; import org.eclipse.eef.properties.ui.api.IEEFTabDescriptorProvider; @@ -137,7 +140,18 @@ public class SiriusTabDescriptorProvider implements IEEFTabDescriptorProvider { variableManager.put(EEFExpressionUtils.SELF, input.getSemanticElement()); variableManager.put(EEFExpressionUtils.INPUT, input); TransactionalEditingDomainContextAdapter eca = new TransactionalEditingDomainContextAdapter(session.getTransactionalEditingDomain()); - EEFView eefView = new EEFViewFactory().createEEFView(viewDescription, variableManager, new SiriusInterpreter(session), eca, input); + EEFView eefView = new EEFViewFactory().createEEFView(viewDescription, variableManager, new SiriusInterpreter(session), eca, new IEEFDomainClassTester() { + @Override + public boolean eInstanceOf(EObject eObject, String domainClass) { + /* + * The EEF runtime interprets a blank domainClass as a wildcard, + * and expects eInstance(anything, null) to return 'true', but + * the Sirius ModelAcessor returns 'false' when no domainClass + * is specified. + */ + return Util.isBlank(domainClass) || session.getModelAccessor().eInstanceOf(eObject, domainClass); + } + }, input); return eefView; } |
