Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 106460
Collapse All | Expand All

(-)src/org/eclipse/team/internal/ccvs/ui/tags/TagSource.java (-10 / +10 lines)
Lines 10-20 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.team.internal.ccvs.ui.tags;
11
package org.eclipse.team.internal.ccvs.ui.tags;
12
12
13
import java.util.ArrayList;
13
import java.util.*;
14
import java.util.Arrays;
15
import java.util.HashSet;
16
import java.util.List;
17
import java.util.Set;
18
14
19
import org.eclipse.core.resources.IResource;
15
import org.eclipse.core.resources.IResource;
20
import org.eclipse.core.resources.mapping.ResourceMapping;
16
import org.eclipse.core.resources.mapping.ResourceMapping;
Lines 110-116 Link Here
110
    }
106
    }
111
107
112
    private static ICVSFolder[] getFolders(ICVSResource[] resources) {
108
    private static ICVSFolder[] getFolders(ICVSResource[] resources) {
113
        return new ICVSFolder[] { getFirstFolder(resources) } ;
109
    	HashSet result= new HashSet();
110
    	for (int i= 0; i < resources.length; i++) {
111
    		result.add(getFirstFolder(resources[i]));
112
		}
113
    	return (ICVSFolder[]) result.toArray(new ICVSFolder[result.size()]);
114
    }
114
    }
115
115
116
    /**
116
    /**
Lines 167-177 Link Here
167
        return (ICVSResource[]) cvsResources.toArray(new ICVSResource[cvsResources.size()]);
167
        return (ICVSResource[]) cvsResources.toArray(new ICVSResource[cvsResources.size()]);
168
    }
168
    }
169
169
170
    private static ICVSFolder getFirstFolder(ICVSResource[] resources) {
170
    private static ICVSFolder getFirstFolder(ICVSResource resource) {
171
		if (resources[0].isFolder()) {
171
		if (resource.isFolder()) {
172
			return (ICVSFolder)resources[0];
172
			return (ICVSFolder)resource;
173
		} else {
173
		} else {
174
			return resources[0].getParent();
174
			return resource.getParent();
175
		}
175
		}
176
	}
176
	}
177
	
177
	
(-)src/org/eclipse/team/internal/ccvs/ui/tags/MultiFolderTagSource.java (-2 / +36 lines)
Lines 10-19 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.team.internal.ccvs.ui.tags;
11
package org.eclipse.team.internal.ccvs.ui.tags;
12
12
13
import java.util.*;
14
15
import org.eclipse.core.runtime.IProgressMonitor;
13
import org.eclipse.osgi.util.NLS;
16
import org.eclipse.osgi.util.NLS;
14
import org.eclipse.team.internal.ccvs.core.ICVSFolder;
17
import org.eclipse.team.core.TeamException;
15
import org.eclipse.team.internal.ccvs.core.ICVSResource;
18
import org.eclipse.team.internal.ccvs.core.*;
16
import org.eclipse.team.internal.ccvs.ui.CVSUIMessages;
19
import org.eclipse.team.internal.ccvs.ui.CVSUIMessages;
20
import org.eclipse.team.internal.ccvs.ui.CVSUIPlugin;
17
21
18
/**
22
/**
19
 * A tag source for multiple folders.
23
 * A tag source for multiple folders.
Lines 38-43 Link Here
38
    }
42
    }
39
    
43
    
40
    /* (non-Javadoc)
44
    /* (non-Javadoc)
45
     * @see org.eclipse.team.internal.ccvs.ui.merge.TagSource#getTags(int)
46
     */
47
    public CVSTag[] getTags(int type) {
48
        if (type == CVSTag.HEAD || type == BASE) {
49
            return super.getTags(type);
50
        }
51
        Set tags= new HashSet();
52
        for (int i= 0; i < folders.length; i++) {
53
			tags.addAll(Arrays.asList(getTags(folders[i], type)));
54
		}
55
        return (CVSTag[]) tags.toArray(new CVSTag[tags.size()]);
56
    }
57
    
58
    /* (non-Javadoc)
59
     * @see org.eclipse.team.internal.ccvs.ui.tags.SingleFolderTagSource#refresh(boolean, org.eclipse.core.runtime.IProgressMonitor)
60
     */
61
    public CVSTag[] refresh(boolean bestEffort, IProgressMonitor monitor) throws TeamException {
62
		monitor.beginTask("", folders.length);  //$NON-NLS-1$
63
        Set result= new HashSet();
64
    	for (int i= 0; i < folders.length; i++) {
65
			ICVSFolder folder= folders[i];
66
			CVSTag[] tags = CVSUIPlugin.getPlugin().getRepositoryManager().refreshDefinedTags(folder, bestEffort /* recurse */, true /* notify */, Policy.subMonitorFor(monitor, 1));
67
			result.addAll(Arrays.asList(tags));
68
		}
69
    	monitor.done();
70
        fireChange();
71
        return (CVSTag[]) result.toArray(new CVSTag[result.size()]);
72
    }
