Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java30
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java4
-rw-r--r--bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java26
3 files changed, 60 insertions, 0 deletions
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java
index e9429b1dd..8a559350b 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSProviderPlugin.java
@@ -383,6 +383,36 @@ public class CVSProviderPlugin extends Plugin {
Platform.run(code);
}
}
+
+ protected static void broadcastProjectConfigured(final IProject project) {
+ for(Iterator it=listeners.iterator(); it.hasNext();) {
+ final IResourceStateChangeListener listener = (IResourceStateChangeListener)it.next();
+ ISafeRunnable code = new ISafeRunnable() {
+ public void run() throws Exception {
+ listener.projectConfigured(project);
+ }
+ public void handleException(Throwable e) {
+ // don't log the exception....it is already being logged in Platform#run
+ }
+ };
+ Platform.run(code);
+ }
+ }
+ protected static void broadcastProjectDeconfigured(final IProject project) {
+ for(Iterator it=listeners.iterator(); it.hasNext();) {
+ final IResourceStateChangeListener listener = (IResourceStateChangeListener)it.next();
+ ISafeRunnable code = new ISafeRunnable() {
+ public void run() throws Exception {
+ listener.projectDeconfigured(project);
+ }
+ public void handleException(Throwable e) {
+ // don't log the exception....it is already being logged in Platform#run
+ }
+ };
+ Platform.run(code);
+ }
+ }
+
/**
* Gets the showTasksOnAddAndDelete.
* @return Returns a boolean
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
index 582417875..17523f25a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/CVSTeamProvider.java
@@ -65,6 +65,7 @@ import org.eclipse.team.internal.ccvs.core.streams.LFtoCRLFInputStream;
import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.MutableResourceSyncInfo;
import org.eclipse.team.internal.ccvs.core.syncinfo.ResourceSyncInfo;
+import org.eclipse.team.internal.ccvs.core.util.AddDeleteMoveListener;
import org.eclipse.team.internal.ccvs.core.util.Assert;
import org.eclipse.team.internal.ccvs.core.util.PrepareForReplaceVisitor;
@@ -126,6 +127,8 @@ public class CVSTeamProvider extends RepositoryProvider {
EclipseSynchronizer.getInstance().flush(getProject(), true, true /*flush deep*/, null);
} catch(CVSException e) {
throw new CoreException(e.getStatus());
+ } finally {
+ CVSProviderPlugin.broadcastProjectDeconfigured(getProject());
}
}
@@ -921,6 +924,7 @@ public class CVSTeamProvider extends RepositoryProvider {
}
public void configureProject() throws CoreException {
+ CVSProviderPlugin.broadcastProjectConfigured(getProject());
}
/**
* Sets the keyword substitution mode for the specified resources.
diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java
index efa1802d6..a829c543a 100644
--- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java
+++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/IResourceStateChangeListener.java
@@ -7,6 +7,7 @@ package org.eclipse.team.internal.ccvs.core;
import java.util.EventListener;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
/**
@@ -35,5 +36,30 @@ public interface IResourceStateChangeListener extends EventListener{
* resources new team state.]
*/
public void resourceStateChanged(IResource[] changedResources);
+
+ /**
+ * Notifies this listener that the project has just been configured
+ * to be a CVS project (i.e has the CVS nature).
+ * <p>
+ * Note: This method is called by team core; it is not intended to be called
+ * directly by clients.
+ * </p>
+ *
+ * @param project The project that has just been configured
+ */
+ public void projectConfigured(IProject project);
+
+ /**
+ * Notifies this listener that the project has just been deconfigured
+ * and no longer has the CVS nature.
+ * <p>
+ * Note: This method is called by team core; it is not intended to be called
+ * directly by clients.
+ * </p>
+ *
+ * @param project The project that has just been configured
+ */
+ public void projectDeconfigured(IProject project);
+
}

Back to the top