Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2016-08-18 15:59:29 +0000
committerPierre-Charles David2016-08-22 15:06:36 +0000
commit700952c95dc0cd8c8682a43a23978aaab70c59ab (patch)
tree3803b3ff05a9f0db54345bce3eeb1c12a44a7e73
parent10f13b75448bb9c81d401fff90013e9299eed335 (diff)
downloadorg.eclipse.sirius-700952c95dc0cd8c8682a43a23978aaab70c59ab.tar.gz
org.eclipse.sirius-700952c95dc0cd8c8682a43a23978aaab70c59ab.tar.xz
org.eclipse.sirius-700952c95dc0cd8c8682a43a23978aaab70c59ab.zip
[495129] Add default adapter factories support to EditingDomainServices
Bug: 495129 Change-Id: I0197e3551b1e4a6be9745c31abeda61777ce48ef Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.ext.emf.edit/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.sirius.ext.emf.edit/src/org/eclipse/sirius/ext/emf/edit/EditingDomainServices.java16
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/common/AllCommonStandaloneTests.java2
-rw-r--r--plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/EditingDomainServicesTest.java32
5 files changed, 53 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.ext.emf.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.ext.emf.edit/META-INF/MANIFEST.MF
index f308efbc6f..3ba4a07c28 100644
--- a/plugins/org.eclipse.sirius.ext.emf.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.ext.emf.edit/META-INF/MANIFEST.MF
@@ -9,4 +9,5 @@ Bundle-Localization: plugin
Export-Package: org.eclipse.sirius.ext.emf.edit;version="4.0.0"
Require-Bundle: org.eclipse.emf.common;bundle-version="2.8.0",
org.eclipse.emf.ecore;bundle-version="2.8.0",
- org.eclipse.emf.edit;bundle-version="2.8.0"
+ org.eclipse.emf.edit;bundle-version="2.8.0",
+ org.eclipse.emf.ecore.edit;bundle-version="2.8.0"
diff --git a/plugins/org.eclipse.sirius.ext.emf.edit/src/org/eclipse/sirius/ext/emf/edit/EditingDomainServices.java b/plugins/org.eclipse.sirius.ext.emf.edit/src/org/eclipse/sirius/ext/emf/edit/EditingDomainServices.java
index 5314ad2186..b9d84f4f48 100644
--- a/plugins/org.eclipse.sirius.ext.emf.edit/src/org/eclipse/sirius/ext/emf/edit/EditingDomainServices.java
+++ b/plugins/org.eclipse.sirius.ext.emf.edit/src/org/eclipse/sirius/ext/emf/edit/EditingDomainServices.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.sirius.ext.emf.edit;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -19,6 +20,7 @@ import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.CommandParameter;
import org.eclipse.emf.edit.command.MoveCommand;
@@ -27,6 +29,7 @@ import org.eclipse.emf.edit.command.ReplaceCommand;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IItemColorProvider;
import org.eclipse.emf.edit.provider.IItemFontProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -38,6 +41,8 @@ import org.eclipse.emf.edit.provider.ITableItemFontProvider;
import org.eclipse.emf.edit.provider.ITableItemLabelProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
/**
* Provides access to common {@link EditingDomain} and
@@ -154,6 +159,15 @@ import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
*/
// CHECKSTYLE:OFF
public class EditingDomainServices {
+ private AdapterFactory defaultAdapterFactory;
+
+ public EditingDomainServices() {
+ List<AdapterFactory> factories = new ArrayList<AdapterFactory>();
+ factories.add(new ResourceItemProviderAdapterFactory());
+ factories.add(new EcoreItemProviderAdapterFactory());
+ factories.add(new ReflectiveItemProviderAdapterFactory());
+ defaultAdapterFactory = new ComposedAdapterFactory(factories);
+ }
public EditingDomain getEditingDomain(EObject self) {
return AdapterFactoryEditingDomain.getEditingDomainFor(self);
@@ -174,7 +188,7 @@ public class EditingDomainServices {
if (domain instanceof AdapterFactoryEditingDomain) {
return ((AdapterFactoryEditingDomain) domain).getAdapterFactory();
} else {
- return null;
+ return defaultAdapterFactory;
}
}
diff --git a/plugins/org.eclipse.sirius.tests.junit/META-INF/MANIFEST.MF b/plugins/org.eclipse.sirius.tests.junit/META-INF/MANIFEST.MF
index 894a4d7b51..63506c1951 100644
--- a/plugins/org.eclipse.sirius.tests.junit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.sirius.tests.junit/META-INF/MANIFEST.MF
@@ -74,7 +74,8 @@ Require-Bundle: org.eclipse.sirius.tests.sample.benchmark,
org.eclipse.sirius.common.acceleo.aql;bundle-version="3.1.0",
org.eclipse.sirius.common.acceleo.aql.ide;bundle-version="3.1.0",
org.eclipse.ui.navigator;bundle-version="3.5.200",
- org.eclipse.sirius.diagram.formatdata;bundle-version="4.1.0"
+ org.eclipse.sirius.diagram.formatdata;bundle-version="4.1.0",
+ org.eclipse.sirius.ext.emf.edit;bundle-version="4.1.0"
Bundle-Activator: org.eclipse.sirius.tests.SiriusTestsPlugin
Eclipse-LazyStart: true
Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/common/AllCommonStandaloneTests.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/common/AllCommonStandaloneTests.java
index a13bb681d7..cc725963ae 100644
--- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/common/AllCommonStandaloneTests.java
+++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/suite/common/AllCommonStandaloneTests.java
@@ -29,6 +29,7 @@ import org.eclipse.sirius.tests.unit.api.vsm.interpreted.expression.variables.Si
import org.eclipse.sirius.tests.unit.common.CartesianProductTestCase;
import org.eclipse.sirius.tests.unit.common.EcoreIntrinsicExtenderTest;
import org.eclipse.sirius.tests.unit.common.EditingDomainFactoryServiceTests;
+import org.eclipse.sirius.tests.unit.common.EditingDomainServicesTest;
import org.eclipse.sirius.tests.unit.common.FileUtilTest;
import org.eclipse.sirius.tests.unit.common.LabelProviderProviderServiceTests;
import org.eclipse.sirius.tests.unit.common.SessionLabelTest;
@@ -57,6 +58,7 @@ public class AllCommonStandaloneTests extends TestCase {
final TestSuite suite = new TestSuite("Common Standalone Tests");
suite.addTest(new JUnit4TestAdapter(EditingDomainFactoryServiceTests.class));
suite.addTest(new JUnit4TestAdapter(LabelProviderProviderServiceTests.class));
+ suite.addTest(new JUnit4TestAdapter(EditingDomainServicesTest.class));
suite.addTestSuite(SetIntersectionTest.class);
suite.addTestSuite(GSetIntersectionTest.class);
suite.addTestSuite(SiriusVariablesTest.class);
diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/EditingDomainServicesTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/EditingDomainServicesTest.java
new file mode 100644
index 0000000000..9440de446b
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/common/EditingDomainServicesTest.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.unit.common;
+
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.sirius.ext.emf.edit.EditingDomainServices;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests for the EditingDomainServices service class.
+ *
+ * @author pcdavid
+ */
+public class EditingDomainServicesTest {
+ @Test
+ public void can_find_ecore_label_providers() {
+ EditingDomainServices svc = new EditingDomainServices();
+ EDataType eStringType = EcorePackage.Literals.ESTRING;
+ String text = svc.getLabelProviderText(eStringType);
+ Assert.assertEquals("EString [java.lang.String]", text);
+ }
+}

Back to the top