#5297 Implement monitor feedback, Add corresponding tests
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / model / AbstractUtility.java
index cdfbe19aea59b18123381aefb80ac70734f42dfb..e700d2e3563aab8333e265b65131eb35c793d774 100644 (file)
@@ -66,6 +66,7 @@ import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
 import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.model.common.IEnumTerm;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IFeedbackGenerator;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.taxeditor.operation.RemotingCdmHandler;
@@ -420,7 +421,8 @@ public abstract class AbstractUtility {
             final UUID uuid,
             final int pollInterval,
             final boolean cancelable,
-            final IPostMoniteredOperationEnabled postOp) {
+            final IPostMoniteredOperationEnabled postOp,
+            final IFeedbackGenerator feedbackGenerator) {
 
         try {
             // get the remoting monitor the first time to make sure that the
@@ -439,9 +441,14 @@ public abstract class AbstractUtility {
                     // run the monitor until the operation is finished
                     IRemotingProgressMonitor remotingMonitor;
                     try {
-                        remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor(label, uuid, pollInterval, postOp, monitor);
-                    } catch (InterruptedException ie) {
-                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ie);
+                        remotingMonitor = CdmStore.getProgressMonitorClientManager().pollMonitor(label,
+                                uuid,
+                                pollInterval,
+                                postOp,
+                                feedbackGenerator,
+                                monitor);
+                    } catch (Exception ex) {
+                        return new Status(Status.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Operation Interrupted", ex);
                     }
                     final StringBuilder reportSb = new StringBuilder();
                     // collect reports
@@ -469,15 +476,6 @@ public abstract class AbstractUtility {
                 }
             };
 
-//            job.addJobChangeListener(new JobChangeAdapter() {
-//                @Override
-//                public void done(IJobChangeEvent event) {
-//                    if(event.getJob().) {
-//                        logger.warn("in jobc change listener");
-//                    }
-//                }
-//            });
-
             // configure the job
             job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
             job.setUser(true);