* the file to scan
*/
public void addFileToScan(final String fileName) {
- if (!fParentFiles.containsKey(fileName)) {
- fParentFiles.put(fileName, new HashSet<String>());
- startUpdateTask(Messages.BatchImportTraceWizardAdd + ' ' + fileName, fileName);
+ String absolutePath = new File(fileName).getAbsolutePath();
+ if (!fParentFiles.containsKey(absolutePath)) {
+ fParentFiles.put(absolutePath, new HashSet<String>());
+ startUpdateTask(Messages.BatchImportTraceWizardAdd + ' ' + absolutePath, absolutePath);
}
startUpdateTask(Messages.BatchImportTraceWizardRemove + ' ' + fileName, null);
}
- private void startUpdateTask(final String taskName, final String fileName) {
+ private void startUpdateTask(final String taskName, final String fileAbsolutePath) {
try {
this.getContainer().run(true, true, new IRunnableWithProgress() {
sm = SubMonitor.convert(monitor);
sm.setTaskName(taskName);
sm.setWorkRemaining(TOTALWORK);
- updateFiles(sm, fileName);
+ updateFiles(sm, fileAbsolutePath);
sm.done();
}
}
/*
* I am a job. Make me work
*/
- private synchronized IStatus updateFiles(IProgressMonitor monitor, String traceToScan) {
+ private synchronized IStatus updateFiles(IProgressMonitor monitor, String traceToScanAbsPath) {
final Set<String> filesToScan = new TreeSet<String>();
int workToDo = 1;
final Set<String> parentFilesToScan = fParentFiles.get(fileToAdd.getAbsolutePath());
recurse(parentFilesToScan, fileToAdd, monitor, step);
if (monitor.isCanceled()) {
- fParentFilesToScan.remove(traceToScan);
- fParentFiles.remove(traceToScan);
+ fParentFilesToScan.remove(traceToScanAbsPath);
+ fParentFiles.remove(traceToScanAbsPath);
return CANCEL_STATUS;
}
}
}
IStatus cancelled = updateScanQueue(monitor, filesToScan, fTraceTypesToScan);
if (cancelled.matches(IStatus.CANCEL)) {
- fParentFilesToScan.remove(traceToScan);
- fParentFiles.remove(traceToScan);
+ fParentFilesToScan.remove(traceToScanAbsPath);
+ fParentFiles.remove(traceToScanAbsPath);
}
} catch (InterruptedException e) {
monitor.done();