Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2016-12-03 16:10:18 +0000
committerChristian W. Damus2016-12-03 16:22:22 +0000
commitd166f6032ea983c2f4b639dd6e728d26c7afd712 (patch)
treed41d572de6b9a1a7286e7ab782a09f51a4937e65 /plugins/infra/properties
parent4cc473a354549001b380ac6fb963d16f05ffa953 (diff)
downloadorg.eclipse.papyrus-d166f6032ea983c2f4b639dd6e728d26c7afd712.tar.gz
org.eclipse.papyrus-d166f6032ea983c2f4b639dd6e728d26c7afd712.tar.xz
org.eclipse.papyrus-d166f6032ea983c2f4b639dd6e728d26c7afd712.zip
Bug 508629: [Label Provider Service] Label providers do not notify
Fix gaps in the propagation of label updates from EMF item provider adapters through label-providers that delegate to them and the label-provider service that delegates to those, in turn. Add JUnit tests covering various affected label providers, including a new tests plug-in for the Properties UI in the Infra layer. https://bugs.eclipse.org/bugs/show_bug.cgi?id=508629 (🍒-picked from streams/2.0-maintenance) Change-Id: I2e0301db72064fe6899c4d92252d93d9051943f0
Diffstat (limited to 'plugins/infra/properties')
-rw-r--r--plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/providers/PropertiesHeaderLabelProvider.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/providers/PropertiesHeaderLabelProvider.java b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/providers/PropertiesHeaderLabelProvider.java
index e65df2d93d1..7e0911868f8 100644
--- a/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/providers/PropertiesHeaderLabelProvider.java
+++ b/plugins/infra/properties/org.eclipse.papyrus.infra.properties.ui/src/org/eclipse/papyrus/infra/properties/ui/providers/PropertiesHeaderLabelProvider.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2013 CEA LIST.
+ * Copyright (c) 2013, 2016 CEA LIST, 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
@@ -8,11 +8,14 @@
*
* Contributors:
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ * Christian W. Damus - bug 508629
*****************************************************************************/
package org.eclipse.papyrus.infra.properties.ui.providers;
import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
import org.eclipse.papyrus.infra.services.labelprovider.service.LabelProviderService;
import org.eclipse.papyrus.infra.services.labelprovider.service.impl.LabelProviderServiceImpl;
import org.eclipse.swt.graphics.Image;
@@ -28,6 +31,8 @@ public class PropertiesHeaderLabelProvider extends LabelProvider {
private final ILabelProvider delegate;
+ private final ILabelProviderListener forwardingListener;
+
/**
* The {@link LabelProviderService} Context
*/
@@ -36,6 +41,9 @@ public class PropertiesHeaderLabelProvider extends LabelProvider {
public PropertiesHeaderLabelProvider() {
LabelProviderService labelProviderService = new LabelProviderServiceImpl();
delegate = labelProviderService.getLabelProvider(PROPERTIES_HEADER_CONTEXT);
+
+ forwardingListener = this::forwardLabelChange;
+ delegate.addListener(forwardingListener);
}
@Override
@@ -48,8 +56,13 @@ public class PropertiesHeaderLabelProvider extends LabelProvider {
return delegate.getImage(element);
}
+ private void forwardLabelChange(LabelProviderChangedEvent event) {
+ fireLabelProviderChanged(new LabelProviderChangedEvent(this, event.getElements()));
+ }
+
@Override
public void dispose() {
+ delegate.removeListener(forwardingListener);
delegate.dispose();
}
}

Back to the top