Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2016-05-04 07:38:59 +0000
committerPierre-Charles David2016-05-04 08:09:00 +0000
commitb66f2dabc0c2744941bb46f8e9eaa2a67370f166 (patch)
tree01fbd45b6dd0e18e708ae59305692a3881392be6
parent95792864a830b332a1e5751d9c62db3cb8d9e11c (diff)
downloadorg.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.java16
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;
}

Back to the top