This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 207435
Collapse All | Expand All

(-)a/dlight.remote.impl/src/org/netbeans/modules/remote/impl/fileoperations/spi/FileOperationsProvider.java (+28 lines)
Lines 42-47 Link Here
42
package org.netbeans.modules.remote.impl.fileoperations.spi;
42
package org.netbeans.modules.remote.impl.fileoperations.spi;
43
43
44
import java.io.IOException;
44
import java.io.IOException;
45
import java.util.ArrayList;
45
import java.util.List;
46
import java.util.List;
46
import java.util.Map;
47
import java.util.Map;
47
import java.util.concurrent.ExecutionException;
48
import java.util.concurrent.ExecutionException;
Lines 56-61 Link Here
56
import org.netbeans.modules.remote.impl.fs.RemoteFileObjectBase;
57
import org.netbeans.modules.remote.impl.fs.RemoteFileObjectBase;
57
import org.netbeans.modules.remote.impl.fs.RemoteFileSystem;
58
import org.netbeans.modules.remote.impl.fs.RemoteFileSystem;
58
import org.netbeans.modules.remote.impl.fs.RemoteFileSystemManager;
59
import org.netbeans.modules.remote.impl.fs.RemoteFileSystemManager;
60
import org.netbeans.modules.remote.spi.FileSystemProvider;
59
import org.netbeans.spi.extexecution.ProcessBuilderFactory;
61
import org.netbeans.spi.extexecution.ProcessBuilderFactory;
60
import org.netbeans.spi.extexecution.ProcessBuilderImplementation;
62
import org.netbeans.spi.extexecution.ProcessBuilderImplementation;
61
import org.openide.filesystems.FileObject;
63
import org.openide.filesystems.FileObject;
Lines 278-283 Link Here
278
        protected ProcessBuilder createProcessBuilder(FileProxyO file) {
280
        protected ProcessBuilder createProcessBuilder(FileProxyO file) {
279
            return ProcessBuilderFactory.createProcessBuilder(new ProcessBuilderImplementationImpl(env), "RFS Process Builder"); // NOI18N
281
            return ProcessBuilderFactory.createProcessBuilder(new ProcessBuilderImplementationImpl(env), "RFS Process Builder"); // NOI18N
280
        }
282
        }
283
        
284
        protected void refreshFor(FileProxyO ... files) {
285
            List<String> paths = new ArrayList<String>();
286
            for(FileProxyO f : files) {
287
                String path = findExistingParent(f.getPath());
288
                if (path != null) {
289
                    paths.add(path);
290
                }
291
            }
292
            FileSystemProvider.scheduleRefresh(env, paths);
293
            // TODO wait finishing
294
        }
295
        
296
        private String findExistingParent(String path) {
297
            while(true) {
298
                RemoteFileObjectBase fo = RemoteFileSystemManager.getInstance().getFileSystem(env).findResource(path);
299
                if (fo != null) {
300
                    break;
301
                }
302
                path = PathUtilities.getDirName(path);
303
                if (path == null) {
304
                    return null;
305
                }
306
            }
307
            return path;
308
        }
281
309
282
        private ExecutionEnvironment getExecutionEnvironment() {
310
        private ExecutionEnvironment getExecutionEnvironment() {
283
            return env;
311
            return env;
(-)a/remotefs.versioning/src/org/netbeans/modules/remotefs/versioning/spi/FileProxyProviderImpl.java (-1 / +13 lines)
Lines 41-47 Link Here
41
 */
41
 */
42
package org.netbeans.modules.remotefs.versioning.spi;
42
package org.netbeans.modules.remotefs.versioning.spi;
43
43
44
import java.util.ArrayList;
44
import java.util.HashMap;
45
import java.util.HashMap;
46
import java.util.List;
45
import java.util.Map;
47
import java.util.Map;
46
import java.util.logging.Level;
48
import java.util.logging.Level;
47
import java.util.logging.Logger;
49
import java.util.logging.Logger;
Lines 181-187 Link Here
181
            softEDTAssert();
183
            softEDTAssert();
182
            return createProcessBuilder(toFileProxy(file));
184
            return createProcessBuilder(toFileProxy(file));
183
        }
185
        }
184
        
186
187
        @Override
188
        public void refreshFor(VCSFileProxy... files) {
189
            List<FileProxyO> list = new ArrayList<FileProxyO>();
190
            for(VCSFileProxy f : files) {
191
                list.add(toFileProxy(f));
192
            }
193
            refreshFor(list.toArray(new FileProxyO[list.size()]));
194
        }
