factual data for bulkeditor, improving referencing objects view, make delete in bulke...
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / handler / DeleteHandler.java
index 8f87f7d2ba2b6841160c07d859a7fca309870b06..95c415566bf6b265b617ef22556c62642e832341 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.texteditor.IDocumentProvider;
 import org.eclipse.ui.IWorkbenchPage;
@@ -33,6 +34,7 @@ import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
 import eu.etaxonomy.cdm.model.common.Group;
 import eu.etaxonomy.cdm.model.common.User;
@@ -56,6 +58,7 @@ import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
+
 /**
  * @author n.hoffmann
  * @created Mar 11, 2011
@@ -87,6 +90,11 @@ public class DeleteHandler extends AbstractHandler {
                                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                                
                                IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
+                                IViewPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+                                                   .findView("eu.etaxonomy.taxeditor.bulkeditor.view.referencingobjects");
+                                   if (part != null){
+                                               ((ReferencingObjectsView)part).dispose();
+                                       }
                                
                                for(Object object : structuredSelection.toList()){
                                        
@@ -116,8 +124,10 @@ public class DeleteHandler extends AbstractHandler {
                                                        result = service.delete((User) object);
                                                } else if (object instanceof TaxonNameBase){
                                                        INameService service = controller.getNameService();
-                                                       service.load(((TaxonNameBase) object).getUuid());
-                                                       result = service.delete((TaxonNameBase)object);
+                                                       TaxonNameBase name = service.load(((TaxonNameBase) object).getUuid());
+                                                       NameDeletionConfigurator config = new NameDeletionConfigurator();
+                                                       
+                                                       result = service.delete(name, config);
                                                } else if (object instanceof TaxonBase){
                                                        ITaxonService service = controller.getTaxonService();
                                                        service.load(((TaxonBase) object).getUuid());
@@ -134,7 +144,7 @@ public class DeleteHandler extends AbstractHandler {
                                        } catch (Exception e){
                                                MessagingUtils.messageDialog("Exception occured. Could not delete", getClass(), e.getMessage(), null);
                                        }
-                                       if (result.isError() || !result.getExceptions().isEmpty()){
+                                       if (result.isError() || result.isAbort()|| !result.getExceptions().isEmpty()){
                                                if (!result.getExceptions().isEmpty()) {
                                                        MessagingUtils.messageDialog("Could not delete", getClass(), result.getExceptions().get(0).getMessage(), null);
                                                }else{
@@ -144,8 +154,17 @@ public class DeleteHandler extends AbstractHandler {
                                        }
                                        if (result.isOk() && result.getExceptions().isEmpty()){
                                                ((BulkEditor) editor).removeAnnotatedLine(annotation);
+                                               
 
                                        }
+                                       if (part != null){
+                                               ((ReferencingObjectsView)part).refresh();
+                                       }
+                                       part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
+                                                   .findView("eu.etaxonomy.taxeditor.editor.view.descriptive");
+                                   if (part != null){
+                                               //((DescriptiveViewPart)part).dispose();
+                                       }
                                }                               
                        }
                }else{