NameFactsDataView_Lable=Name Facts
DeleteDescriptiveDatasetHandler_Exception_Message=Descriptive Dataset could not be deleted.
DeleteDescriptiveDatasetHandler_Warning_Message=Deletion was successful but with warnings.
-ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=Select secundum reference
-ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title=The secundum reference of the selected parent is different to the secundum of the synonym. Please select which secundum should be used for the accepted taxon.
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title=Select secundum reference
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=The secundum reference of the selected parent is different to the secundum of the synonym. Please select which secundum should be used for the accepted taxon.
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent=Parent secundum
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select=Select new
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep=Keep secundum
-ChangeSynonymToAcceptedHandler_Different_Publish_Flag=The selected parent taxon and the new taxon have different pubish flags. Maybe one of them should be adapted.
\ No newline at end of file
+ChangeSynonymToAcceptedHandler_Different_Publish_Flag=The selected parent taxon and the new taxon have different pubish flags. Maybe one of them should be adapted.
+MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message= Secundum reference of synonym and new accepted taxon are different. Please select the reference used as secundum.
\ No newline at end of file
DeleteDescriptiveDatasetHandler_Warning_Message=Das Löschen war erfolgreich, es gibt aber Warnungen.
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=Auswahl der Sekundum Referenz
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title=Die Sekundum Referenzen des gewählten Eltern und des alten akzeptierten Taxons unterscheiden sich, bitte wählen Sie welche Sekundum Referenz für das neue Synonym verwendet werden soll
-ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent=Eltern Secundum
+ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent=Eltern Sekundum
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select=Neue auswählen
ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep=Secundum beibehalten
-ChangeSynonymToAcceptedHandler_Different_Publish_Flag=Das gewählte Elterntaxon und das neue Taxon haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
\ No newline at end of file
+ChangeSynonymToAcceptedHandler_Different_Publish_Flag=Das gewählte Elterntaxon und das neue Taxon haben unterschiedliche Publikationsstatus. Eventuell sollten sie angepasst werden.
+MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message=Die Sekundum Referenz des Synonyms und des neuen akzeptierten Taxons unterscheiden sich, bitte wählen Sie, welche Referenz verwendet werden soll.
\ No newline at end of file
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
+import eu.etaxonomy.cdm.model.metadata.SecReferenceHandlingEnum;
+import eu.etaxonomy.cdm.model.reference.Reference;
import eu.etaxonomy.cdm.model.taxon.Synonym;
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
import eu.etaxonomy.taxeditor.editor.EditorUtil;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.ui.dialog.selection.ReferenceSelectionDialog;
import eu.etaxonomy.taxeditor.ui.dialog.selection.TaxonNodeSelectionDialog;
public class MoveSynonymToAnotherAcceptedTaxonHandlerE4 implements IPostOperationEnabled{
newParentNode = TaxonNodeSelectionDialog.select(shell, Messages.MoveSynonymToAnotherAcceptedTaxonHandler_SELECT_ACC_TAXON, excludeTaxa, input.getTaxonNode(), input.getTaxonNode().getClassification().getUuid());
+ SecReferenceHandlingEnum secHandling = PreferencesUtil.getSecReferenceHandlingPreference();
+ UUID newSecUuid = null;
+
+ Reference synSecRef = synonym.getSec();
+ Reference parentSecRef = newParentNode.getTaxon() != null? newParentNode.getTaxon().getSec():null;
+ if ((synSecRef != parentSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+
+ if ((parentSecRef != synSecRef && secHandling.equals(SecReferenceHandlingEnum.KeepWhenSame) )|| secHandling.equals(SecReferenceHandlingEnum.WarningSelect)){
+ int result = MessagingUtils.confirmDialog(Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Handling_title, Messages.MoveSynonymToAcceptedHandler_Select_Sec_Reference_Handling_message,
+ new String[]{Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Keep, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Parent, Messages.ChangeSynonymToAcceptedHandler_Select_Sec_Reference_Select});
+ if (result == 2){
+ Reference sec = ReferenceSelectionDialog.select(shell, null);
+ newSecUuid = sec != null? sec.getUuid(): null;
+ }else if (result == 1){
+ newSecUuid = parentSecRef != null? parentSecRef.getUuid(): null;
+ }else if (result == 0){
+ newSecUuid = synSecRef != null? synSecRef.getUuid(): null;
+ }else{
+ return ;
+ }
+
+ }
+ }
if (synonym.isPublish() != newParentNode.getTaxon().isPublish()){
MessagingUtils.warningDialog("Publish flag", this,Messages.ChangeSynonymToAcceptedHandler_Different_Publish_Flag);
}