]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/actions/Copy.java
Add progress monitoring for copying resources on desktop
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / actions / Copy.java
index 27d6d6bd6c0f8e472031af392bf36ffb1428360c..407e1ec694345e0b135a6192f5f60585a59e96fa 100644 (file)
@@ -4,6 +4,10 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.simantics.db.Resource;
 import org.simantics.db.layer0.adapter.ActionFactory;
 import org.simantics.db.layer0.adapter.ActionFactory2;
@@ -26,14 +30,17 @@ public class Copy implements ActionFactory, ActionFactory2 {
                                return null;
                        resources.add((Resource)o);
                }
-        
-        return new Runnable() {
-            @Override
-            public void run() {
-               
-               StandardCopyHandler.copyResourcesToClipboard(resources.toArray(new Resource[resources.size()]), null);
-               
-            }
+        return () -> {
+            Job job = new Job("Copy") {
+
+                @Override
+                protected IStatus run(IProgressMonitor monitor) {
+                    StandardCopyHandler.copyResourcesToClipboard(resources.toArray(new Resource[resources.size()]), null, monitor);
+                    return Status.OK_STATUS;
+                }
+            };
+            job.setUser(true);
+            job.schedule();
         };
     }