Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteffen Pingel2011-12-17 16:43:22 +0000
committerSteffen Pingel2011-12-17 16:43:22 +0000
commit7dab95a29c27ee8fed7310499b1788083eb0959c (patch)
treebc42df8898b7385a3f6464bb2c9da3b5602a7b17 /org.eclipse.mylyn.tasks.ui
parentefda05db19a897facb38d6b55361f3a63536175b (diff)
downloadorg.eclipse.mylyn.tasks-7dab95a29c27ee8fed7310499b1788083eb0959c.tar.gz
org.eclipse.mylyn.tasks-7dab95a29c27ee8fed7310499b1788083eb0959c.tar.xz
org.eclipse.mylyn.tasks-7dab95a29c27ee8fed7310499b1788083eb0959c.zip
NEW - bug 367003: expose identity model as OSGi service
https://bugs.eclipse.org/bugs/show_bug.cgi?id=367003
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java23
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/UserAttributeEditor.java24
2 files changed, 29 insertions, 18 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
index 1fe3eda53..2559828b3 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
@@ -51,6 +51,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.SafeRunnable;
import org.eclipse.mylyn.commons.core.StatusHandler;
+import org.eclipse.mylyn.commons.identity.core.IIdentityService;
import org.eclipse.mylyn.commons.net.WebUtil;
import org.eclipse.mylyn.commons.notifications.core.NotificationEnvironment;
import org.eclipse.mylyn.commons.notifications.feed.ServiceMessageManager;
@@ -58,8 +59,6 @@ import org.eclipse.mylyn.commons.notifications.ui.AbstractUiNotification;
import org.eclipse.mylyn.commons.ui.compatibility.CommonColors;
import org.eclipse.mylyn.commons.ui.compatibility.CommonFonts;
import org.eclipse.mylyn.commons.workbench.TaskBarManager;
-import org.eclipse.mylyn.internal.commons.identity.core.IdentityModel;
-import org.eclipse.mylyn.internal.commons.identity.core.gravatar.GravatarConnector;
import org.eclipse.mylyn.internal.discovery.ui.DiscoveryUi;
import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin;
import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
@@ -116,6 +115,7 @@ import org.eclipse.ui.progress.IProgressService;
import org.eclipse.ui.progress.UIJob;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
/**
* Main entry point for the Tasks UI.
@@ -774,6 +774,10 @@ public class TasksUiPlugin extends AbstractUIPlugin {
}
context.ungetService(proxyServiceReference);
}
+ if (identityServiceTracker != null) {
+ identityServiceTracker.close();
+ identityServiceTracker = null;
+ }
if (PlatformUI.isWorkbenchRunning()) {
getPreferenceStore().removePropertyChangeListener(taskListNotificationManager);
@@ -1004,7 +1008,9 @@ public class TasksUiPlugin extends AbstractUIPlugin {
private final Map<String, List<IDynamicSubMenuContributor>> menuContributors = new HashMap<String, List<IDynamicSubMenuContributor>>();
- private IdentityModel identityModel;
+ private IIdentityService identityService;
+
+ private ServiceTracker identityServiceTracker;
public Map<String, List<IDynamicSubMenuContributor>> getDynamicMenuMap() {
return menuContributors;
@@ -1384,12 +1390,13 @@ public class TasksUiPlugin extends AbstractUIPlugin {
return synchronizationManger;
}
- public IdentityModel getIdentityModel() {
- if (identityModel == null) {
- identityModel = new IdentityModel(new File(getDataDirectory(), "cache")); //$NON-NLS-1$
- identityModel.addConnector(new GravatarConnector());
+ public IIdentityService getIdentityService() {
+ if (identityServiceTracker == null) {
+ identityServiceTracker = new ServiceTracker(getBundle().getBundleContext(),
+ IIdentityService.class.getName(), null);
+ identityServiceTracker.open();
}
- return identityModel;
+ return (IIdentityService) identityServiceTracker.getService();
}
public static synchronized AbstractTaskContextStore getContextStore() {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/UserAttributeEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/UserAttributeEditor.java
index 26ebdaa71..3d598a6dc 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/UserAttributeEditor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/UserAttributeEditor.java
@@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit;
import org.eclipse.mylyn.commons.identity.core.Account;
import org.eclipse.mylyn.commons.identity.core.IIdentity;
+import org.eclipse.mylyn.commons.identity.core.IIdentityService;
import org.eclipse.mylyn.commons.identity.core.IProfileImage;
import org.eclipse.mylyn.commons.identity.core.spi.ProfileImage;
import org.eclipse.mylyn.commons.ui.CommonImages;
@@ -140,18 +141,21 @@ public class UserAttributeEditor extends AbstractAttributeEditor {
label.setToolTipText(getDescription());
}
Account account = TasksUiInternal.getAccount(getTaskAttribute());
- identity = TasksUiPlugin.getDefault().getIdentityModel().getIdentity(account);
- identity.addPropertyChangeListener(imageListener);
- Future<IProfileImage> result = identity.requestImage(IMAGE_SIZE, IMAGE_SIZE);
- if (result.isDone()) {
- try {
- updateImage(result.get(0, TimeUnit.SECONDS));
- } catch (Exception e) {
- // the event listener will eventually update the image
+ IIdentityService identityService = TasksUiPlugin.getDefault().getIdentityService();
+ if (identityService != null) {
+ identity = identityService.getIdentity(account);
+ identity.addPropertyChangeListener(imageListener);
+ Future<IProfileImage> result = identity.requestImage(IMAGE_SIZE, IMAGE_SIZE);
+ if (result.isDone()) {
+ try {
+ updateImage(result.get(0, TimeUnit.SECONDS));
+ } catch (Exception e) {
+ // the event listener will eventually update the image
+ updateImage(null);
+ }
+ } else {
updateImage(null);
}
- } else {
- updateImage(null);
}
}

Back to the top