Emit upload-finished event when the first message from the node arrives.
[jSite.git] / src / de / todesbaum / jsite / application / ProjectInserter.java
index e0ca446..46cdbd4 100644 (file)
@@ -125,6 +125,17 @@ public class ProjectInserter implements FileScannerListener, Runnable {
        /**
         * Notifies all listeners that the insert has made some progress.
         *
+        * @see InsertListener#projectUploadFinished(Project)
+        */
+       protected void fireProjectUploadFinished() {
+               for (InsertListener insertListener : insertListeners) {
+                       insertListener.projectUploadFinished(project);
+               }
+       }
+
+       /**
+        * Notifies all listeners that the insert has made some progress.
+        *
         * @see InsertListener#projectInsertProgress(Project, int, int, int, int,
         *      boolean)
         * @param succeeded
@@ -394,7 +405,9 @@ public class ProjectInserter implements FileScannerListener, Runnable {
                int edition = project.getEdition();
                String dirURI = "USK@" + project.getInsertURI() + "/" + project.getPath() + "/" + edition + "/";
                ClientPutComplexDir putDir = new ClientPutComplexDir("dir-" + counter++, dirURI);
-               putDir.setDefaultName(project.getIndexFile());
+               if ((project.getIndexFile() != null) && (project.getIndexFile().length() > 0)) {
+                       putDir.setDefaultName(project.getIndexFile());
+               }
                putDir.setVerbosity(Verbosity.ALL);
                putDir.setMaxRetries(-1);
                for (String filename : files) {
@@ -414,6 +427,7 @@ public class ProjectInserter implements FileScannerListener, Runnable {
 
                /* parse progress and success messages */
                String finalURI = null;
+               boolean firstMessage = true;
                boolean success = false;
                boolean finished = false;
                boolean disconnected = false;
@@ -423,6 +437,10 @@ public class ProjectInserter implements FileScannerListener, Runnable {
                        if (debug) {
                                System.out.println(message);
                        }
+                       if (firstMessage) {
+                               fireProjectUploadFinished();
+                               firstMessage = false;
+                       }
                        if (!finished) {
                                @SuppressWarnings("null")
                                String messageName = message.getName();