diff options
| author | Pierre-Charles David | 2016-08-18 15:59:29 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-08-22 15:06:36 +0000 |
| commit | 700952c95dc0cd8c8682a43a23978aaab70c59ab (patch) | |
| tree | 3803b3ff05a9f0db54345bce3eeb1c12a44a7e73 | |
| parent | 10f13b75448bb9c81d401fff90013e9299eed335 (diff) | |
| download | org.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>
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); + } +} |
