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
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