Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Michel-Lemieux2003-07-24 15:04:10 +0000
committerJean Michel-Lemieux2003-07-24 15:04:10 +0000
commita7c21049d5e7c8dd8ca50519d05c99c5f7398358 (patch)
tree113b7de1db6de5e49f9d107d5408b92efdd6f8d7 /bundles/org.eclipse.team.cvs.core
parente8925a5203c7e6c91980b627d657aea8cace13e3 (diff)
downloadeclipse.platform.team-a7c21049d5e7c8dd8ca50519d05c99c5f7398358.tar.gz
eclipse.platform.team-a7c21049d5e7c8dd8ca50519d05c99c5f7398358.tar.xz
eclipse.platform.team-a7c21049d5e7c8dd8ca50519d05c99c5f7398358.zip
*** empty log message ***
Diffstat (limited to 'bundles/org.eclipse.team.cvs.core')
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
index 86aaf445a..78074e0b6 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSMergeSubscriber.java
@@ -29,6 +29,7 @@ import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.QualifiedName;
import org.eclipse.team.core.RepositoryProvider;
import org.eclipse.team.core.TeamException;
+import org.eclipse.team.core.subscribers.ITeamResourceChangeListener;
import org.eclipse.team.core.subscribers.SyncInfo;
import org.eclipse.team.core.subscribers.TeamDelta;
import org.eclipse.team.core.subscribers.TeamProvider;
@@ -53,7 +54,7 @@ import org.eclipse.team.internal.core.SaveContext;
* TODO: Do certain operations (e.g. replace with) invalidate a merge subscriber?
* TODO: How to ensure that sync info is flushed when merge roots are deleted?
*/
-public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResourceChangeListener {
+public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResourceChangeListener, ITeamResourceChangeListener {
public static final String UNIQUE_ID_PREFIX = "merge-";
@@ -116,6 +117,7 @@ public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResour
// }
ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
+ CVSProviderPlugin.getPlugin().getCVSWorkspaceSubscriber().addListener(this);
}
protected SyncInfo getSyncInfo(IResource local, IRemoteResource base, IRemoteResource remote, IProgressMonitor monitor) throws TeamException {
@@ -300,5 +302,25 @@ public class CVSMergeSubscriber extends CVSSyncTreeSubscriber implements IResour
public boolean isMerged(IResource resource) throws CVSException {
return mergedSynchronizer.getSyncBytes(resource) != null;
+ }
+
+ /*
+ * Currently only the workspace subscriber knows when a project has been deconfigured. We will listen for these events
+ * and remove the root then forward to merge subscriber listeners.
+ * (non-Javadoc)
+ * @see org.eclipse.team.core.subscribers.ITeamResourceChangeListener#teamResourceChanged(org.eclipse.team.core.subscribers.TeamDelta[])
+ */
+ public void teamResourceChanged(TeamDelta[] deltas) {
+ for (int i = 0; i < deltas.length; i++) {
+ TeamDelta delta = deltas[i];
+ switch(delta.getFlags()) {
+ case TeamDelta.PROVIDER_DECONFIGURED:
+ IResource resource = delta.getResource();
+ if(roots.remove(resource)) {
+ fireTeamResourceChange(new TeamDelta[] {delta});
+ }
+ break;
+ }
+ }
}
} \ No newline at end of file

Back to the top