From 183b59e4bad94d7c9f19f84eda50377b7db0b45d Mon Sep 17 00:00:00 2001 From: Michael Valenta Date: Thu, 11 Nov 2004 17:05:42 +0000 Subject: Bug 75918 [Repo View] Expanding in repo view does workspace runnable --- .../ccvs/core/client/AbstractStructureVisitor.java | 10 ++++-- .../internal/ccvs/core/resources/RemoteModule.java | 37 ++++++---------------- 2 files changed, 17 insertions(+), 30 deletions(-) diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java index ed63fdcec..966986724 100644 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java +++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/client/AbstractStructureVisitor.java @@ -17,6 +17,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.team.internal.ccvs.core.CVSException; @@ -191,8 +192,10 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor { } else if (sendContents) { // Perform the send of modified contents in a sheduling rule to ensure that // the contents are not modified while we are sending them - try { - Platform.getJobManager().beginRule(mFile.getIResource(), monitor); + IResource resource = mFile.getIResource(); + try { + if (resource != null) + Platform.getJobManager().beginRule(resource, monitor); sendEntryLineToServer(mFile, syncBytes); if (mFile.exists() && mFile.isModified(null)) { @@ -206,7 +209,8 @@ abstract class AbstractStructureVisitor implements ICVSResourceVisitor { session.sendUnchanged(mFile); } } finally { - Platform.getJobManager().endRule(mFile.getIResource()); + if (resource != null) + Platform.getJobManager().endRule(resource); } } else { sendEntryLineToServer(mFile, syncBytes); diff --git a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java index d4b6f8f13..41d1120a8 100644 --- a/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java +++ b/bundles/org.eclipse.team.cvs.core/src/org/eclipse/team/internal/ccvs/core/resources/RemoteModule.java @@ -11,33 +11,12 @@ package org.eclipse.team.internal.ccvs.core.resources; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.StringTokenizer; +import java.util.*; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.*; import org.eclipse.team.core.TeamException; -import org.eclipse.team.internal.ccvs.core.CVSException; -import org.eclipse.team.internal.ccvs.core.CVSProviderPlugin; -import org.eclipse.team.internal.ccvs.core.CVSTag; -import org.eclipse.team.internal.ccvs.core.ICVSFolder; -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.ICVSResource; -import org.eclipse.team.internal.ccvs.core.Policy; -import org.eclipse.team.internal.ccvs.core.client.Checkout; -import org.eclipse.team.internal.ccvs.core.client.Command; -import org.eclipse.team.internal.ccvs.core.client.Session; -import org.eclipse.team.internal.ccvs.core.client.Update; +import org.eclipse.team.internal.ccvs.core.*; +import org.eclipse.team.internal.ccvs.core.client.*; import org.eclipse.team.internal.ccvs.core.client.Command.LocalOption; import org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo; @@ -53,7 +32,7 @@ public class RemoteModule extends RemoteFolder { monitor.beginTask(Policy.bind("RemoteModule.getRemoteModules"), 100); //$NON-NLS-1$ try { RemoteModule[] modules; - Session s = new Session(repository, (ICVSFolder)CVSWorkspaceRoot.getCVSResourceFor(ResourcesPlugin.getWorkspace().getRoot()), false); + Session s = new Session(repository, getRemoteRootFolder(repository), false); s.open(Policy.subMonitorFor(monitor, 10), false /* read-only */); try { modules = Command.CHECKOUT.getRemoteModules(s, tag, Policy.subMonitorFor(monitor, 90)); @@ -66,7 +45,11 @@ public class RemoteModule extends RemoteFolder { } } - /** + private static ICVSFolder getRemoteRootFolder(ICVSRepositoryLocation repository) { + return new RemoteFolder(null, repository, "/", null); //$NON-NLS-1$ + } + + /** * Create a set of RemoteModules from the provided module definition strings returned from the server * * At the moment, we are very restrictive on the types of modules we support. -- cgit v1.2.3