Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2022-06-17 16:14:56 +0000
committerEike Stepper2022-06-17 16:14:56 +0000
commitdd5212ff3dd13e7e9f9e4523cbfe8539f037a4b6 (patch)
tree3dfac3242acbc8e1bac0531b53e42cb258242836 /plugins
parentc7b4176a03f511668728fa421a72e254632dfc7b (diff)
downloadcdo-dd5212ff3dd13e7e9f9e4523cbfe8539f037a4b6.tar.gz
cdo-dd5212ff3dd13e7e9f9e4523cbfe8539f037a4b6.tar.xz
cdo-dd5212ff3dd13e7e9f9e4523cbfe8539f037a4b6.zip
[580195] [UI] Add label styling and decoration to CDORemoteTopicsView
https://bugs.eclipse.org/bugs/show_bug.cgi?id=580195
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF36
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/pom.xml2
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDORemoteTopicsView.java65
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOTopicProvider.java3
4 files changed, 83 insertions, 23 deletions
diff --git a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
index f29f2fb977..cd092070b6 100644
--- a/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.cdo.ui;singleton:=true
-Bundle-Version: 4.13.0.qualifier
+Bundle-Version: 4.14.0.qualifier
Bundle-Activator: org.eclipse.emf.cdo.internal.ui.bundle.OM$Activator
Bundle-Vendor: %providerName
Bundle-ClassPath: .
@@ -29,7 +29,7 @@ Require-Bundle: org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)";reso
org.eclipse.emf.ecp.ui.view.swt;bundle-version="[1.5.0,2.0.0)";resolution:=optional;x-installation:=greedy,
org.eclipse.jdt.ui;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
org.eclipse.ui.editors;bundle-version="[3.5.0,4.0.0)";resolution:=optional
-Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
+Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -39,7 +39,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare,
org.eclipse.emf.cdo.lm.ui",
- org.eclipse.emf.cdo.internal.ui.actions;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.actions;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -48,9 +48,9 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.actions.delegates;version="4.13.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.bundle;version="4.13.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.ui.dialogs;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.actions.delegates;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.bundle;version="4.14.0";x-internal:=true,
+ org.eclipse.emf.cdo.internal.ui.dialogs;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -59,7 +59,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.dnd;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.dnd;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -68,7 +68,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.editor;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.editor;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -77,7 +77,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.filters;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.filters;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -86,7 +86,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.handlers;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.handlers;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -95,7 +95,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.history;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.history;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -104,7 +104,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.messages;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.messages;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -113,7 +113,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.perspectives;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.perspectives;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -122,7 +122,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.preferences;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.preferences;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -131,7 +131,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.transfer;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.transfer;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -140,7 +140,7 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.internal.ui.views;version="4.13.0";
+ org.eclipse.emf.cdo.internal.ui.views;version="4.14.0";
x-friends:="org.eclipse.emf.cdo.ui.ide,
org.eclipse.emf.cdo.ui.location,
org.eclipse.emf.cdo.tests.ui,
@@ -149,6 +149,6 @@ Export-Package: org.eclipse.emf.cdo.internal.ui;version="4.13.0";
org.eclipse.emf.cdo.explorer.ui,
org.eclipse.emf.cdo.ui.team,
org.eclipse.emf.cdo.ui.compare",
- org.eclipse.emf.cdo.ui;version="4.13.0",
- org.eclipse.emf.cdo.ui.widgets;version="4.13.0"
+ org.eclipse.emf.cdo.ui;version="4.14.0",
+ org.eclipse.emf.cdo.ui.widgets;version="4.14.0"
Automatic-Module-Name: org.eclipse.emf.cdo.ui
diff --git a/plugins/org.eclipse.emf.cdo.ui/pom.xml b/plugins/org.eclipse.emf.cdo.ui/pom.xml
index 8ddb2cc05a..a267089a56 100644
--- a/plugins/org.eclipse.emf.cdo.ui/pom.xml
+++ b/plugins/org.eclipse.emf.cdo.ui/pom.xml
@@ -25,7 +25,7 @@
<groupId>org.eclipse.emf.cdo</groupId>
<artifactId>org.eclipse.emf.cdo.ui</artifactId>
- <version>4.13.0-SNAPSHOT</version>
+ <version>4.14.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDORemoteTopicsView.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDORemoteTopicsView.java
index 22aeb0a879..80f70ea67a 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDORemoteTopicsView.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/views/CDORemoteTopicsView.java
@@ -46,7 +46,9 @@ import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.ItemProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.DelegatingStyledCellLabelProvider;
+import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
@@ -54,12 +56,17 @@ import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
+import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StyledString;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.swt.SWT;
@@ -286,8 +293,14 @@ public class CDORemoteTopicsView extends ViewPart implements ISelectionProvider,
protected Control createUI(Composite parent)
{
- AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
- labelProvider.setFireLabelUpdateNotifications(true);
+ ILabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
+ ((AdapterFactoryLabelProvider)labelProvider).setFireLabelUpdateNotifications(true);
+
+ ILabelDecorator decorator = createLabelDecorator();
+ if (decorator != null)
+ {
+ labelProvider = new DelegatingStyledCellLabelProvider(new DecoratingStyledLabelProvider(labelProvider, decorator));
+ }
viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
viewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
@@ -318,6 +331,11 @@ public class CDORemoteTopicsView extends ViewPart implements ISelectionProvider,
return viewer.getControl();
}
+ protected ILabelDecorator createLabelDecorator()
+ {
+ return PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
+ }
+
protected void hookDoubleClick()
{
viewer.addDoubleClickListener(e -> doubleClicked(((ITreeSelection)viewer.getSelection()).getFirstElement()));
@@ -615,7 +633,7 @@ public class CDORemoteTopicsView extends ViewPart implements ISelectionProvider,
/**
* @author Eike Stepper
*/
- private class Item extends ItemProvider
+ private abstract class Item extends ItemProvider implements IAdaptable
{
protected Item()
{
@@ -677,6 +695,18 @@ public class CDORemoteTopicsView extends ViewPart implements ISelectionProvider,
}
@Override
+ public <T> T getAdapter(Class<T> type)
+ {
+ T adapter = AdapterUtil.adapt(this, type);
+ if (adapter != null)
+ {
+ return adapter;
+ }
+
+ return topic.getAdapter(type);
+ }
+
+ @Override
public void notifyEvent(IEvent event)
{
if (event instanceof ILifecycleEvent)
@@ -760,5 +790,34 @@ public class CDORemoteTopicsView extends ViewPart implements ISelectionProvider,
{
return remoteSession;
}
+
+ @Override
+ public <T> T getAdapter(Class<T> type)
+ {
+ return AdapterUtil.adapt(this, type);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class DecoratingStyledLabelProvider extends DecoratingLabelProvider implements IStyledLabelProvider
+ {
+ public DecoratingStyledLabelProvider(ILabelProvider provider, ILabelDecorator decorator)
+ {
+ super(provider, decorator);
+ }
+
+ @Override
+ public StyledString getStyledText(Object element)
+ {
+ ILabelProvider provider = getLabelProvider();
+ if (provider instanceof IStyledLabelProvider)
+ {
+ return ((IStyledLabelProvider)provider).getStyledText(element);
+ }
+
+ return new StyledString(getText(element));
+ }
}
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOTopicProvider.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOTopicProvider.java
index 3b6d26603a..d2aea9fe9c 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOTopicProvider.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/ui/CDOTopicProvider.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.swt.graphics.Image;
import java.util.Objects;
@@ -33,7 +34,7 @@ public interface CDOTopicProvider
/**
* @author Eike Stepper
*/
- public static final class Topic
+ public static final class Topic extends PlatformObject
{
private final CDOSession session;

Back to the top