Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2014-07-21 09:08:48 +0000
committerEike Stepper2014-07-21 09:08:48 +0000
commit1dc6f20f2a07d6a5e495bf07c506678c558f6fe3 (patch)
tree4d7c8cf250eebeaa4effd22419a07562fa365bef /plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal
parent9f18d51b9c9bec94389c39181a25d182dd4bbb00 (diff)
downloadorg.eclipse.oomph-1dc6f20f2a07d6a5e495bf07c506678c558f6fe3.tar.gz
org.eclipse.oomph-1dc6f20f2a07d6a5e495bf07c506678c558f6fe3.tar.xz
org.eclipse.oomph-1dc6f20f2a07d6a5e495bf07c506678c558f6fe3.zip
[435610] Enhance progress monitoring in BasicProjectAnalyzer
Diffstat (limited to 'plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal')
-rw-r--r--plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/BasicProjectAnalyzer.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/BasicProjectAnalyzer.java b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/BasicProjectAnalyzer.java
index 01a9de983..95a0cc0b7 100644
--- a/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/BasicProjectAnalyzer.java
+++ b/plugins/org.eclipse.oomph.targlets.core/src/org/eclipse/oomph/targlets/internal/core/BasicProjectAnalyzer.java
@@ -21,6 +21,7 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.SubMonitor;
import java.io.File;
import java.util.HashMap;
@@ -62,6 +63,8 @@ public class BasicProjectAnalyzer<T>
throw new OperationCanceledException();
}
+ SubMonitor progress = SubMonitor.convert(monitor, 10);
+
IProject project = ResourcesFactory.eINSTANCE.loadProject(folder);
if (ResourcesUtil.matchesPredicates(project, predicates))
{
@@ -112,15 +115,25 @@ public class BasicProjectAnalyzer<T>
{
log(folder, ex);
}
+
+ progress.worked(1);
}
else if (!locateNestedProjects && project != null)
{
+ progress.worked(10);
return;
}
+ analyzeRecursive(folder, predicates, locateNestedProjects, results, visitor, progress.newChild(9));
+ }
+
+ private void analyzeRecursive(File folder, EList<Predicate> predicates, boolean locateNestedProjects, Map<T, File> results, ProjectVisitor<T> visitor,
+ IProgressMonitor monitor)
+ {
File[] listFiles = folder.listFiles();
if (listFiles != null)
{
+ SubMonitor progress = SubMonitor.convert(monitor, listFiles.length);
for (int i = 0; i < listFiles.length; i++)
{
File file = listFiles[i];
@@ -128,13 +141,17 @@ public class BasicProjectAnalyzer<T>
{
try
{
- analyze(file, predicates, locateNestedProjects, results, visitor, monitor);
+ analyze(file, predicates, locateNestedProjects, results, visitor, progress.newChild(1));
}
catch (Exception ex)
{
log(file, ex);
}
}
+ else
+ {
+ progress.worked(1);
+ }
}
}
}

Back to the top