From: Katja Luther Date: Thu, 4 Feb 2016 12:45:09 +0000 (+0100) Subject: do not provide menu item change synonym to accepted taxon for homotyp. synonym of... X-Git-Tag: 4.0.0^2~161 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/5280b4d96650cf7fccae82c7ab6bd5aa386d6abc do not provide menu item change synonym to accepted taxon for homotyp. synonym of accepted taxon and fix new taxonNode creation --- diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java index c6a9a0cd8..5d5f449d2 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/ChangeSynonymToAcceptedTaxonHandler.java @@ -89,9 +89,9 @@ public class ChangeSynonymToAcceptedTaxonHandler extends AbstractHandler impleme TaxonNode parentNode = (TaxonNode) HibernateProxyHelper.deproxy(((TaxonEditorInput) input).getTaxonNode().getParent()); List excludeTaxa = new ArrayList(); - excludeTaxa.add(taxon.getUuid()); + //excludeTaxa.add(taxon.getUuid());//there are some cases where the accepted taxon should be the parent of the new created accepted taxon - TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Select parent", excludeTaxa, null, ((TaxonEditorInput) input).getTaxonNode().getClassification()); + TaxonNode newParentNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event), editor.getConversationHolder(), "Select parent", null, null, ((TaxonEditorInput) input).getTaxonNode().getClassification()); if(newParentNode != null){ diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java index 73c2f94d0..5c7ca9a44 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/handler/NameEditorMenuPropertyTester.java @@ -35,6 +35,8 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P private static final String CONCEPT = "isConceptRelation"; private static final String EMPTY_NAMES = "hasEmptyNames"; private static final String ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS = "isAcceptedAndHasNoHomotypicSynonyms"; + private static final String NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED = "isNotHomotypicSynonymOfAcceptedTaxon"; + /** *

Constructor for NameEditorMenuPropertyTester.

@@ -76,7 +78,10 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P } else if(ACCEPTED_AND_NO_HOMOTYPIC_SYNONYMS.equals(property)){ return isAcceptedAndHasNoHomotypicSynonyms(selectedElement); + }else if (NOT_HOMOTYPIC_SYNONYM_OF_ACCEPTED.equals(property)){ + return isNotHomotypicSynonymOfAcceptedTaxon(selectedElement); } + } return false; @@ -90,6 +95,19 @@ public class NameEditorMenuPropertyTester extends org.eclipse.core.expressions.P } return false; } + + private boolean isNotHomotypicSynonymOfAcceptedTaxon(Object selectedElement) { + if (isSynonym(selectedElement)){ + Synonym synonym = (Synonym) selectedElement; + for (Taxon taxon:synonym.getAcceptedTaxa()){ + if (taxon.getHomotypicGroup().equals(synonym.getHomotypicGroup())){ + return false; + } + } + } + return true; + } + /** * @param receiver diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java index 6368cdfea..dbe283bd1 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonNodeWizard.java @@ -16,6 +16,7 @@ import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.UpdateResult; import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.model.taxon.Classification; import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Taxon; @@ -52,6 +53,8 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard{ getConversationHolder().bind(); ITaxonTreeNode parent = getParentTreeNode(); Taxon taxon = taxonNodePage.getTaxon(); + Reference sec = taxon.getSec(); + taxon.setSec(null); try{ UpdateResult result = CdmStore.getService(ITaxonNodeService.class).createNewTaxonNode(parent.getUuid(), taxon, parent.getReference(), parent.getMicroReference()); @@ -64,7 +67,8 @@ public class NewTaxonNodeWizard extends AbstractNewEntityWizard{ }*/ generatedTaxonNodeUuid = result.getCdmEntity().getUuid(); TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(generatedTaxonNodeUuid); - + taxonNode.getTaxon().setSec(sec); + CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true); Set affectedObjects = new HashSet(); if (result.getUpdatedObjects().iterator().hasNext()){ TaxonNode parentNode = (TaxonNode)result.getUpdatedObjects().iterator().next(); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java index 037e7c75b..043587499 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java @@ -145,6 +145,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement extends /** {@inheritDoc} */ @Override public void widgetSelected(SelectionEvent e) { + if (StoreUtil.getActiveEditor().isDirty()){ + MessageDialog.openInformation(null,"Save changes", "You have made changes that must be saved before this query can be executed"); + return; + } WizardDialog dialog = new WizardDialog(selectionElement.getShell(), new EditFromSelectionWizard(selectionElement)); if (dialog.open() == IStatus.OK) {