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
@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
}\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