Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Valenta2006-03-17 16:21:48 +0000
committerMichael Valenta2006-03-17 16:21:48 +0000
commitda06ace7e4fc997c02e21aef2f4f77dcbabbd1f6 (patch)
tree9e67fb2cd259a54fc9e1c1d47db62a469d3eccaa /bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
parenta9cc71416ac4a414e77597721763fa89b8b61a87 (diff)
downloadeclipse.platform.team-da06ace7e4fc997c02e21aef2f4f77dcbabbd1f6.tar.gz
eclipse.platform.team-da06ace7e4fc997c02e21aef2f4f77dcbabbd1f6.tar.xz
eclipse.platform.team-da06ace7e4fc997c02e21aef2f4f77dcbabbd1f6.zip
Bug 131440 [Model Decoration] Problems with current support for model element decoration
Diffstat (limited to 'bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java')
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
index 6c60b83ba..ee8c8a297 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
@@ -27,12 +27,18 @@ import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.team.core.RepositoryProviderType;
+import org.eclipse.team.core.subscribers.Subscriber;
import org.eclipse.team.internal.ui.mapping.StreamMergerDelegate;
+import org.eclipse.team.internal.ui.mapping.WorkspaceTeamStateProvider;
import org.eclipse.team.internal.ui.synchronize.SynchronizeManager;
import org.eclipse.team.internal.ui.synchronize.TeamSynchronizingPerspective;
import org.eclipse.team.internal.ui.synchronize.actions.GlobalRefreshAction;
import org.eclipse.team.ui.ISharedImages;
import org.eclipse.team.ui.TeamUI;
+import org.eclipse.team.ui.mapping.ITeamStateProvider;
+import org.eclipse.team.ui.synchronize.TeamStateProvider;
+import org.eclipse.team.ui.synchronize.SubscriberTeamStateProvider;
import org.eclipse.ui.*;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.Bundle;
@@ -58,6 +64,10 @@ public class TeamUIPlugin extends AbstractUIPlugin {
private Hashtable imageDescriptors = new Hashtable(20);
+ private WorkspaceTeamStateProvider provider;
+
+ private Map decoratedStateProviders = new HashMap();
+
/**
* Creates a new TeamUIPlugin.
*/
@@ -217,6 +227,13 @@ public class TeamUIPlugin extends AbstractUIPlugin {
} finally {
super.stop(context);
}
+ if (provider != null) {
+ provider.dispose();
+ }
+ for (Iterator iter = decoratedStateProviders.values().iterator(); iter.hasNext();) {
+ SubscriberTeamStateProvider sdsp = (SubscriberTeamStateProvider) iter.next();
+ sdsp.dispose();
+ }
}
/**
@@ -385,4 +402,29 @@ public class TeamUIPlugin extends AbstractUIPlugin {
public org.osgi.service.prefs.Preferences getInstancePreferences() {
return new InstanceScope().getNode(getBundle().getSymbolicName());
}
+
+ public synchronized TeamStateProvider getDecoratedStateProvider(RepositoryProviderType rpt) {
+ TeamStateProvider provider = (TeamStateProvider)decoratedStateProviders.get(rpt.getID());
+ if (provider != null)
+ return provider;
+ Subscriber subscriber = rpt.getSubscriber();
+ if (subscriber != null) {
+ provider = new SubscriberTeamStateProvider(subscriber);
+ decoratedStateProviders.put(rpt.getID(), provider);
+ return provider;
+ }
+ return null;
+ }
+
+ /**
+ * Return a decorated state provider that delegates to the appropriate team
+ * provider.
+ * @return a decorated state provider that delegates to the appropriate team
+ * provider
+ */
+ public synchronized ITeamStateProvider getDecoratedStateProvider() {
+ if (provider == null)
+ provider = new WorkspaceTeamStateProvider();
+ return provider;
+ }
}

Back to the top