diff options
author | Michael Valenta | 2003-09-05 20:18:26 +0000 |
---|---|---|
committer | Michael Valenta | 2003-09-05 20:18:26 +0000 |
commit | ad710fca4fd764b909188b117043918eb35ff7f3 (patch) | |
tree | d13489aaf0c553f33e70c69fc0adf224a6eddf44 | |
parent | 565f66b34de819277857caef03eef599a534a199 (diff) | |
download | eclipse.platform.team-ad710fca4fd764b909188b117043918eb35ff7f3.tar.gz eclipse.platform.team-ad710fca4fd764b909188b117043918eb35ff7f3.tar.xz eclipse.platform.team-ad710fca4fd764b909188b117043918eb35ff7f3.zip |
Added code to make working Sets work
2 files changed, 22 insertions, 1 deletions
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 ac50900a2..d641f93c8 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 @@ -27,6 +27,7 @@ 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.operations.FetchMembersOperation; +import org.eclipse.team.internal.ccvs.ui.operations.FetchMembersOperation.RemoteFolderFilter; import org.eclipse.ui.progress.IDeferredWorkbenchAdapter; public class CVSTagElement extends CVSModelElement implements IDeferredWorkbenchAdapter { @@ -103,6 +104,11 @@ public class CVSTagElement extends CVSModelElement implements IDeferredWorkbench RemoteFolder folder = new RemoteFolder(null, root, ICVSRemoteFolder.REPOSITORY_ROOT_FOLDER_NAME, tag); monitor.beginTask(Policy.bind("RemoteFolderElement.fetchingRemoteChildren", root.toString()), 100); //$NON-NLS-1$ FetchMembersOperation operation = new FetchMembersOperation(null, folder, collector); + operation.setFilter(new RemoteFolderFilter() { + public ICVSRemoteResource[] filter(ICVSRemoteFolder[] folders) { + return CVSUIPlugin.getPlugin().getRepositoryManager().filterResources(getWorkingSet(), folders); + } + }); operation.run(Policy.subMonitorFor(monitor, 100)); } catch (InvocationTargetException e) { CVSUIPlugin.log(CVSException.wrapException(e)); diff --git a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java index 3f9e7c531..f245e154e 100644 --- a/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java +++ b/bundles/org.eclipse.team.cvs.ui/src/org/eclipse/team/internal/ccvs/ui/operations/FetchMembersOperation.java @@ -36,6 +36,13 @@ import org.eclipse.team.internal.ccvs.ui.Policy; public class FetchMembersOperation extends RemoteOperation { private IElementCollector collector; + private RemoteFolderFilter filter = new RemoteFolderFilter(); + + public static class RemoteFolderFilter { + public ICVSRemoteResource[] filter(ICVSRemoteFolder[] folders) { + return folders; + } + } public class InternalRemoteFolderMemberFetcher extends RemoteFolderMemberFetcher { int sendIncrement = 100; @@ -68,7 +75,7 @@ public class FetchMembersOperation extends RemoteOperation { } private void sendFolders() { updateParentFolderChildren(); - collector.add((Object[]) unsent.toArray(new Object[unsent.size()]), getProgressMonitor()); + collector.add(filter.filter((ICVSRemoteFolder[]) unsent.toArray(new ICVSRemoteFolder[unsent.size()])), getProgressMonitor()); unsent.clear(); } private void sendFiles() { @@ -129,4 +136,12 @@ public class FetchMembersOperation extends RemoteOperation { return (ICVSRemoteFolder)getRemoteResources()[0]; } + public RemoteFolderFilter getFilter() { + return filter; + } + + public void setFilter(RemoteFolderFilter filter) { + this.filter = filter; + } + } |