} else {
AbstractUtility.executeOperation(operation, target.getContext().get(UISynchronize.class));
}
- target.getEditor().getConversationHolder().commit();
- if (!target.equals(EventUtility.getTaxonEditor())){
- ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).redraw();
- ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).getConversationHolder().commit();
-
- }
+// target.getEditor().getConversationHolder().commit();
+
+// if (!target.getEditor().equals(EventUtility.getTaxonEditor())){
+// EditorUtil.updateEditor(target.getEditor().getTaxonNode(), target.getEditor());
+// if (taxonBase instanceof Synonym){
+// Synonym syn = (Synonym)taxonBase;
+// EditorUtil.updateEditor(((Synonym) taxonBase).getAcceptedTaxon());
+// }
+// // ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).redraw();
+// ((TaxonNameEditorE4)EventUtility.getTaxonEditor()).getConversationHolder().commit();
+//
+// }
// target.getEditor().redraw();
// target.getEditor().getContainer(taxonBase).setFocus();
if(target instanceof AbstractHomotypicalGroupContainerE4){
HomotypicalGroup homotypicalGroup = ((AbstractHomotypicalGroupContainerE4) target).getGroup();
+ if (((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon().equals(synonym.getAcceptedTaxon())){
+ //the actual accepted taxon is the same as the taxon of the target editor
+ try{
+ return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
+ ((AbstractHomotypicalGroupContainerE4) target).getEditor().getTaxon(), synonym, homotypicalGroup, target);
+ }catch (NullPointerException e){
+ return null;
+ }
+ } else{
+ getEditor().getConversationHolder().commit();
+ ((TaxonNameEditorE4) target).getConversationHolder().commit();
+
+ return new MoveSynonymToAnotherAcceptedTaxonOperationE4(Messages.NameEditorDropTargetListener_CHANGE_ACC_TAXON, getEditor().getUndoContext(), synonym.getUuid(), ((TaxonNameEditorE4) target).getTaxon(), (TaxonNameEditorE4) target, (TaxonNameEditorE4) target);
+
+ }
- return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
- getEditor().getTaxon(), synonym, homotypicalGroup, target);
}
else if(target instanceof MisappliedGroupE4){
return new ChangeSynonymToMisapplicationOperation(Messages.NameEditorDropTargetListener_CHANGE_SYNONYM_TO_MISAPP, getEditor().getUndoContext(),
getEditor().getTaxon(), synonym, target);
}
else if(target instanceof TaxonNameEditorE4){
- if (target.equals(getEditor())){
+ if (((TaxonNameEditorE4) target).getTaxon().equals(synonym.getAcceptedTaxon())){
return new ChangeHomotypicGroupOperation(Messages.NameEditorDropTargetListener_CHANGE_HOMOTYPICAL_GROUP, getEditor().getUndoContext(),
- getEditor().getTaxon(), synonym, null, target);
+ ((TaxonNameEditorE4) target).getTaxon(), synonym, null, target);
} else{
getEditor().getConversationHolder().commit();
((TaxonNameEditorE4) target).getConversationHolder().commit();