Merge branch 'LibrAlign' of https://dev.e-taxonomy.eu/git/taxeditor into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.bulkeditor / src / main / java / eu / etaxonomy / taxeditor / bulkeditor / handler / ConvertPerson2TeamHandler.java
index ee587aaa601eb440f9336f4fc9c8ec959bee1d50..ed211575e3dc59efd5b18337805ad3ec83e7fb73 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.texteditor.IDocumentProvider;\r
 \r
 import eu.etaxonomy.cdm.api.service.IAgentService;\r
+import eu.etaxonomy.cdm.api.service.UpdateResult;\r
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
 import eu.etaxonomy.cdm.model.agent.Person;\r
 import eu.etaxonomy.cdm.model.agent.Team;\r
@@ -46,9 +47,9 @@ public class ConvertPerson2TeamHandler extends AbstractHandler {
        @Override\r
        public Object execute(ExecutionEvent event) throws ExecutionException {\r
                ISelection selection = HandlerUtil.getCurrentSelection(event);\r
-               \r
+\r
                IEditorPart editor = HandlerUtil.getActiveEditor(event);\r
-               \r
+\r
                IEditorInput input = editor.getEditorInput();\r
                if (editor.isDirty()){\r
                        boolean proceed = MessageDialog.openQuestion(null,\r
@@ -60,34 +61,37 @@ public class ConvertPerson2TeamHandler extends AbstractHandler {
                        }\r
                }\r
                if((input instanceof IEntityPersistenceService) && (selection instanceof IStructuredSelection)){\r
-                       \r
-                       \r
+\r
+\r
                        IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();\r
-                       LineAnnotationModel model = \r
+                       LineAnnotationModel model =\r
                                        (LineAnnotationModel) provider.getAnnotationModel(input);\r
-                       \r
-                       \r
+\r
+\r
                        IStructuredSelection structuredSelection = (IStructuredSelection) selection;\r
-                       \r
+\r
                        IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;\r
-               \r
+\r
                        Team team ;\r
                        for(Object object : structuredSelection.toList()){\r
                                LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);\r
-                               team = null;\r
+                               UpdateResult result = null;\r
+                               team  = null;\r
                                if (object instanceof Person){\r
                                        Person person = HibernateProxyHelper.deproxy(object, Person.class);\r
                                        try {\r
-                                               team = CdmStore.getService(IAgentService.class).convertPerson2Team(person);\r
+                                           result = CdmStore.getService(IAgentService.class).convertPerson2Team(person.getUuid());\r
                                        } catch (IllegalArgumentException e) {\r
                                                MessagingUtils.errorDialog("Can not convert Person into a Team", null, e.getLocalizedMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID,e, true);\r
                                        } catch (MergeException e) {\r
-                                               MessagingUtils.errorDialog("Can not convert Person into a Team", null, e.getMessage(), TaxeditorBulkeditorPlugin.PLUGIN_ID,e, true);\r
+                                               MessagingUtils.informationDialog("Convert not possible", "Person can not be transformed into team as it is already part of a team.");\r
                                        }\r
                                }else{\r
                                        MessagingUtils.informationDialog("Can not convert Person into a Team", "convert Person to Team can only be called on a person.");\r
                                }\r
-                               \r
+                               if (result != null &&result.isOk()){\r
+                                   team = (Team)result.getCdmEntity();\r
+                               }\r
                                if (team != null){\r
                                        ((BulkEditor) editor).removeAnnotatedLine(annotation);\r
                                        ((BulkEditor) editor).createAnnotatedLine(team);\r