Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'compare/bundles/org.eclipse.papyrus.compare.uml2.edit/src/org/eclipse/papyrus/compare/uml2/edit/internal/decorator/ForwardingItemProviderDecorator.java')
-rw-r--r--compare/bundles/org.eclipse.papyrus.compare.uml2.edit/src/org/eclipse/papyrus/compare/uml2/edit/internal/decorator/ForwardingItemProviderDecorator.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/compare/bundles/org.eclipse.papyrus.compare.uml2.edit/src/org/eclipse/papyrus/compare/uml2/edit/internal/decorator/ForwardingItemProviderDecorator.java b/compare/bundles/org.eclipse.papyrus.compare.uml2.edit/src/org/eclipse/papyrus/compare/uml2/edit/internal/decorator/ForwardingItemProviderDecorator.java
new file mode 100644
index 00000000..bdf4d36e
--- /dev/null
+++ b/compare/bundles/org.eclipse.papyrus.compare.uml2.edit/src/org/eclipse/papyrus/compare/uml2/edit/internal/decorator/ForwardingItemProviderDecorator.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2018 Christian W. Damus and others.
+ * 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:
+ * Christian W. Damus - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.compare.uml2.edit.internal.decorator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.compare.provider.ExtendedItemProviderDecorator;
+import org.eclipse.emf.compare.provider.IItemDescriptionProvider;
+import org.eclipse.emf.compare.provider.IItemStyledLabelProvider;
+import org.eclipse.emf.compare.provider.ISemanticObjectLabelProvider;
+import org.eclipse.emf.compare.provider.utils.ComposedStyledString;
+import org.eclipse.emf.compare.provider.utils.IStyledString.IComposedStyledString;
+import org.eclipse.emf.edit.EMFEditPlugin;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemColorProvider;
+import org.eclipse.emf.edit.provider.IItemFontProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.papyrus.compare.uml2.edit.Activator;
+
+/**
+ * A simple forwarding item-provider decorator that implements all of the optional provider interfaces.
+ */
+public class ForwardingItemProviderDecorator extends ExtendedItemProviderDecorator implements IEditingDomainItemProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource, IItemColorProvider, IItemFontProvider, IItemStyledLabelProvider, IItemDescriptionProvider, ISemanticObjectLabelProvider {
+
+ /**
+ * Initializes me with my adapter factory.
+ *
+ * @param adapterFactory
+ * my adapter factory
+ */
+ public ForwardingItemProviderDecorator(ComposeableAdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ public String getSemanticObjectLabel(Object object) {
+ if (decoratedItemProvider instanceof ISemanticObjectLabelProvider) {
+ return ((ISemanticObjectLabelProvider)decoratedItemProvider).getSemanticObjectLabel(object);
+ }
+
+ return null;
+ }
+
+ public String getDescription(Object object) {
+ if (decoratedItemProvider instanceof IItemDescriptionProvider) {
+ return ((IItemDescriptionProvider)decoratedItemProvider).getDescription(object);
+ }
+
+ return getText(object);
+ }
+
+ public IComposedStyledString getStyledText(Object object) {
+ if (decoratedItemProvider instanceof IItemStyledLabelProvider) {
+ return ((IItemStyledLabelProvider)decoratedItemProvider).getStyledText(object);
+ }
+
+ String text = getText(object);
+ if (text != null) {
+ return new ComposedStyledString(text);
+ }
+
+ return null;
+ }
+
+ protected String getString(String key) {
+ return Activator.getDefault().getResourceLocator().getString(key);
+ }
+
+ protected String getString(String key, boolean translate) {
+ return Activator.getDefault().getResourceLocator().getString(key, translate);
+ }
+
+ protected String getString(String key, Object[] substitutions) {
+ return Activator.getDefault().getResourceLocator().getString(key, substitutions);
+ }
+
+ protected String getString(String key, Object[] substitutions, boolean translate) {
+ return Activator.getDefault().getResourceLocator().getString(key, substitutions, translate);
+ }
+
+ protected Object overlayImage(Object object, Object image) {
+ Object result = image;
+
+ if (AdapterFactoryEditingDomain.isControlled(object)) {
+ List<Object> images = new ArrayList<Object>(2);
+ images.add(image);
+ images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject")); //$NON-NLS-1$
+ result = new ComposedImage(images);
+ }
+
+ return result;
+ }
+
+}

Back to the top