Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-10-26 12:01:04 +0000
committercletavernie2012-10-26 12:01:04 +0000
commit4b5547218d558df2971afbe788818adc9d98de48 (patch)
treeddaec9e5525a90fa5ac9d4a106f0003cb85efce3 /plugins/infra
parent45e3a9d71f25c51bc1c8a65c79ae24921f8b3fa1 (diff)
downloadorg.eclipse.papyrus-4b5547218d558df2971afbe788818adc9d98de48.tar.gz
org.eclipse.papyrus-4b5547218d558df2971afbe788818adc9d98de48.tar.xz
org.eclipse.papyrus-4b5547218d558df2971afbe788818adc9d98de48.zip
392438: [Core Services] Papyrus should provide a LabelProvider service
https://bugs.eclipse.org/bugs/show_bug.cgi?id=392438 LabelProviderService is now partially used.
Diffstat (limited to 'plugins/infra')
-rw-r--r--plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/utils/AbstractServiceUtils.java34
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/META-INF/MANIFEST.MF5
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/plugin.xml7
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFFilteredLabelProvider.java53
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFLabelProvider.java3
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/MoDiscoContentProvider.java26
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/utils/ServiceUtilsForEObject.java45
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/AbstractStyleHandler.java5
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/GMFToCSSConverter.java5
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF4
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.properties6
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml7
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramFilteredLabelProvider.java54
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramLabelProvider.java65
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/src/org/eclipse/papyrus/infra/services/controlmode/action/CollaborativeActionsFactory.java123
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF3
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml14
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditor.java38
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditorHelper.java9
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/FilteredTableLabelProvider.java37
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/TableLabelProvider.java85
-rw-r--r--plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/providers/ExtensibleLabelProvider.java11
23 files changed, 435 insertions, 207 deletions
diff --git a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/utils/AbstractServiceUtils.java b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/utils/AbstractServiceUtils.java
index 43cfbe47c22..b9253696df2 100644
--- a/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/utils/AbstractServiceUtils.java
+++ b/plugins/infra/core/org.eclipse.papyrus.infra.core/src/org/eclipse/papyrus/infra/core/utils/AbstractServiceUtils.java
@@ -118,4 +118,38 @@ public abstract class AbstractServiceUtils<T> {
public IEditorPart getNestedActiveIEditorPart(T from) throws ServiceException {
return getISashWindowsContainer(from).getActiveEditor();
}
+
+ /**
+ * Returns an implementation of the requested service, from the specified context
+ *
+ * @param service
+ * The service for which an implementation is requested
+ * @param from
+ * The context from which the service should be retrieved
+ * @return
+ * The implementation of the requested service
+ * @throws ServiceException
+ * If an error occurs (e.g. cannot find the ServicesRegistry or the Service)
+ *
+ */
+ public <S> S getService(Class<S> service, T from) throws ServiceException {
+ return getServiceRegistry(from).getService(service);
+ }
+
+ /**
+ * Returns an implementation of the requested service, from the specified context
+ *
+ * @param service
+ * The service for which an implementation is requested
+ * @param from
+ * The context from which the service should be retrieved
+ * @return
+ * The implementation of the requested service
+ * @throws ServiceException
+ * If an error occurs (e.g. cannot find the ServicesRegistry or the Service)
+ *
+ */
+ public Object getService(Object service, T from) throws ServiceException {
+ return getServiceRegistry(from).getService(service);
+ }
}
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/META-INF/MANIFEST.MF b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/META-INF/MANIFEST.MF
index e3edefa8946..e41d2e0ced8 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/META-INF/MANIFEST.MF
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/META-INF/MANIFEST.MF
@@ -10,7 +10,6 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.core.databinding.property;bundle-version="1.4.0",
org.eclipse.emf.databinding;bundle-version="1.2.0",
org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0",
- org.eclipse.gmf.runtime.notation;bundle-version="1.5.0",
org.eclipse.emf.facet.infra.facet;bundle-version="0.2.0",
org.eclipse.emf.facet.infra.browser.custom;bundle-version="0.2.0",
org.eclipse.emf.facet.infra.facet.core;bundle-version="0.2.0",
@@ -24,7 +23,9 @@ Require-Bundle: org.eclipse.ui,
com.ibm.icu;bundle-version="4.4.2",
org.eclipse.papyrus.infra.core;bundle-version="0.10.0",
org.eclipse.papyrus.infra.core.sasheditor;bundle-version="0.10.0",
- org.eclipse.papyrus.infra.core.sasheditor.di;bundle-version="0.10.0"
+ org.eclipse.papyrus.infra.core.sasheditor.di;bundle-version="0.10.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="0.10.0",
+ org.eclipse.gmf.runtime.notation;bundle-version="1.5.0"
Export-Package: org.eclipse.papyrus.infra.emf,
org.eclipse.papyrus.infra.emf.commands,
org.eclipse.papyrus.infra.emf.databinding,
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/plugin.xml b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/plugin.xml
index 58d9564d531..337ffc14cee 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/plugin.xml
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/plugin.xml
@@ -14,5 +14,12 @@
</dependsOn>
</service>
</extension>
+ <extension
+ point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
+ <labelProvider
+ priority="100"
+ provider="org.eclipse.papyrus.infra.emf.providers.EMFFilteredLabelProvider">
+ </labelProvider>
+ </extension>
</plugin>
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFFilteredLabelProvider.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFFilteredLabelProvider.java
new file mode 100644
index 00000000000..c65b67a7b70
--- /dev/null
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFFilteredLabelProvider.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.emf.providers;
+
+import java.util.Iterator;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.widgets.providers.IFilteredLabelProvider;
+
+/**
+ * A LabelProvider which only accepts EMF Objects (EObject, or objects which can be adapted to EObjects)
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class EMFFilteredLabelProvider extends EMFLabelProvider implements IFilteredLabelProvider {
+
+ public boolean accept(IStructuredSelection selection) {
+ if(selection.isEmpty()) {
+ return false;
+ }
+
+ Iterator<?> iterator = selection.iterator();
+ while(iterator.hasNext()) {
+ Object element = iterator.next();
+ if(!accept(element)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public boolean accept(Object element) {
+ if(element instanceof IStructuredSelection) {
+ return accept((IStructuredSelection)element);
+ }
+
+ //The element is an EObject or can be adapted to an EObject
+ return EMFHelper.getEObject(element) != null;
+ }
+
+}
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFLabelProvider.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFLabelProvider.java
index 58dc70e8afd..c3f8d98febc 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFLabelProvider.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/EMFLabelProvider.java
@@ -26,6 +26,7 @@ import org.eclipse.papyrus.infra.emf.Activator;
import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
import org.eclipse.papyrus.infra.widgets.providers.IDetailLabelProvider;
import org.eclipse.swt.graphics.Image;
+
/**
* This class handles labels for EMF Objects
* The class can handle the following cases :
@@ -42,7 +43,7 @@ public class EMFLabelProvider extends CustomizableModelLabelProvider implements
* Creates a new EMFObjectLabelProvider.
*/
public EMFLabelProvider() {
- super(Activator.getDefault().getCustomizationManager());
+ super(Activator.getDefault().getCustomizationManager()); //Note: CustomizableModelLabelProvider doesn't use the CustomizationManager. It relies on the content provider's CustomizationManager
baseEMFLabelProvider = new StandardEMFLabelProvider();
}
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/MoDiscoContentProvider.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/MoDiscoContentProvider.java
index 1b8c917e673..b22afa83745 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/MoDiscoContentProvider.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/providers/MoDiscoContentProvider.java
@@ -12,12 +12,10 @@ package org.eclipse.papyrus.infra.emf.providers;
import java.util.ArrayList;
import java.util.Iterator;
-import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.facet.infra.browser.uicore.CustomizableModelContentProvider;
-import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.infra.core.resource.AbstractBaseModel;
import org.eclipse.papyrus.infra.core.resource.IModel;
import org.eclipse.papyrus.infra.core.resource.ModelSet;
@@ -83,30 +81,6 @@ public class MoDiscoContentProvider extends CustomizableModelContentProvider {
}
/**
- * @param owner
- * the owner of the diagrams
- * @return the list of diagrams contained by the given owner
- */
- private List<Diagram> findAllExistingDiagrams(EObject owner) {
- ArrayList<Diagram> diagrams = new ArrayList<Diagram>();
-
- // Walk on page (Diagram) references
- for(Object page : pageMngr.allPages()) {
- if(!(page instanceof Diagram)) {
- continue;
- }
- // We have a GMF Diagram
- Diagram diagram = (Diagram)page;
- if(owner.equals(diagram.getElement())) {
- diagrams.add(diagram);
- }
-
- }
-
- return diagrams;
- }
-
- /**
* Return the initial values from the input.
* Input should be of type {@link UmlModel}.
*
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/utils/ServiceUtilsForEObject.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/utils/ServiceUtilsForEObject.java
new file mode 100644
index 00000000000..32e3b45d222
--- /dev/null
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/utils/ServiceUtilsForEObject.java
@@ -0,0 +1,45 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.emf.utils;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.AbstractServiceUtils;
+
+/**
+ * A ServiceUtils instance for manipulating Papyrus services on an EObject
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class ServiceUtilsForEObject extends AbstractServiceUtils<EObject> {
+
+ private static ServiceUtilsForEObject instance = new ServiceUtilsForEObject();
+
+ public static ServiceUtilsForEObject getInstance() {
+ return instance;
+ }
+
+ private ServiceUtilsForEObject() {
+ //Singleton
+ }
+
+ @Override
+ public ServicesRegistry getServiceRegistry(EObject from) throws ServiceException {
+ if(from == null) {
+ throw new ServiceException("The selected EObject must not be null");
+ }
+
+ return ServiceUtilsForResource.getInstance().getServiceRegistry(from.eResource());
+ }
+}
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/AbstractStyleHandler.java b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/AbstractStyleHandler.java
index 89a04aeb221..2e0d58204e0 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/AbstractStyleHandler.java
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/AbstractStyleHandler.java
@@ -58,6 +58,7 @@ import org.eclipse.papyrus.infra.gmfdiag.css.configuration.Activator;
import org.eclipse.papyrus.infra.gmfdiag.css.handler.CSSRefreshHandler;
import org.eclipse.papyrus.infra.gmfdiag.css.provider.CustomStyle;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
@@ -307,7 +308,9 @@ public abstract class AbstractStyleHandler extends AbstractHandler {
if(isInteger(feature)) {
if(feature.getName().endsWith("Color")) {
- declaration.setExpression(converter.convert(FigureUtilities.integerToColor((Integer)style.eGet(feature))));
+ Color color = FigureUtilities.integerToColor((Integer)style.eGet(feature));
+ declaration.setExpression(converter.convert(color));
+ color.dispose();
} else {
declaration.setExpression(converter.convert((Integer)style.eGet(feature)));
}
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/GMFToCSSConverter.java b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/GMFToCSSConverter.java
index fdacd0d7190..f66a8fd7892 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/GMFToCSSConverter.java
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.configuration/src/org/eclipse/papyrus/infra/gmfdiag/css/configuration/handler/GMFToCSSConverter.java
@@ -50,7 +50,10 @@ public class GMFToCSSConverter {
}
private HexColor getColor(int color) {
- return getColor(FigureUtilities.integerToColor(color));
+ Color swtColor = FigureUtilities.integerToColor(color);
+ HexColor result = getColor(swtColor);
+ swtColor.dispose();
+ return result;
}
private String twoDigitsHexString(int color) {
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
index 3ff5b8229fc..f55b90f7403 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
@@ -31,7 +31,9 @@ Require-Bundle: org.eclipse.emf.edit.ui;bundle-version="2.5.0",
org.eclipse.papyrus.infra.core.log;bundle-version="0.10.0",
org.eclipse.papyrus.infra.emf;bundle-version="0.10.0",
org.eclipse.papyrus.infra.widgets;bundle-version="0.10.0",
- org.eclipse.papyrus.uml.tools;bundle-version="0.10.0"
+ org.eclipse.papyrus.uml.tools;bundle-version="0.10.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="0.10.0",
+ org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.1"
Bundle-Vendor: %providerName
Bundle-Version: 0.10.0.qualifier
Bundle-ManifestVersion: 2
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.properties b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.properties
index f72830a71a2..edee8f0bb80 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.properties
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.properties
@@ -8,9 +8,5 @@
# Contributors:
# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
##################################################################################
-pluginName=UML Papyrus GMF Editor (Incubation)
+pluginName=Papyrus GMF Diagrams Support (Incubation)
providerName=Eclipse Modeling Project
-
-
-
-
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
index b2250610fbb..08ebb6b22a6 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
@@ -104,6 +104,13 @@
</dependsOn>
</serviceFactory>
</extension>
+<extension
+ point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
+ <labelProvider
+ priority="40"
+ provider="org.eclipse.papyrus.infra.gmfdiag.common.providers.DiagramFilteredLabelProvider">
+ </labelProvider>
+</extension>
</plugin>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramFilteredLabelProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramFilteredLabelProvider.java
new file mode 100644
index 00000000000..cd18f08304e
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramFilteredLabelProvider.java
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.providers;
+
+import java.util.Iterator;
+
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.widgets.providers.IFilteredLabelProvider;
+
+/**
+ * A FilteredLabelProvider for GMF Diagrams
+ *
+ * @author Camille Letavernier
+ */
+public class DiagramFilteredLabelProvider extends DiagramLabelProvider implements IFilteredLabelProvider {
+
+
+ public boolean accept(IStructuredSelection selection) {
+ if(selection.isEmpty()) {
+ return false;
+ }
+
+ Iterator<?> iterator = selection.iterator();
+ while(iterator.hasNext()) {
+ Object element = iterator.next();
+ if(!accept(element)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ public boolean accept(Object element) {
+ if(element instanceof IStructuredSelection) {
+ return accept((IStructuredSelection)element);
+ }
+
+ //The element is a Diagram or can be adapted to a Diagram
+ return EMFHelper.getEObject(element) instanceof Diagram;
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramLabelProvider.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramLabelProvider.java
new file mode 100644
index 00000000000..8ff4331d960
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/providers/DiagramLabelProvider.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.core.editorsfactory.IPageIconsRegistry;
+import org.eclipse.papyrus.infra.core.editorsfactory.PageIconsRegistry;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.providers.EMFLabelProvider;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * A Label Provider for GMF Diagrams
+ */
+public class DiagramLabelProvider extends EMFLabelProvider {
+
+ @Override
+ protected Image getImage(EObject element) {
+ if(element instanceof Diagram) {
+ IPageIconsRegistry registry = null;
+ try {
+ registry = ServiceUtilsForEObject.getInstance().getService(IPageIconsRegistry.class, element);
+ } catch (ServiceException e) {
+ // nothing to do
+ }
+ if(registry == null) {
+ registry = new PageIconsRegistry();
+ }
+ return registry.getEditorIcon(element);
+ }
+
+ return super.getImage(element);
+ }
+
+ /**
+ *
+ * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+ *
+ * @param element
+ * @return <ul>
+ * <li>if element is a {@link NamedElement}, we return its name</li>
+ * <li>else if element is a {@link Element}, we return its type + a index</li>
+ * <li>else return Messages#EditorLabelProvider_No_name</li>
+ * </ul>
+ */
+ @Override
+ protected String getText(EObject element) {
+ if(element instanceof Diagram) {
+ return ((Diagram)element).getName();
+ }
+
+ return super.getText(element);
+ }
+}
diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/META-INF/MANIFEST.MF b/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/META-INF/MANIFEST.MF
index 739b584c948..c8f51ef934d 100644
--- a/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/META-INF/MANIFEST.MF
+++ b/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/META-INF/MANIFEST.MF
@@ -18,8 +18,7 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.infra.gmfdiag.commands;bundle-version="0.10.0",
org.eclipse.gmf.runtime.notation;bundle-version="1.5.0",
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="0.10.0",
- org.eclipse.papyrus.uml.tools;bundle-version="0.10.0",
- org.eclipse.papyrus.views.modelexplorer;bundle-version="0.10.0"
+ org.eclipse.papyrus.uml.tools;bundle-version="0.10.0"
Export-Package: org.eclipse.papyrus.infra.services.controlmode,
org.eclipse.papyrus.infra.services.controlmode.action,
org.eclipse.papyrus.infra.services.controlmode.commands,
diff --git a/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/src/org/eclipse/papyrus/infra/services/controlmode/action/CollaborativeActionsFactory.java b/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/src/org/eclipse/papyrus/infra/services/controlmode/action/CollaborativeActionsFactory.java
deleted file mode 100644
index c67f3213c29..00000000000
--- a/plugins/infra/services/org.eclipse.papyrus.infra.services.controlmode/src/org/eclipse/papyrus/infra/services/controlmode/action/CollaborativeActionsFactory.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2009 Atos Origin.
- *
- *
- * 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:
- * Emilien Perico (Atos Origin) emilien.perico@atosorigin.com - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.services.controlmode.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
-import org.eclipse.papyrus.views.modelexplorer.factory.IActionHandlerFactory;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.navigator.CommonNavigator;
-
-/**
- * The Class ControlActionFactory for creating a Papyrus control action that override EMF control
- * action
- *
- * @author Emilien Perico
- */
-public class CollaborativeActionsFactory implements IActionHandlerFactory {
-
- protected List<Action> actions = new LinkedList<Action>();
-
- protected PapyrusControlAction controlAction;
-
- protected PapyrusUncontrolAction uncontrolAction;
-
- /**
- * {@inheritDoc}
- */
- public List<Action> createActions(EditingDomain editingDomain) {
- controlAction = new PapyrusControlAction(editingDomain);
- // controlAction.setImageDescriptor(newImage);
- actions.add(controlAction);
-
- uncontrolAction = new PapyrusUncontrolAction(editingDomain);
- actions.add(uncontrolAction);
-
- return actions;
- }
-
- /**
- * {@inheritDoc}
- */
- public List<Action> getActions() {
- return actions;
- }
-
- /**
- * {@inheritDoc}
- */
- public void activate(CommonNavigator activeViewPart) {
- controlAction.setActiveWorkbenchPart(activeViewPart);
-
- ISelectionProvider selectionProvider = null;
- if(activeViewPart.getCommonViewer() instanceof ISelectionProvider) {
- selectionProvider = activeViewPart.getCommonViewer();
- selectionProvider.addSelectionChangedListener(controlAction);
- selectionProvider.addSelectionChangedListener(uncontrolAction);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void deactivate(CommonNavigator activeViewPart) {
- controlAction.setActiveWorkbenchPart(null);
-
- ISelectionProvider selectionProvider = null;
- if(activeViewPart.getCommonViewer() instanceof ISelectionProvider) {
- selectionProvider = activeViewPart.getCommonViewer();
- selectionProvider.removeSelectionChangedListener(controlAction);
- selectionProvider.removeSelectionChangedListener(uncontrolAction);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void fillActionBars(IActionBars actionBars) {
- // actionBars.setGlobalActionHandler(actionId, handler);
- }
-
- /**
- * {@inheritDoc}
- */
- @SuppressWarnings({ "rawtypes", "unchecked" })
- public void update(IStructuredSelection structuredSelection) {
- ArrayList array = new ArrayList();
- Iterator iterator = structuredSelection.iterator();
- while(iterator.hasNext()) {
- Object object = iterator.next();
- EObject eObject = EMFHelper.getEObject(object);
- if(eObject != null) {
- array.add(eObject);
- }
- }
- StructuredSelection st = new StructuredSelection(array);
- controlAction.updateSelection(st);
- controlAction.setEnabled(controlAction.isEnabled());
- uncontrolAction.updateSelection(st);
- uncontrolAction.setEnabled(uncontrolAction.isEnabled());
- }
-
-}
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF
index 3ad5ed7b2bc..34ea9a27b15 100644
--- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/META-INF/MANIFEST.MF
@@ -25,7 +25,8 @@ Require-Bundle: org.eclipse.emf.facet.widgets.nattable.instance,
org.eclipse.emf.facet.util.emf.core;bundle-version="0.2.0",
org.eclipse.papyrus.infra.core.sasheditor;bundle-version="0.10.0",
org.eclipse.papyrus.infra.core.log;bundle-version="0.10.0",
- org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0"
+ org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.0",
+ org.eclipse.papyrus.infra.services.labelprovider;bundle-version="0.10.0"
Export-Package: org.eclipse.papyrus.infra.table.common,
org.eclipse.papyrus.infra.table.common.dialog,
org.eclipse.papyrus.infra.table.common.editor,
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml
index ddd4e788fb0..739a5ed800c 100644
--- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/plugin.xml
@@ -38,5 +38,19 @@
<editorhyperlink
helper="org.eclipse.papyrus.infra.table.common.hyperlink.HyperLinkTableEditorHelper">
</editorhyperlink>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.views.properties.labelprovider">
+ <labelProvider
+ labelProvider="org.eclipse.papyrus.infra.table.common.providers.FilteredTableLabelProvider"
+ priority="45">
+ </labelProvider>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.services.labelprovider.labelProvider">
+ <labelProvider
+ priority="45"
+ provider="org.eclipse.papyrus.infra.table.common.providers.FilteredTableLabelProvider">
+ </labelProvider>
</extension>
</plugin>
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditor.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditor.java
deleted file mode 100644
index 279caf276de..00000000000
--- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditor.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
- *
- *
- * 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:
- * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.table.common.hyperlink;
-
-import org.eclipse.papyrus.infra.hyperlink.object.HyperLinkEditor;
-import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
-import org.eclipse.swt.graphics.Image;
-
-public class HyperLinkTableEditor extends HyperLinkEditor{
-
-
- public Image getImage(Object element) {//TODO remove this method
- if(element instanceof PapyrusTableInstance){
- return getEditorRegistry().getEditorIcon(element);
- }
- return null;
- }
-
- public String getText(Object element) {//TODO remove this method
- if(element instanceof PapyrusTableInstance){
- return ((PapyrusTableInstance)element).getName();
- }
- return null;
- }
-
-
-}
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditorHelper.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditorHelper.java
index fc825ca08b6..2354e342cb8 100644
--- a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditorHelper.java
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/hyperlink/HyperLinkTableEditorHelper.java
@@ -32,16 +32,15 @@ public class HyperLinkTableEditorHelper extends AbstractHyperLinkEditorHelper {
@Override
public HyperLinkEditor getHyperLinkObjectFor(Object object) {
if(object instanceof PapyrusTableInstance) {
- return new HyperLinkTableEditor();
+ return new HyperLinkEditor();
}
return null;
}
@Override
public CreateEAnnotationCommand getAddHyperLinkCommand(TransactionalEditingDomain domain, EModelElement object, HyperLinkObject hyperlinkObject) {
- if(hyperlinkObject instanceof HyperLinkTableEditor) {
- HyperLinkTableEditor hyperLinkDiagram = (HyperLinkTableEditor)hyperlinkObject;
- return new CreateHyperLinkTableCommand(domain, object, hyperLinkDiagram.getTooltipText(), ((PapyrusTableInstance)hyperLinkDiagram.getObject()).getName(), (EModelElement)hyperLinkDiagram.getObject(), hyperLinkDiagram.getIsDefault());
+ if(hyperlinkObject instanceof HyperLinkEditor && hyperlinkObject.getObject() instanceof PapyrusTableInstance) {
+ return new CreateHyperLinkTableCommand(domain, object, hyperlinkObject.getTooltipText(), ((PapyrusTableInstance)hyperlinkObject.getObject()).getName(), (EModelElement)hyperlinkObject.getObject(), hyperlinkObject.getIsDefault());
} else {
return null;
}
@@ -51,7 +50,7 @@ public class HyperLinkTableEditorHelper extends AbstractHyperLinkEditorHelper {
@Override
public HyperLinkEditor getHyperLinkObjectForEAnnotation(EAnnotation eAnnotation) {
if(eAnnotation.getSource().equals(HyperLinkTableConstants.HYPERLINK_TABLE)) {
- HyperLinkTableEditor hyperLinkDiagram = new HyperLinkTableEditor();
+ HyperLinkEditor hyperLinkDiagram = new HyperLinkEditor();
List<EObject> list = eAnnotation.getReferences();
if(list.size() > 0) {
if(eAnnotation.getReferences().get(0).eResource() != null) {
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/FilteredTableLabelProvider.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/FilteredTableLabelProvider.java
new file mode 100644
index 00000000000..b8e0eec2788
--- /dev/null
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/FilteredTableLabelProvider.java
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.table.common.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
+import org.eclipse.papyrus.infra.widgets.providers.IFilteredLabelProvider;
+
+/**
+ * A Filter Label Provider for {@link PapyrusTableInstance}
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class FilteredTableLabelProvider extends TableLabelProvider implements IFilteredLabelProvider {
+
+ /**
+ * Accepts {@link PapyrusTableInstance}
+ */
+ public boolean accept(Object element) {
+ //The element is a PapyrusTableInstance or can be adapted to an PapyrusTableInstance
+ EObject eObject = EMFHelper.getEObject(element);
+
+ return eObject instanceof PapyrusTableInstance;
+ }
+
+}
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/TableLabelProvider.java b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/TableLabelProvider.java
new file mode 100644
index 00000000000..5ae80d192db
--- /dev/null
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.common/src/org/eclipse/papyrus/infra/table/common/providers/TableLabelProvider.java
@@ -0,0 +1,85 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.table.common.providers;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.infra.core.editorsfactory.IPageIconsRegistry;
+import org.eclipse.papyrus.infra.core.editorsfactory.IPageIconsRegistryExtended;
+import org.eclipse.papyrus.infra.core.editorsfactory.PageIconsRegistry;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
+import org.eclipse.papyrus.infra.table.instance.papyrustableinstance.PapyrusTableInstance;
+import org.eclipse.swt.graphics.Image;
+
+/**
+ * A Label Provider for {@link PapyrusTableInstance}
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class TableLabelProvider extends LabelProvider {
+
+ /**
+ * Return the EditorRegistry for nested editor descriptors. Subclass should
+ * implements this method in order to return the registry associated to the
+ * extension point namespace.
+ *
+ * @return the EditorRegistry for nested editor descriptors
+ * FIXME : use a deprecated method
+ */
+ protected IPageIconsRegistry createEditorRegistry(EObject from) {
+ try {
+ return ServiceUtilsForEObject.getInstance().getService(IPageIconsRegistry.class, from);
+ } catch (ServiceException e) {
+ // Not found, return an empty one which return null for each
+ // request.
+ return new PageIconsRegistry();
+ }
+ }
+
+ /**
+ * the icon registry
+ */
+ private IPageIconsRegistry editorRegistry;
+
+
+ protected IPageIconsRegistryExtended getEditorRegistry(EObject from) {
+ if(editorRegistry == null) {
+ editorRegistry = createEditorRegistry(from);
+ }
+ if(!(editorRegistry instanceof IPageIconsRegistryExtended)) {
+ throw new RuntimeException("The editor registry do not implement IPageIconsRegistryExtended");////$NON-NLS-1$
+ }
+ return (IPageIconsRegistryExtended)editorRegistry;
+ }
+
+ @Override
+ public String getText(Object element) {
+ EObject eObject = EMFHelper.getEObject(element);
+ if(eObject instanceof PapyrusTableInstance) {
+ return ((PapyrusTableInstance)eObject).getName();
+ }
+ return super.getText(element);
+ }
+
+
+ @Override
+ public Image getImage(Object element) {
+ EObject eObject = EMFHelper.getEObject(element);
+ if(eObject instanceof PapyrusTableInstance) {
+ return getEditorRegistry(eObject).getEditorIcon(eObject);
+ }
+ return super.getImage(element);
+ }
+}
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/providers/ExtensibleLabelProvider.java b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/providers/ExtensibleLabelProvider.java
index 3627341de77..891055f5efb 100644
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/providers/ExtensibleLabelProvider.java
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/src/org/eclipse/papyrus/infra/widgets/providers/ExtensibleLabelProvider.java
@@ -24,7 +24,15 @@ import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
import org.eclipse.swt.graphics.Image;
-
+/**
+ * An ExtensibleLabelProvider encapsulates a set of LabelProviders. Each LabelProvider handles only a few kind of elements.
+ * The ExtensibleLabelProvider retrieves the most appropriate LabelProvider for each object.
+ *
+ * When more than one LabelProvider match an element, the one with the smaller priority is used.
+ *
+ * @author Camille Letavernier
+ *
+ */
public class ExtensibleLabelProvider implements ILabelProvider, ILabelProviderListener {
private final Set<ILabelProviderListener> listeners;
@@ -79,6 +87,7 @@ public class ExtensibleLabelProvider implements ILabelProvider, ILabelProviderLi
for(List<IFilteredLabelProvider> filteredProviders : providers.values()) {
for(IFilteredLabelProvider provider : filteredProviders) {
if(provider.accept(element)) {
+ System.out.println("Using provider " + provider.getClass().getName());
return provider;
}
}

Back to the top