Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2003-07-02 19:35:47 +0000
committerJean Michel-Lemieux2003-07-02 19:35:47 +0000
commite3fc6e0540b35d889bb549aaa0724b3069ba73a0 (patch)
tree50c002f100dfa1eb6c0ffb82c5f56ba72a162842
parent378a91075bd06e91122b1d5bbd6f942f4adf67ca (diff)
downloadeclipse.platform.team-e3fc6e0540b35d889bb549aaa0724b3069ba73a0.tar.gz
eclipse.platform.team-e3fc6e0540b35d889bb549aaa0724b3069ba73a0.tar.xz
eclipse.platform.team-e3fc6e0540b35d889bb549aaa0724b3069ba73a0.zip
Refresh in background work
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshAllRegisteredSubscribersJob.java12
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshSubscriberJob.java27
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties3
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/DeferredWorkbenchContentProvider.java248
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/IDeferredWorkbenchAdapter.java65
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BatchSimilarSchedulingRule.java (renamed from bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/BatchSimilarSchedulingRule.java)2
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java9
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java46
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java6
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java205
-rw-r--r--bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java110
-rw-r--r--bundles/org.eclipse.team.ui/plugin.xml2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/actions/RefreshAction.java2
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SyncViewer.java7
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/MappingSelectionPage.java1
-rw-r--r--bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/RemoteResourceElement.java1
-rw-r--r--tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java1
17 files changed, 253 insertions, 494 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshAllRegisteredSubscribersJob.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshAllRegisteredSubscribersJob.java
index 75714541d..4545338c0 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshAllRegisteredSubscribersJob.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshAllRegisteredSubscribersJob.java
@@ -72,26 +72,20 @@ public class RefreshAllRegisteredSubscribersJob extends RefreshSubscriberJob imp
if(delta.getFlags() == TeamDelta.SUBSCRIBER_CREATED) {
TeamSubscriber s = delta.getSubscriber();
subscribers.put(s.getId(), s);
- if(DEBUG) System.out.println("refreshJob: adding subscriber " + s.getName());
- if(this.getState() == Job.NONE) {
- startup();
- }
+ if(DEBUG) System.out.println(this.getClass().getName() + ": adding subscriber " + s.getName());
} else if(delta.getFlags() == TeamDelta.SUBSCRIBER_DELETED) {
// cancel current refresh just to make sure that the subscriber being deleted can
// be properly shutdown
cancel();
TeamSubscriber s = delta.getSubscriber();
subscribers.remove(s.getId());
- if(DEBUG) System.out.println("refreshJob: removing subscriber " + s.getName());
- if(! subscribers.isEmpty()) {
- startup();
- }
+ if(DEBUG) System.out.println(this.getClass().getName() + ": removing subscriber " + s.getName());
}
}
}
protected void startup() {
- if(DEBUG) System.out.println("refreshJob: scheduling job in " + (refreshInterval / 3600) + " seconds");
+ if(DEBUG) System.out.println(this.getClass().getName() + ": scheduling job in " + (refreshInterval / 60000) + " minutes");
schedule(refreshInterval);
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshSubscriberJob.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshSubscriberJob.java
index 3e52cfacc..3032796a8 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshSubscriberJob.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/RefreshSubscriberJob.java
@@ -27,8 +27,9 @@ import org.eclipse.team.internal.core.Policy;
*/
public class RefreshSubscriberJob extends Job {
- protected final static boolean DEBUG = Policy.DEBUG_REFRESH_JOB;
+ protected final static boolean DEBUG = Policy.DEBUG_REFRESH_JOB;
+ private final static Object FAMILY_ID = new Object();
private TeamSubscriber subscriber;
private IResource[] roots;
@@ -51,41 +52,51 @@ public class RefreshSubscriberJob extends Job {
}
public RefreshSubscriberJob(TeamSubscriber subscriber, IResource[] roots) {
+ this();
this.subscriber = subscriber;
this.roots = roots;
}
+ public boolean belongsTo(Object family) {
+ return family == getFamily();
+ }
+
+ public static Object getFamily() {
+ return FAMILY_ID;
+ }
+
/**
* This is run by the job scheduler. A list of subscribers will be refreshed, errors will not stop the job
* and it will continue to refresh the other subscribers.
*/
public IStatus run(IProgressMonitor monitor) {
- monitor.beginTask(null, getSubscribers().length * 100);
+ monitor.beginTask(Policy.bind("RefreshSubscriber.runTitle"), getSubscribers().length * 100);
try {
TeamSubscriber[] subscribers = getSubscribers();
- if(DEBUG) System.out.println("refreshJob: running with " + subscribers.length + " subscribers");
+ if(DEBUG) System.out.println(this.getClass().getName() + ": running with " + subscribers.length + " subscribers");
for (int i = 0; i < subscribers.length; i++) {
TeamSubscriber s = subscribers[i];
if(monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
try {
- if(DEBUG) System.out.println("refreshJob: starting refresh for " + s.getName());
+ if(DEBUG) System.out.println(this.getClass().getName() + ": starting refresh for " + s.getName());
+ monitor.setTaskName(Policy.bind("RefreshSubscriber.runTitleSubscriber", s.getName()));
s.refresh(getResources(s), IResource.DEPTH_INFINITE, Policy.subMonitorFor(monitor, 100));
- if(DEBUG) System.out.println("refreshJob: finished refresh for " + s.getName());
+ if(DEBUG) System.out.println(this.getClass().getName() + ": finished refresh for " + s.getName());
} catch(TeamException e) {
- if(DEBUG) System.out.println("refreshJob: exception in refresh " + s.getName() + ":" + e.getMessage());
+ if(DEBUG) System.out.println(this.getClass().getName() + ": exception in refresh " + s.getName() + ":" + e.getMessage());
//TeamPlugin.log(e);
// keep going'
}
}
} catch(OperationCanceledException e2) {
- if(DEBUG) System.out.println("refreshJob: run cancelled");
+ if(DEBUG) System.out.println(this.getClass().getName() + ": run cancelled");
return Status.CANCEL_STATUS;
} finally {
monitor.done();
}
- if(DEBUG) System.out.println("refreshJob: run completed");
+ if(DEBUG) System.out.println(this.getClass().getName() + ": run completed");
return Status.OK_STATUS;
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
index 03607271c..22d08a5b8 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/messages.properties
@@ -97,4 +97,7 @@ RemoteSyncElement.deletion=deletion
RemoteSyncElement.manual={manual}
RemoteSyncElement.auto={auto}
+RefreshSubscriber.runTitle=Team refreshing with remote
+RefreshSubscriber.runTitleSubscriber=Team refreshing ''{0}'' with remote
+
Team.Error_loading_ignore_state_from_disk_1=Error loading ignore state from disk
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/DeferredWorkbenchContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/DeferredWorkbenchContentProvider.java
deleted file mode 100644
index 1dfd86c51..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/DeferredWorkbenchContentProvider.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.jobs;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ui.Policy;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.model.PendingUpdateAdapter;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * Provides lazy contents retrieval for objects that have the IDeferredWorkbenchAdapter
- * adapter registered.
- *
- * @see IDeferredWorkbenchAdapter
- */
-public class DeferredWorkbenchContentProvider extends WorkbenchContentProvider {
-
- /**
- * The wrapper is required to ensure that we cancel fetching children jobs for
- * the same parent instance that were created from this content provider and not
- * those created by others.
- */
- private class FamilyWrapper {
- Object o;
- FamilyWrapper(Object o) {
- this.o = o;
- }
- }
-
- /**
- * This job is used to add elements to a viewer.
- */
- private class AddElementsToViewJob extends UIJob {
- Object[] newElements;
- Object parent;
- private boolean working;
-
- AddElementsToViewJob(Object parentElement) {
- super(viewer.getControl().getDisplay());
- parent = parentElement;
- addJobChangeListener(new JobChangeAdapter() {
- public void done(Job job, IStatus result) {
- setWorking(false);
- }
- });
- }
- synchronized boolean isWorking() {
- return working;
- }
- public IStatus runInUIThread(IProgressMonitor monitor) {
- if (monitor.isCanceled()) {
- return Status.CANCEL_STATUS;
- }
- if (viewer instanceof AbstractTreeViewer) {
- ((AbstractTreeViewer) viewer).add(parent, newElements);
- }
- return Status.OK_STATUS;
- }
- void runBatch(Object[] elements) {
- working = true;
- this.newElements = elements;
- schedule();
- }
- synchronized void setWorking(boolean working) {
- this.working = working;
- }
- }
-
- /**
- * This collector is responsible for updating the viewer when deferred children are fetched by
- * a deferred adapter. Elements added to the viewer are batched so that the viewer doesn't
- * do too much work in the UI thread.
- *
- * TODO: this currently doesn't batch calls to add(Object).
- */
- abstract private class DeferredElementCollector implements IElementCollector {
-
- // The number of elements to add to the view at a time. While these elements are
- // added the UI thread is locked.
- private int BATCH_SIZE = 5;
-
- // The viewer in which to add new elements.
- private Viewer viewer;
-
- private boolean DEBUG = true;
- private long FAKE_LATENCY = 100; // milliseconds
-
- private PendingUpdateAdapter placeholder;
-
- public DeferredElementCollector(Viewer viewer, PendingUpdateAdapter placeholder) {
- this.viewer = viewer;
- this.placeholder = placeholder;
- }
-
- public void addChildren(final Object parent, final Object[] children, IProgressMonitor monitor) {
- monitor = Policy.monitorFor(monitor);
- if (viewer instanceof AbstractTreeViewer) {
- final AbstractTreeViewer treeViewer = (AbstractTreeViewer) viewer;
-
- if (placeholder != null) {
- UIJob removalJob = new UIJob() {
- public IStatus runInUIThread(IProgressMonitor monitor) {
- treeViewer.remove(placeholder);
- placeholder = null;
- return Status.OK_STATUS;
- }
- };
- removalJob.schedule();
-
- }
- AddElementsToViewJob addElementsJob = new AddElementsToViewJob(parent);
- if (children.length == 0) {
- addElementsJob.runBatch(children);
- return;
- }
-
- int batchStart = 0;
- int batchEnd = children.length > BATCH_SIZE ? BATCH_SIZE : children.length;
- //process children until all children have been sent to the UI
- while (batchStart < children.length) {
- if (monitor.isCanceled()) {
- addElementsJob.cancel();
- return;
- }
-
- if (DEBUG)
- slowDown(FAKE_LATENCY);
-
- //only send a new batch when the last batch is finished
- if (!addElementsJob.isWorking()) {
- int batchLength = batchEnd - batchStart;
- Object[] batch = new Object[batchLength];
- System.arraycopy(children, batchStart, batch, 0, batchLength);
-
- addElementsJob.runBatch(batch);
-
- batchStart += batchLength;
- batchEnd = (batchStart + BATCH_SIZE);
- if (batchEnd >= children.length) {
- batchEnd = children.length;
- }
- }
- }
- } else {
- viewer.refresh();
- }
- }
-
- private void slowDown(long time) {
- try {
- Thread.sleep(time);
- } catch (InterruptedException e) {
- }
- }
- }
-
- /**
- * Provides an optimized lookup for determining if an element has children. This is
- * required because elements that are populated lazilly can't answer <code>getChildren</code>
- * just to determine the potential for children.
- */
- public boolean hasChildren(Object o) {
- if (o == null) {
- return false;
- }
- IWorkbenchAdapter adapter = getAdapter(o);
- if (adapter instanceof IDeferredWorkbenchAdapter) {
- IDeferredWorkbenchAdapter element = (IDeferredWorkbenchAdapter) adapter;
- return element.isContainer();
- }
- return super.hasChildren(o);
- }
-
- /**
- * Returns the child elements of the given element, or in the case of a deferred element, returns
- * a placeholder. If a deferred element used a job is created to fetch the children in the background.
- */
- public Object[] getChildren(final Object parent) {
- IWorkbenchAdapter adapter = getAdapter(parent);
- if (adapter instanceof IDeferredWorkbenchAdapter &&
- CVSUIPlugin.getPlugin().getPreferenceStore().getBoolean(ICVSUIConstants.BACKGROUND_REPOVIEW)) {
- IDeferredWorkbenchAdapter element = (IDeferredWorkbenchAdapter) adapter;
- return startFetchingDeferredChildren(parent, element);
- }
- return super.getChildren(parent);
- }
-
- /**
- * Starts a job and creates a collector for fetching the children of this deferred adapter. If children
- * are waiting to be retrieve for this parent already, that job is cancelled and another is started.
- */
- private Object[] startFetchingDeferredChildren(final Object parent, final IDeferredWorkbenchAdapter adapter) {
-
- PendingUpdateAdapter pendingPlaceHolder = new PendingUpdateAdapter();
- final DeferredElementCollector collector = new DeferredElementCollector(viewer, pendingPlaceHolder) {
- public void add(Object element, IProgressMonitor monitor) {
- add(new Object[] { element }, monitor);
- }
- public void add(Object[] elements, IProgressMonitor monitor) {
- addChildren(parent, elements, monitor);
- }
- };
-
- // Cancel any jobs currently fetching children for the same parent instance.
- Platform.getJobManager().cancel(new FamilyWrapper(parent));
- Job job = new Job() {
- public IStatus run(IProgressMonitor monitor) {
- try {
- adapter.fetchDeferredChildren(parent, collector, monitor);
- } catch (OperationCanceledException e) {
- return Status.CANCEL_STATUS;
- }
- return Status.OK_STATUS;
- }
- public boolean belongsTo(Object family) {
- if (family instanceof FamilyWrapper) {
- return ((FamilyWrapper) family).o == parent;
- }
- return false;
- }
- };
-
- job.setRule(adapter.getRule());
- job.schedule();
- return new Object[] {pendingPlaceHolder};
- }
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/IDeferredWorkbenchAdapter.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/IDeferredWorkbenchAdapter.java
deleted file mode 100644
index 63d1395c2..000000000
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/IDeferredWorkbenchAdapter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.jobs;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.progress.IElementCollector;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * This adapter interface provides support for lazy initialization of UI workbench elements
- * that are displayed visually. This adapter is used with an associated deferred content provider.
- *
- * @see DeferredWorkbenchContentProvider
- * @see BatchSimilarSchedulingRule
- */
-public interface IDeferredWorkbenchAdapter extends IWorkbenchAdapter {
-
- /**
- * Called by a job run in a separate thread to fetch the children of this adapter.
- * The adapter should return notify of new children via the collector.
- * <p>
- * It is good practice to check the passed in monitor for cancellation. This will
- * provide good responsiveness for cancellation requests made by the user.
- * </p>
- *
- * @param o the object to fetch the children for
- * @param collector the collector to notify about new children
- * @param monitor a progress monitor that will never be <code>null<code> to
- * support reporting and cancellation.
- */
- public void fetchDeferredChildren(Object o, IElementCollector collector, IProgressMonitor monitor);
-
- /**
- * Returns whether this adapter may have children. This is an optimized method
- * used by content providers to allow showing the [+] expand icon without having
- * yet fetched the children for the element.
- * <p>
- * If <code>false</code> is returned, then the content provider is free to assume
- * that this adapter has no children. If <code>true</code> is returned,
- * then the job manager is free to assume that this adapter may have children.
- * <p>
- *
- * @param rule the rule to check for conflicts
- * @return <code>true</code> if the rule is conflicting, and <code>false</code>
- * otherwise.
- */
- public boolean isContainer();
-
- /**
- * Returns the rule used to schedule the deferred fetching of children for this adapter. The job manager
- * guarantees that no two jobs with conflicting scheduling rules will run concurrently.
- *
- * @return ISchedulingRule the scheduling rule
- */
- public ISchedulingRule getRule();
-} \ No newline at end of file
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/BatchSimilarSchedulingRule.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BatchSimilarSchedulingRule.java
index ddd5f4277..4840f451c 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/jobs/BatchSimilarSchedulingRule.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/BatchSimilarSchedulingRule.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.team.internal.ccvs.ui.jobs;
+package org.eclipse.team.internal.ccvs.ui.model;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java
index 5c82d7518..324a754a8 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/CVSTagElement.java
@@ -16,14 +16,11 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.jface.progress.IElementCollector;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
+import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.jobs.IDeferredWorkbenchAdapter;
-import org.eclipse.team.internal.ccvs.ui.jobs.BatchSimilarSchedulingRule;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
public class CVSTagElement extends CVSModelElement implements IAdaptable, IDeferredWorkbenchAdapter {
CVSTag tag;
@@ -38,6 +35,8 @@ public class CVSTagElement extends CVSModelElement implements IAdaptable, IDefer
}
public Object getAdapter(Class adapter) {
if (adapter == IWorkbenchAdapter.class)
+ return this;
+ if (adapter == IDeferredWorkbenchAdapter.class)
return this;
return null;
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
index 997b5b482..759a104a3 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteContentProvider.java
@@ -10,12 +10,16 @@
*******************************************************************************/
package org.eclipse.team.internal.ccvs.ui.model;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSResource;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.core.resources.RemoteResource;
-import org.eclipse.team.internal.ccvs.ui.jobs.*;
import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.model.WorkbenchContentProvider;
+import org.eclipse.ui.progress.DeferredTreeContentManager;
+
+/**
+
/**
* Extension to the generic workbench content provider mechanism
@@ -23,9 +27,23 @@ import org.eclipse.ui.IWorkingSet;
* children for an element aren't fetched until the user clicks
* on the tree expansion box.
*/
-public class RemoteContentProvider extends DeferredWorkbenchContentProvider {
+public class RemoteContentProvider extends WorkbenchContentProvider {
IWorkingSet workingSet;
+ DeferredTreeContentManager manager;
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+ */
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ if (viewer instanceof AbstractTreeViewer) {
+ manager =
+ new DeferredTreeContentManager(
+ this,
+ (AbstractTreeViewer) viewer);
+ }
+ super.inputChanged(viewer, oldInput, newInput);
+ }
public boolean hasChildren(Object element) {
// the + box will always appear, but then disappear
@@ -51,6 +69,11 @@ public class RemoteContentProvider extends DeferredWorkbenchContentProvider {
} else if (element instanceof RemoteModule) {
return true;
}
+ if (manager != null) {
+ if (manager.isDeferredAdapter(element))
+ return manager.mayHaveChildren(element);
+ }
+
return super.hasChildren(element);
}
@@ -69,4 +92,17 @@ public class RemoteContentProvider extends DeferredWorkbenchContentProvider {
public IWorkingSet getWorkingSet() {
return workingSet;
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ui.model.WorkbenchContentProvider#getChildren(java.lang.Object)
+ */
+ public Object[] getChildren(Object element) {
+ if (manager != null) {
+ Object[] children = manager.getChildren(element);
+ if (children != null)
+ return children;
+ }
+ return super.getChildren(element);
+ }
+
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java
index f709525a2..17b95abce 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteFolderElement.java
@@ -20,12 +20,12 @@ import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.jobs.BatchSimilarSchedulingRule;
-import org.eclipse.team.internal.ccvs.ui.jobs.IDeferredWorkbenchAdapter;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
+
+public class RemoteFolderElement extends RemoteResourceElement implements IDeferredWorkbenchAdapter{
-public class RemoteFolderElement extends RemoteResourceElement implements IDeferredWorkbenchAdapter {
/**
* Overridden to append the version name to remote folders which
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java
index 34a10e3b1..e381d2cf1 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/RemoteModule.java
@@ -16,128 +16,137 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.jface.progress.IElementCollector;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
+import org.eclipse.team.internal.ccvs.core.*;
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
-import org.eclipse.team.internal.ccvs.ui.jobs.BatchSimilarSchedulingRule;
-import org.eclipse.team.internal.ccvs.ui.jobs.IDeferredWorkbenchAdapter;
import org.eclipse.team.internal.ccvs.ui.repo.RepositoryManager;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
/**
* This class represents an IProject resource in a repository. The
* children of a RemoteModule are its versions. A RemoteModule is
* a child of the VersionsCategory.
*/
-public class RemoteModule extends CVSModelElement implements IAdaptable, IDeferredWorkbenchAdapter {
- ICVSRemoteFolder folder;
- VersionCategory parent;
+public class RemoteModule
+ extends CVSModelElement
+ implements IAdaptable, IDeferredWorkbenchAdapter {
+ ICVSRemoteFolder folder;
+ VersionCategory parent;
- /**
- * RemoteProject constructor.
- */
- public RemoteModule(ICVSRemoteFolder folder, VersionCategory parent) {
- this.folder = folder;
- this.parent = parent;
- }
+ /**
+ * RemoteProject constructor.
+ */
+ public RemoteModule(ICVSRemoteFolder folder, VersionCategory parent) {
+ this.folder = folder;
+ this.parent = parent;
+ }
- /**
- * Returns an object which is an instance of the given class
- * associated with this object. Returns <code>null</code> if
- * no such object can be found.
- */
- public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class)
- return this;
- return null;
- }
+ /**
+ * Returns an object which is an instance of the given class
+ * associated with this object. Returns <code>null</code> if
+ * no such object can be found.
+ */
+ public Object getAdapter(Class adapter) {
+ if (adapter == IWorkbenchAdapter.class)
+ return this;
+ if (adapter == IDeferredWorkbenchAdapter.class)
+ return this;
+ return null;
+ }
- /**
- * Returns an image to be used for displaying an object in the desktop.
- * @param object The object to get an image for.
- * @param owner The viewer that the image will be used in. The image will
- * be disposed when this viewer is closed. If the owner is null, a new
- * image is returned, and the caller is responsible for disposing it.
- */
- public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_PROJECT_VERSION);
- }
+ /**
+ * Returns an image to be used for displaying an object in the desktop.
+ * @param object The object to get an image for.
+ * @param owner The viewer that the image will be used in. The image will
+ * be disposed when this viewer is closed. If the owner is null, a new
+ * image is returned, and the caller is responsible for disposing it.
+ */
+ public ImageDescriptor getImageDescriptor(Object object) {
+ return CVSUIPlugin.getPlugin().getImageDescriptor(
+ ICVSUIConstants.IMG_PROJECT_VERSION);
+ }
- /**
- * Returns the name of this element. This will typically
- * be used to assign a label to this object when displayed
- * in the UI.
- */
- public String getLabel(Object o) {
- return folder.getName();
- }
+ /**
+ * Returns the name of this element. This will typically
+ * be used to assign a label to this object when displayed
+ * in the UI.
+ */
+ public String getLabel(Object o) {
+ return folder.getName();
+ }
- /**
- * Returns the logical parent of the given object in its tree.
- */
- public Object getParent(Object o) {
- return parent;
- }
+ /**
+ * Returns the logical parent of the given object in its tree.
+ */
+ public Object getParent(Object o) {
+ return parent;
+ }
- /**
- * Return the repository the given element belongs to.
- */
- public ICVSRepositoryLocation getRepository(Object o) {
- return folder.getRepository();
- }
+ /**
+ * Return the repository the given element belongs to.
+ */
+ public ICVSRepositoryLocation getRepository(Object o) {
+ return folder.getRepository();
+ }
- /** (Non-javadoc)
- * For debugging purposes only.
- */
- public String toString() {
- return "RemoteModule(" + folder.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
- }
+ /** (Non-javadoc)
+ * For debugging purposes only.
+ */
+ public String toString() {
+ return "RemoteModule(" + folder.getName() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
- public ICVSRemoteResource getCVSResource() {
- return folder;
- }
+ public ICVSRemoteResource getCVSResource() {
+ return folder;
+ }
- /**
- * Returns the children of this object. When this object
- * is displayed in a tree, the returned objects will be this
- * element's children. Returns an empty enumeration if this
- * object has no children. The children of the RemoteModule
- * are the versions for that module.
- *
- * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#internalGetChildren(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
- */
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- RepositoryManager manager = CVSUIPlugin.getPlugin().getRepositoryManager();
- try {
- manager.refreshDefinedTags(folder, false /* replace */
- , false, monitor);
- } catch (TeamException e) {
- // continue
- }
- CVSTag[] tags = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(folder, CVSTag.VERSION);
- Object[] versions = new Object[tags.length];
- for (int i = 0; i < versions.length; i++) {
- versions[i] = folder.forTag(tags[i]);
- }
- return versions;
- }
+ /**
+ * Returns the children of this object. When this object
+ * is displayed in a tree, the returned objects will be this
+ * element's children. Returns an empty enumeration if this
+ * object has no children. The children of the RemoteModule
+ * are the versions for that module.
+ *
+ * @see org.eclipse.team.internal.ccvs.ui.model.CVSModelElement#internalGetChildren(java.lang.Object, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public Object[] fetchChildren(Object o, IProgressMonitor monitor)
+ throws TeamException {
+ RepositoryManager manager =
+ CVSUIPlugin.getPlugin().getRepositoryManager();
+ try {
+ manager.refreshDefinedTags(folder, false /* replace */
+ , false, monitor);
+ } catch (TeamException e) {
+ // continue
+ }
+ CVSTag[] tags =
+ CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(
+ folder,
+ CVSTag.VERSION);
+ Object[] versions = new Object[tags.length];
+ for (int i = 0; i < versions.length; i++) {
+ versions[i] = folder.forTag(tags[i]);
+ }
+ return versions;
+ }
- public void fetchDeferredChildren(Object o, IElementCollector collector, IProgressMonitor monitor) {
+ public void fetchDeferredChildren(
+ Object o,
+ IElementCollector collector,
+ IProgressMonitor monitor) {
try {
collector.add(fetchChildren(o, monitor), monitor);
} catch (TeamException e) {
CVSUIPlugin.log(e);
- }
- }
+ }
+ }
- public boolean isContainer() {
- return true;
- }
+ public boolean isContainer() {
+ return true;
+ }
- public ISchedulingRule getRule() {
- return new BatchSimilarSchedulingRule("org.eclipse.team.ui.cvs.remotemodule"); //$NON-NLS-1$
- }
+ public ISchedulingRule getRule() {
+ return new BatchSimilarSchedulingRule("org.eclipse.team.ui.cvs.remotemodule"); //$NON-NLS-1$
+ }
}
diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java
index 662c91b1c..5a947514f 100644
--- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java
+++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/model/VersionCategory.java
@@ -10,7 +10,6 @@
*******************************************************************************/
package org.eclipse.team.internal.ccvs.ui.model;
-
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
@@ -18,21 +17,17 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.progress.IElementCollector;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.team.core.TeamException;
-import org.eclipse.team.internal.ccvs.core.CVSException;
-import org.eclipse.team.internal.ccvs.core.CVSTag;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteFolder;
-import org.eclipse.team.internal.ccvs.core.ICVSRemoteResource;
-import org.eclipse.team.internal.ccvs.core.ICVSRepositoryLocation;
-import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
-import org.eclipse.team.internal.ccvs.ui.ICVSUIConstants;
+import org.eclipse.team.internal.ccvs.core.*;
+import org.eclipse.team.internal.ccvs.ui.*;
import org.eclipse.team.internal.ccvs.ui.Policy;
-import org.eclipse.team.internal.ccvs.ui.jobs.BatchSimilarSchedulingRule;
-import org.eclipse.team.internal.ccvs.ui.jobs.IDeferredWorkbenchAdapter;
import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-public class VersionCategory extends CVSModelElement implements IAdaptable, IDeferredWorkbenchAdapter {
+public class VersionCategory
+ extends CVSModelElement
+ implements IAdaptable, IDeferredWorkbenchAdapter {
private ICVSRepositoryLocation repository;
-
+
/**
* ProjectVersionsCategory constructor.
*/
@@ -40,61 +35,84 @@ public class VersionCategory extends CVSModelElement implements IAdaptable, IDef
super();
this.repository = repo;
}
-
+
/**
* Returns an object which is an instance of the given class
* associated with this object. Returns <code>null</code> if
* no such object can be found.
*/
public Object getAdapter(Class adapter) {
- if (adapter == IWorkbenchAdapter.class) return this;
+ if (adapter == IWorkbenchAdapter.class)
+ return this;
+ if (adapter == IDeferredWorkbenchAdapter.class)
+ return this;
return null;
}
-
+
/**
* Returns the children of this object. When this object
* is displayed in a tree, the returned objects will be this
* element's children. Returns an empty enumeration if this
* object has no children.
*/
- public Object[] fetchChildren(Object o, IProgressMonitor monitor) throws TeamException {
- if (CVSUIPlugin.getPlugin().getRepositoryManager().isDisplayingProjectVersions(repository)) {
+ public Object[] fetchChildren(Object o, IProgressMonitor monitor)
+ throws TeamException {
+ if (CVSUIPlugin
+ .getPlugin()
+ .getRepositoryManager()
+ .isDisplayingProjectVersions(repository)) {
return getProjectVersionChildren(o, monitor);
} else {
return getVersionTagChildren(o, monitor);
}
}
-
+
/*
* Return the children as a list of versions whose children are projects
*/
- private Object[] getVersionTagChildren(Object o, IProgressMonitor monitor) throws CVSException {
- CVSTag[] tags = CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(repository, getWorkingSet(), CVSTag.VERSION, monitor);
+ private Object[] getVersionTagChildren(Object o, IProgressMonitor monitor)
+ throws CVSException {
+ CVSTag[] tags =
+ CVSUIPlugin.getPlugin().getRepositoryManager().getKnownTags(
+ repository,
+ getWorkingSet(),
+ CVSTag.VERSION,
+ monitor);
CVSTagElement[] versionElements = new CVSTagElement[tags.length];
for (int i = 0; i < tags.length; i++) {
versionElements[i] = new CVSTagElement(tags[i], repository);
}
return versionElements;
}
-
+
/*
* Return the children as a list of projects whose children ar project versions
*/
- private Object[] getProjectVersionChildren(Object o, IProgressMonitor monitor) throws TeamException {
+ private Object[] getProjectVersionChildren(
+ Object o,
+ IProgressMonitor monitor)
+ throws TeamException {
IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
- ICVSRemoteResource[] resources = CVSUIPlugin.getPlugin().getRepositoryManager().getFoldersForTag(
- repository,
- CVSTag.DEFAULT,
- monitor);
+ ICVSRemoteResource[] resources =
+ CVSUIPlugin.getPlugin().getRepositoryManager().getFoldersForTag(
+ repository,
+ CVSTag.DEFAULT,
+ monitor);
if (getWorkingSet() != null)
- resources = CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(getWorkingSet(), resources);
+ resources =
+ CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(
+ getWorkingSet(),
+ resources);
Object[] modules = new Object[resources.length];
for (int i = 0; i < resources.length; i++) {
- modules[i] = new RemoteModule((ICVSRemoteFolder)resources[i], VersionCategory.this);
+ modules[i] =
+ new RemoteModule(
+ (ICVSRemoteFolder) resources[i],
+ VersionCategory.this);
}
return modules;
}
-
+
/**
* Returns an image descriptor to be used for displaying an object in the workbench.
* Returns null if there is no appropriate image.
@@ -102,7 +120,8 @@ public class VersionCategory extends CVSModelElement implements IAdaptable, IDef
* @param object The object to get an image descriptor for.
*/
public ImageDescriptor getImageDescriptor(Object object) {
- return CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_VERSIONS_CATEGORY);
+ return CVSUIPlugin.getPlugin().getImageDescriptor(
+ ICVSUIConstants.IMG_VERSIONS_CATEGORY);
}
/**
@@ -127,7 +146,7 @@ public class VersionCategory extends CVSModelElement implements IAdaptable, IDef
public Object getParent(Object o) {
return repository;
}
-
+
/**
* Return the repository the given element belongs to.
*/
@@ -135,19 +154,22 @@ public class VersionCategory extends CVSModelElement implements IAdaptable, IDef
return repository;
}
- public void fetchDeferredChildren(Object o, IElementCollector collector, IProgressMonitor monitor) {
- try {
- collector.add(fetchChildren(o, monitor), monitor);
- } catch (TeamException e) {
- CVSUIPlugin.log(e);
- }
- }
+ public void fetchDeferredChildren(
+ Object o,
+ IElementCollector collector,
+ IProgressMonitor monitor) {
+ try {
+ collector.add(fetchChildren(o, monitor), monitor);
+ } catch (TeamException e) {
+ CVSUIPlugin.log(e);
+ }
+ }
- public boolean isContainer() {
- return true;
- }
+ public boolean isContainer() {
+ return true;
+ }
- public ISchedulingRule getRule() {
- return new BatchSimilarSchedulingRule("org.eclipse.team.cvs.ui.versioncategory"); //$NON-NLS-1$
- }
+ public ISchedulingRule getRule() {
+ return new BatchSimilarSchedulingRule("org.eclipse.team.cvs.ui.versioncategory"); //$NON-NLS-1$
+ }
}
diff --git a/bundles/org.eclipse.team.ui/plugin.xml b/bundles/org.eclipse.team.ui/plugin.xml
index e30759105..a2a3f6a1f 100644
--- a/bundles/org.eclipse.team.ui/plugin.xml
+++ b/bundles/org.eclipse.team.ui/plugin.xml
@@ -198,7 +198,7 @@
<wizard
id="org.eclipse.team.ui.ProjectSetImportWizard"
name="%ProjectSetImportWizard.name"
- class="org.eclipse.team.internal.ui.wizard.ProjectSetImportWizard"
+ class="org.eclipse.team.internal.ui.wizards.ProjectSetImportWizard"
icon="icons/full/obj/import_projectset.gif">
<description>
%ProjectSetImportWizard.description
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/actions/RefreshAction.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/actions/RefreshAction.java
index 6238847d9..8d04f8d9f 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/actions/RefreshAction.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/actions/RefreshAction.java
@@ -14,6 +14,7 @@ import java.lang.reflect.InvocationTargetException;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ISelection;
@@ -57,6 +58,7 @@ class RefreshAction extends Action {
resources = input.roots();
}
if(TeamUIPlugin.getPlugin().getPreferenceStore().getBoolean(IPreferenceIds.SYNCVIEW_BACKGROUND_SYNC)) {
+ Platform.getJobManager().cancel(RefreshSubscriberJob.getFamily());
RefreshSubscriberJob job = new RefreshSubscriberJob(input.getSubscriber(), resources);
job.schedule();
} else {
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SyncViewer.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SyncViewer.java
index e4a6ef9b3..8bc5fce3d 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SyncViewer.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/sync/views/SyncViewer.java
@@ -61,7 +61,7 @@ import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
-import org.eclipse.team.core.subscribers.RefreshAllRegisteredSubscribersJob;
+import org.eclipse.team.core.subscribers.RefreshSubscriberJob;
import org.eclipse.team.core.subscribers.TeamDelta;
import org.eclipse.team.core.subscribers.TeamProvider;
import org.eclipse.team.core.subscribers.TeamSubscriber;
@@ -74,7 +74,6 @@ import org.eclipse.team.internal.ui.sync.actions.SyncViewerActions;
import org.eclipse.team.ui.ISharedImages;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
@@ -703,14 +702,14 @@ public class SyncViewer extends ViewPart implements ITeamResourceChangeListener,
* change the icon of the view when the refresh jobis running.
*/
public void done(Job job, IStatus result) {
- if(job instanceof RefreshAllRegisteredSubscribersJob) {
+ if(job.belongsTo(RefreshSubscriberJob.getFamily())) {
viewImage = initialImg;
fireSavePropertyChange(IWorkbenchPart.PROP_TITLE);
}
}
public void running(Job job) {
- if(job instanceof RefreshAllRegisteredSubscribersJob) {
+ if(job.belongsTo(RefreshSubscriberJob.getFamily())) {
viewImage = refreshingImg;
fireSavePropertyChange(IWorkbenchPart.PROP_TITLE);
}
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/MappingSelectionPage.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/MappingSelectionPage.java
index 5217e4fee..1466d7f60 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/MappingSelectionPage.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/MappingSelectionPage.java
@@ -39,7 +39,6 @@ import org.eclipse.team.internal.core.target.Site;
import org.eclipse.team.internal.core.target.UrlUtil;
import org.eclipse.team.internal.ui.IHelpContextIds;
import org.eclipse.team.internal.ui.Policy;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.internal.ui.Utils;
import org.eclipse.ui.help.WorkbenchHelp;
import org.eclipse.ui.model.WorkbenchLabelProvider;
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/RemoteResourceElement.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/RemoteResourceElement.java
index 5edf5fc2c..e90242a59 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/RemoteResourceElement.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/target/RemoteResourceElement.java
@@ -23,7 +23,6 @@ import org.eclipse.team.core.TeamException;
import org.eclipse.team.core.sync.IRemoteResource;
import org.eclipse.team.internal.core.target.IRemoteTargetResource;
import org.eclipse.team.internal.ui.Policy;
-import org.eclipse.team.internal.ui.TeamUIPlugin;
import org.eclipse.team.internal.ui.Utils;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
diff --git a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
index e5915553a..5896454df 100644
--- a/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
+++ b/tests/org.eclipse.team.tests.cvs.core/src/org/eclipse/team/tests/ccvs/ui/unit/MenuEnablementTest.java
@@ -45,7 +45,6 @@ import org.eclipse.team.internal.ccvs.ui.actions.ReplaceWithTagAction;
import org.eclipse.team.internal.ccvs.ui.actions.SetKeywordSubstitutionAction;
import org.eclipse.team.internal.ccvs.ui.actions.ShowResourceInHistoryAction;
import org.eclipse.team.internal.ccvs.ui.actions.SyncAction;
-import org.eclipse.team.internal.ccvs.ui.actions.TagAction;
import org.eclipse.team.internal.ccvs.ui.actions.TagLocalAction;
import org.eclipse.team.internal.ccvs.ui.actions.UnmanageAction;
import org.eclipse.team.internal.ccvs.ui.actions.UpdateAction;

Back to the top