Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-01-20 13:33:54 +0000
committercletavernie2012-01-20 13:33:54 +0000
commit4419c6a7b502912ce78e6022eb1c57f6e07b67df (patch)
tree65d49e790d27d2984c1ad0b4db9126c84b9d2d1d /plugins/views/properties
parent0cc12e79115034e5e22892d9d18620e8bab0f0c2 (diff)
downloadorg.eclipse.papyrus-4419c6a7b502912ce78e6022eb1c57f6e07b67df.tar.gz
org.eclipse.papyrus-4419c6a7b502912ce78e6022eb1c57f6e07b67df.tar.xz
org.eclipse.papyrus-4419c6a7b502912ce78e6022eb1c57f6e07b67df.zip
359794: [UML - Tools] Content/Label providers
https://bugs.eclipse.org/bugs/show_bug.cgi?id=359794
Diffstat (limited to 'plugins/views/properties')
-rw-r--r--plugins/views/properties/org.eclipse.papyrus.views.properties/schema/labelprovider.exsd2
-rw-r--r--plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/EMFFilteredLabelProvider.java7
-rw-r--r--plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/IFilteredLabelProvider.java25
-rw-r--r--plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/SelectionLabelProvider.java44
4 files changed, 12 insertions, 66 deletions
diff --git a/plugins/views/properties/org.eclipse.papyrus.views.properties/schema/labelprovider.exsd b/plugins/views/properties/org.eclipse.papyrus.views.properties/schema/labelprovider.exsd
index 41b20e6ac87..4230f16eacf 100644
--- a/plugins/views/properties/org.eclipse.papyrus.views.properties/schema/labelprovider.exsd
+++ b/plugins/views/properties/org.eclipse.papyrus.views.properties/schema/labelprovider.exsd
@@ -55,7 +55,7 @@
</documentation>
<appInfo>
- <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.views.properties.providers.IFilteredLabelProvider"/>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.widgets.providers.IFilteredLabelProvider"/>
</appInfo>
</annotation>
</attribute>
diff --git a/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/EMFFilteredLabelProvider.java b/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/EMFFilteredLabelProvider.java
index 76b7dab5b91..db1e17b400e 100644
--- a/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/EMFFilteredLabelProvider.java
+++ b/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/EMFFilteredLabelProvider.java
@@ -16,6 +16,7 @@ import java.util.Iterator;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.papyrus.infra.emf.providers.EMFLabelProvider;
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)
@@ -41,7 +42,11 @@ public class EMFFilteredLabelProvider extends EMFLabelProvider implements IFilte
return true;
}
- protected boolean accept(Object element) {
+ 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/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/IFilteredLabelProvider.java b/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/IFilteredLabelProvider.java
deleted file mode 100644
index 028c92a2d28..00000000000
--- a/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/IFilteredLabelProvider.java
+++ /dev/null
@@ -1,25 +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:
- * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
- *****************************************************************************/
-package org.eclipse.papyrus.views.properties.providers;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * A LabelProvider which only accepts a specific set of objects
- *
- * @author Camille Letavernier
- */
-public interface IFilteredLabelProvider extends ILabelProvider {
-
- public boolean accept(IStructuredSelection selection);
-}
diff --git a/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/SelectionLabelProvider.java b/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/SelectionLabelProvider.java
index 9f7d0add7b5..7c18f34fd71 100644
--- a/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/SelectionLabelProvider.java
+++ b/plugins/views/properties/org.eclipse.papyrus.views.properties/src/org/eclipse/papyrus/views/properties/providers/SelectionLabelProvider.java
@@ -12,16 +12,13 @@
package org.eclipse.papyrus.views.properties.providers;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.TreeMap;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.infra.widgets.providers.ExtensibleLabelProvider;
+import org.eclipse.papyrus.infra.widgets.providers.IFilteredLabelProvider;
import org.eclipse.papyrus.views.properties.Activator;
-import org.eclipse.swt.graphics.Image;
/**
* A class for providing labels for a selected element.
@@ -31,7 +28,7 @@ import org.eclipse.swt.graphics.Image;
* @author Camille Letavernier
*
*/
-public class SelectionLabelProvider extends LabelProvider {
+public class SelectionLabelProvider extends ExtensibleLabelProvider {
public static final String EXTENSION_ID = "org.eclipse.papyrus.views.properties.labelprovider"; //$NON-NLS-1$
@@ -42,6 +39,7 @@ public class SelectionLabelProvider extends LabelProvider {
protected final TreeMap<Integer, Collection<IFilteredLabelProvider>> labelProviders = new TreeMap<Integer, Collection<IFilteredLabelProvider>>();
public SelectionLabelProvider() {
+ super();
readExtensionPoint();
}
@@ -52,42 +50,10 @@ public class SelectionLabelProvider extends LabelProvider {
try {
final IFilteredLabelProvider provider = (IFilteredLabelProvider)e.createExecutableExtension(LABEL_PROVIDER_PROPERTY);
final int priority = Integer.parseInt(e.getAttribute(PRIORITY_PROPERTY));
- getLabelProviders(priority).add(provider);
+ registerProvider(priority, provider);
} catch (Exception ex) {
Activator.log.error("Cannot load the label provider : " + e.getAttribute(LABEL_PROVIDER_PROPERTY), ex);
}
}
}
-
- protected Collection<IFilteredLabelProvider> getLabelProviders(int priority) {
- if(!labelProviders.containsKey(priority)) {
- labelProviders.put(priority, new LinkedList<IFilteredLabelProvider>());
- }
- return labelProviders.get(priority);
- }
-
- @Override
- public String getText(Object element) {
- return getLabelProvider(element).getText(element);
- }
-
- @Override
- public Image getImage(Object element) {
- return getLabelProvider(element).getImage(element);
- }
-
- protected ILabelProvider getLabelProvider(Object element) {
- if(element instanceof IStructuredSelection) {
- IStructuredSelection selection = (IStructuredSelection)element;
- for(Collection<IFilteredLabelProvider> providers : labelProviders.values()) {
- for(IFilteredLabelProvider labelProvider : providers) {
- if(labelProvider.accept(selection)) {
- return labelProvider;
- }
- }
- }
- }
-
- return new LabelProvider(); //Default
- }
}

Back to the top