]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/NormalizeDistribution.java
Improve job progress bar
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / commands / NormalizeDistribution.java
index a1809518fe9ccbd4198cfab74fab441c8b10cb44..0a16e4dc533848f90d6c2d6e88f0de4f18c568c6 100644 (file)
@@ -21,6 +21,8 @@ import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryResult;
 import javax.jcr.util.TraversingItemVisitor;
 
 import org.apache.commons.logging.Log;
@@ -96,8 +98,17 @@ public class NormalizeDistribution extends AbstractHandler implements SlcNames {
                                // log.debug("Count: " + count);
                                // long count = query.execute().getRows().nextRow()
                                // .getValue("count").getLong();
+                               Query countQuery = session
+                                               .getWorkspace()
+                                               .getQueryManager()
+                                               .createQuery("select file from [nt:file] as file",
+                                                               Query.JCR_SQL2);
+                               QueryResult result = countQuery.execute();
+                               Long expectedCount = result.getNodes().getSize();
+
                                monitor.beginTask("Normalize "
-                                               + session.getWorkspace().getName(), -1);
+                                               + session.getWorkspace().getName(),
+                                               expectedCount.intValue());
                                NormalizingTraverser tiv = new NormalizingTraverser(monitor);
                                session.getNode(artifactBasePath).accept(tiv);
                        } catch (Exception e) {