#823
[taxeditor.git] / taxeditor-store / src / main / java / eu / etaxonomy / taxeditor / operations / DeleteDescriptionElementOperation.java
index 1f3bdbe9704aff5c141ac04de5aeacc84e35849b..ed59f06aa4c814949b4e6821c6b86889c65c79f5 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IStatus;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.taxeditor.store.StoreUtil;\r
 \r
 /**\r
  * @author p.ciardelli\r
@@ -46,24 +47,41 @@ public class DeleteDescriptionElementOperation extends AbstractPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
                        throws ExecutionException {\r
                                \r
-               // Find description to which element belongs\r
-               for (TaxonDescription descr : taxon.getDescriptions()) {\r
-                       for (DescriptionElementBase elem : descr.getElements()) {\r
-                               if (elem.equals(element)) {\r
-                                       description = descr;\r
-                                       break;\r
+               // Start the main progress monitor.\r
+        IProgressMonitor newMonitor = StoreUtil.startMainMonitor(monitor,"Deleting Description Element", 3);\r
+        \r
+        // Do one step\r
+        newMonitor.worked(1);\r
+\r
+        try {\r
+               // Operation steps\r
+       \r
+                       // Find description to which element belongs\r
+                       for (TaxonDescription descr : taxon.getDescriptions()) {\r
+                               for (DescriptionElementBase elem : descr.getElements()) {\r
+                                       if (elem.equals(element)) {\r
+                                               description = descr;\r
+                                               break;\r
+                                       }\r
                                }\r
                        }\r
-               }\r
-               \r
-               // Remove element from description\r
-               if (description == null) {\r
-                       logger.error("Couldn't find element's description!");\r
-               } else {\r
-                       description.removeElement(element);\r
-               }\r
-               \r
-               // Redraw editor if exists\r
+                       StoreUtil.isCanceled(newMonitor, 1);\r
+                       \r
+                       // Remove element from description\r
+                       if (description == null) {\r
+                               logger.error("Couldn't find element's description!");\r
+                       } else {\r
+                               description.removeElement(element);\r
+                       }\r
+                       StoreUtil.isCanceled(newMonitor, 1);\r
+        }\r
+        finally {\r
+               \r
+               // Stop the progress monitor.\r
+            newMonitor.done();\r
+        }\r
+\r
+        // Redraw editor if exists\r
                return postExecute(null);\r
        }\r
 \r