diff options
author | Jean Michel-Lemieux | 2003-07-24 15:04:10 +0000 |
---|---|---|
committer | Jean Michel-Lemieux | 2003-07-24 15:04:10 +0000 |
commit | a7c21049d5e7c8dd8ca50519d05c99c5f7398358 (patch) | |
tree | 113b7de1db6de5e49f9d107d5408b92efdd6f8d7 /bundles/org.eclipse.team.cvs.core | |
parent | e8925a5203c7e6c91980b627d657aea8cace13e3 (diff) | |
download | eclipse.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.java | 24 |
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 |