Lines 43-54
Link Here
|
43 |
*/ |
43 |
*/ |
44 |
package org.netbeans.modules.versioning.core.api; |
44 |
package org.netbeans.modules.versioning.core.api; |
45 |
|
45 |
|
46 |
import org.netbeans.modules.versioning.core.VersioningManager; |
46 |
import java.io.File; |
47 |
|
47 |
import java.util.HashMap; |
|
|
48 |
import java.util.HashSet; |
49 |
import java.util.Map; |
50 |
import java.util.Set; |
48 |
import java.util.prefs.Preferences; |
51 |
import java.util.prefs.Preferences; |
49 |
import org.netbeans.modules.versioning.core.*; |
52 |
import org.netbeans.modules.versioning.core.*; |
|
|
53 |
import org.netbeans.modules.versioning.core.filesystems.VCSFileProxyOperations; |
50 |
import org.netbeans.modules.versioning.core.spi.VersioningSystem; |
54 |
import org.netbeans.modules.versioning.core.spi.VersioningSystem; |
51 |
import org.netbeans.modules.versioning.core.util.VCSSystemProvider; |
55 |
import org.netbeans.modules.versioning.core.util.VCSSystemProvider; |
|
|
56 |
import org.openide.filesystems.FileUtil; |
52 |
|
57 |
|
53 |
/** |
58 |
/** |
54 |
* Collection of utility methods for Versioning systems implementors. |
59 |
* Collection of utility methods for Versioning systems implementors. |
Lines 146-149
Link Here
|
146 |
return file.createProcessBuilder(); |
151 |
return file.createProcessBuilder(); |
147 |
} |
152 |
} |
148 |
|
153 |
|
|
|
154 |
/** |
155 |
* Refreshes all necessary filesystems. Not all instances of <code>FileObject</code> are refreshed |
156 |
* but just those that represent passed <code>files</code> and their children recursively. |
157 |
* |
158 |
* @param files |
159 |
*/ |
160 |
public static void refreshFor(VCSFileProxy[] files) { |
161 |
Set<File> fileList = new HashSet<File>(); |
162 |
Map<VCSFileProxyOperations, Set<VCSFileProxy>> proxyMap = new HashMap<VCSFileProxyOperations, Set<VCSFileProxy>>(); |
163 |
for(VCSFileProxy file : files) { |
164 |
File javaFile = file.toFile(); |
165 |
if (javaFile != null) { |
166 |
fileList.add(javaFile); |
167 |
} else { |
168 |
VCSFileProxyOperations fileProxyOperations = file.getFileProxyOperations(); |
169 |
if (fileProxyOperations != null) { |
170 |
Set<VCSFileProxy> set = proxyMap.get(fileProxyOperations); |
171 |
if (set == null) { |
172 |
set = new HashSet<VCSFileProxy>(); |
173 |
} |
174 |
set.add(file); |
175 |
} |
176 |
} |
177 |
} |
178 |
if (fileList.size() > 0) { |
179 |
FileUtil.refreshFor(fileList.toArray(new File[fileList.size()])); |
180 |
} |
181 |
for (Map.Entry<VCSFileProxyOperations, Set<VCSFileProxy>> e : proxyMap.entrySet()) { |
182 |
VCSFileProxyOperations fileProxyOperations = e.getKey(); |
183 |
fileProxyOperations.refreshFor(e.getValue().toArray(new VCSFileProxy[fileList.size()])); |
184 |
} |
185 |
} |
149 |
} |
186 |
} |