73
    
74
    /* (non-Javadoc)
41
     * @see org.eclipse.team.internal.ccvs.ui.tags.SingleFolderTagSource#getCVSResources()
75
     * @see org.eclipse.team.internal.ccvs.ui.tags.SingleFolderTagSource#getCVSResources()
42
     */
76
     */
43
    public ICVSResource[] getCVSResources() {
77
    public ICVSResource[] getCVSResources() {
(-)src/org/eclipse/team/internal/ccvs/ui/operations/ReplaceOperation.java (-5 / +12 lines)
Lines 11-19 Link Here
11
 *******************************************************************************/
11
 *******************************************************************************/
12
package org.eclipse.team.internal.ccvs.ui.operations;
12
package org.eclipse.team.internal.ccvs.ui.operations;
13
13
14
import java.util.ArrayList;
14
import java.util.*;
15
import java.util.List;
16
import java.util.Set;
17
15
18
import org.eclipse.core.resources.*;
16
import org.eclipse.core.resources.*;
19
import org.eclipse.core.resources.mapping.ResourceMapping;
17
import org.eclipse.core.resources.mapping.ResourceMapping;
Lines 27-32 Link Here
27
import org.eclipse.team.internal.ccvs.core.util.PrepareForReplaceVisitor;
25
import org.eclipse.team.internal.ccvs.core.util.PrepareForReplaceVisitor;
28
import org.eclipse.team.internal.ccvs.ui.CVSUIMessages;
26
import org.eclipse.team.internal.ccvs.ui.CVSUIMessages;
29
import org.eclipse.team.internal.ccvs.ui.Policy;
27
import org.eclipse.team.internal.ccvs.ui.Policy;
28
import org.eclipse.team.internal.ccvs.ui.tags.TagSource;
29
import org.eclipse.team.internal.ccvs.ui.tags.TagSourceWorkbenchAdapter;
30
import org.eclipse.ui.IWorkbenchPart;
30
import org.eclipse.ui.IWorkbenchPart;
31
31
32
/**
32
/**
Lines 126-141 Link Here
126
		for (int i = 0; i < resources.length; i++) {
126
		for (int i = 0; i < resources.length; i++) {
127
			ICVSResource resource = resources[i];
127
			ICVSResource resource = resources[i];
128
			if ((resource.isFolder() && ((ICVSFolder)resource).isCVSFolder())) {
128
			if ((resource.isFolder() && ((ICVSFolder)resource).isCVSFolder())) {
129
				managedResources.add(resource);
129
				addResourceIfTagExists(managedResources, resource);
130
			} else if (!resource.isFolder()){
130
			} else if (!resource.isFolder()){
131
				byte[] syncBytes = ((ICVSFile)resource).getSyncBytes();
131
				byte[] syncBytes = ((ICVSFile)resource).getSyncBytes();
132
				if (syncBytes != null && !ResourceSyncInfo.isAddition(syncBytes)) {
132
				if (syncBytes != null && !ResourceSyncInfo.isAddition(syncBytes)) {
133
					managedResources.add(resource);
133
					addResourceIfTagExists(managedResources, resource);
134
				}
134
				}
135
			}
135
			}
136
		}
136
		}
137
		return (ICVSResource[]) managedResources.toArray(new ICVSResource[managedResources.size()]);
137
		return (ICVSResource[]) managedResources.toArray(new ICVSResource[managedResources.size()]);
138
	}
138
	}
139
140
	private void addResourceIfTagExists(List managedResources, ICVSResource resource) {
141
		TagSource tagSource= TagSource.create(new ICVSResource[] { resource });
142
		CVSTag[] tags= tagSource.getTags(TagSource.convertIncludeFlaqsToTagTypes(TagSourceWorkbenchAdapter.INCLUDE_ALL_TAGS));
143
		if (Arrays.asList(tags).contains(getTag()))
144
			managedResources.add(resource);
145
	}
139
	
146
	
140
	/* (non-Javadoc)
147
	/* (non-Javadoc)
141
	 * @see org.eclipse.team.internal.ccvs.ui.operations.UpdateOperation#getUpdateCommand()
148
	 * @see org.eclipse.team.internal.ccvs.ui.operations.UpdateOperation#getUpdateCommand()

Return to bug 106460