195
185
        private void softEDTAssert() {
196
        private void softEDTAssert() {
186
            if (assertIt) {
197
            if (assertIt) {
187
                if (SwingUtilities.isEventDispatchThread()) {
198
                if (SwingUtilities.isEventDispatchThread()) {
Lines 189-194 Link Here
189
                }
200
                }
190
            }
201
            }
191
        }
202
        }
203
192
    }
204
    }
193
205
194
    private static FileProxyO toFileProxy(final VCSFileProxy file) {
206
    private static FileProxyO toFileProxy(final VCSFileProxy file) {
(-)a/versioning.core/src/org/netbeans/modules/versioning/core/api/VCSFileProxy.java (-1 / +5 lines)
Lines 41-53 Link Here
41
 */
41
 */
42
package org.netbeans.modules.versioning.core.api;
42
package org.netbeans.modules.versioning.core.api;
43
43
44
import org.netbeans.modules.versioning.core.filesystems.VCSFileProxyOperations;
45
import java.io.File;
44
import java.io.File;
46
import java.util.logging.Level;
45
import java.util.logging.Level;
47
import java.util.logging.Logger;
46
import java.util.logging.Logger;
48
import org.netbeans.api.extexecution.ProcessBuilder;
47
import org.netbeans.api.extexecution.ProcessBuilder;
49
import org.netbeans.modules.versioning.core.APIAccessor;
48
import org.netbeans.modules.versioning.core.APIAccessor;
50
import org.netbeans.modules.versioning.core.FlatFolder;
49
import org.netbeans.modules.versioning.core.FlatFolder;
50
import org.netbeans.modules.versioning.core.filesystems.VCSFileProxyOperations;
51
import org.openide.filesystems.FileObject;
51
import org.openide.filesystems.FileObject;
52
import org.openide.filesystems.FileStateInvalidException;
52
import org.openide.filesystems.FileStateInvalidException;
53
import org.openide.filesystems.FileSystem;
53
import org.openide.filesystems.FileSystem;
Lines 381-384 Link Here
381
            return proxy.createProcessBuilder(this);
381
            return proxy.createProcessBuilder(this);
382
        }
382
        }
383
    }
383
    }
384
385
    VCSFileProxyOperations getFileProxyOperations() {
386
         return proxy;
387
    }
384
}
388
}
(-)a/versioning.core/src/org/netbeans/modules/versioning/core/api/VersioningSupport.java (-2 / +38 lines)
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
     * Refresh files
156
     * 
157
     * @param files 
158
     */
159
    public static void refreshFor(VCSFileProxy[] files) {
160
        Set<File> fileList = new HashSet<File>();
161
        Map<VCSFileProxyOperations, Set<VCSFileProxy>> proxyMap = new HashMap<VCSFileProxyOperations, Set<VCSFileProxy>>();
162
        for(VCSFileProxy file : files) {
163
            File javaFile = file.toFile();
164
            if (javaFile != null) {
165
                fileList.add(javaFile);
166
            } else {
167
                VCSFileProxyOperations fileProxyOperations = file.getFileProxyOperations();
168
                if (fileProxyOperations != null) {
169
                    Set<VCSFileProxy> set = proxyMap.get(fileProxyOperations);
170
                    if (set == null) {
171
                        set = new HashSet<VCSFileProxy>();
172
                    }
173
                    set.add(file);
174
                }
175
            }
176
        }
177
        if (fileList.size() > 0) {
178
            FileUtil.refreshFor(fileList.toArray(new File[fileList.size()])); 
179
        }
180
        for (Map.Entry<VCSFileProxyOperations, Set<VCSFileProxy>> e : proxyMap.entrySet()) {
181
            VCSFileProxyOperations fileProxyOperations = e.getKey();
182
            fileProxyOperations.refreshFor(e.getValue().toArray(new VCSFileProxy[fileList.size()]));
183
        }
184
    }
149
}
185
}
(-)a/versioning.core/src/org/netbeans/modules/versioning/core/filesystems/VCSFileProxyOperations.java (+2 lines)
Lines 76-79 Link Here
76
    VCSFileProxy[] list(VCSFileProxy file);
76
    VCSFileProxy[] list(VCSFileProxy file);
77
    
77
    
78
    ProcessBuilder createProcessBuilder(VCSFileProxy file);
78
    ProcessBuilder createProcessBuilder(VCSFileProxy file);
79
80
    void refreshFor(VCSFileProxy ... files);
79
}
81
}

Return to bug 207435