X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/8de05ed8187d801967847fd9734cff62accbe256..0819c19db63cc608e26f924eb554e61f4d0638bd:/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java index 7fbb22736..a42076cf1 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java @@ -28,7 +28,7 @@ import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.common.CdmBase; -import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.cdm.model.name.TaxonName; import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; @@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode; import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType; import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap; +import eu.etaxonomy.taxeditor.editor.l10n.Messages; import eu.etaxonomy.taxeditor.model.DataChangeBridge; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.preference.PreferencesUtil; @@ -52,6 +53,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore; */ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement { + private static final String INCORRECT_STATE = Messages.TaxonEditorInput_INCORRECT_STATE; + private final ConversationHolder conversation; private TaxonNode taxonNode; @@ -100,7 +103,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid, getTaxonNodePropertyPaths()); if(taxonNode == null){ - MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase."); + MessagingUtils.warningDialog(Messages.TaxonEditorInput_NOT_IMPLEMENTED, TaxonEditorInput.class, Messages.TaxonEditorInput_NOT_IMPLEMENTED_MESSAGE); } init(taxonNode); @@ -114,7 +117,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI if (taxon.getTaxonNodes().size() == 0 && taxon.isMisapplication()){ // TODO get accepted taxon - MessagingUtils.info("trying to open Mispplied Name "); + MessagingUtils.info(Messages.TaxonEditorInput_OPEN_MISSAPPLIED_NAME); Set acceptedTaxa = new HashSet(); Set relations = taxon.getRelationsFromThisTaxon(); @@ -131,7 +134,11 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI }else if(taxonBase instanceof Synonym){ Synonym synonym = (Synonym) taxonBase; - Set taxa = synonym.getAcceptedTaxa(); + Set taxa = new HashSet<>(); + Taxon taxon = synonym.getAcceptedTaxon(); + if (taxon != null){ + taxa.add(taxon); + } setInputForMultipleTaxa(conversation, taxa); } } @@ -147,7 +154,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI private void initForParentTaxonNode(UUID parentNodeUuid){ - TaxonNameBase name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null); + TaxonName name = PreferencesUtil.getPreferredNomenclaturalCode().getNewTaxonNameInstance(null); ITaxonTreeNode parentNode = CdmStore.getService(IClassificationService.class).getTreeNodeByUuid(parentNodeUuid); Taxon newTaxon = Taxon.NewInstance(name, parentNode.getReference()); @@ -171,9 +178,9 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI if(taxonNode != null){ init(taxonNode); } - }else if(taxonNodes.size() == 0){ + } else if (taxonNodes.size() == 0) { // this is an undesired state - MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "The accepted taxon is not part of any classification. This should not have happened."); + MessagingUtils.warningDialog(INCORRECT_STATE,TaxonEditorInput.class,Messages.TaxonEditorInput_TAXON_NOT_IN_CLASSIFICATION); } } @@ -190,8 +197,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI setInputForMultipleNodes(conversation, taxonNodes); }else if(taxa.size() == 0){ // this is an undesired state - MessagingUtils.warningDialog("Incorrect state", TaxonEditorInput.class, "Trying to open accepted taxon for a synonym or misapplication but" + - " no accepted taxa are present. This should not have happened."); + MessagingUtils.warningDialog(INCORRECT_STATE, TaxonEditorInput.class, Messages.TaxonEditorInput_NO_ACCEPTED_TAXON_PRESENT); } } @@ -267,9 +273,9 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI if(getTaxon() == null){ return null; } - TaxonNameBase name = getTaxon().getName(); + TaxonName name = getTaxon().getName(); if (name == null || name.getTitleCache() == null) { - return "New taxon"; + return Messages.TaxonEditorInput_NEW_TAXON; } else { return name.getTitleCache(); } @@ -336,8 +342,8 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI public boolean equals(Object obj) { if (TaxonEditorInput.class.equals(obj.getClass()) && getTaxon() != null - && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())){ - if(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){ + && getTaxon().equals(((TaxonEditorInput) obj).getTaxon())) { + if (((TaxonEditorInput) obj).getInitiallySelectedTaxonBase() != null){ setInitiallySelectedTaxonBase(((TaxonEditorInput) obj).getInitiallySelectedTaxonBase()); } return true; @@ -452,7 +458,8 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI */ @Override public void merge() { - CdmStore.getService(ITaxonNodeService.class).merge(taxonNode); + CdmStore.getService(ITaxonNodeService.class).merge(taxonNode, true); + } @Override @@ -463,44 +470,44 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI private List getTaxonNodePropertyPaths() { List taxonNodePropertyPaths = new ArrayList(); for(String propertyPath : getTaxonBasePropertyPaths()) { - taxonNodePropertyPaths.add("taxon." + propertyPath); + taxonNodePropertyPaths.add("taxon." + propertyPath); //$NON-NLS-1$ } return taxonNodePropertyPaths; } private List getTaxonBasePropertyPaths() { List taxonBasePropertyPaths = Arrays.asList(new String[] { - "sec", - "createdBy", - "updatedBy", - "annotations", - "markers", - "credits", - "extensions", - "rights", - "sources", - "descriptions", - "relationsToThisTaxon", - "relationsFromThisTaxon", - "taxonNodes", - "descriptions.descriptionElements.feature", - "descriptions.descriptionElements.area", - "descriptions.descriptionElements.status", - "descriptions.markers", - "name.descriptions", - "name.typeDesignations", - "name.status", - "name.nomenclaturalReference.inReference", - "name.taxonBases.taxonNodes", - "name.relationsFromThisName", - "name.relationsToThisName", - "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status", - "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName", - "synonymRelations.synonym.name.status.type", - "synonymRelations.synonym.name.relationsToThisName.fromName", - "synonymRelations.synonym.name.nomenclaturalReference.inReference.authorship", - "synonymRelations.synonym.name.nomenclaturalReference.authorship", - "synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations" + "sec", //$NON-NLS-1$ + "createdBy", //$NON-NLS-1$ + "updatedBy", //$NON-NLS-1$ + "annotations", //$NON-NLS-1$ + "markers", //$NON-NLS-1$ + "credits", //$NON-NLS-1$ + "extensions", //$NON-NLS-1$ + "rights", //$NON-NLS-1$ + "sources", //$NON-NLS-1$ + "descriptions", //$NON-NLS-1$ + "relationsToThisTaxon", //$NON-NLS-1$ + "relationsFromThisTaxon", //$NON-NLS-1$ + "taxonNodes", //$NON-NLS-1$ + "descriptions.descriptionElements.feature", //$NON-NLS-1$ + "descriptions.descriptionElements.area", //$NON-NLS-1$ + "descriptions.descriptionElements.status", //$NON-NLS-1$ + "descriptions.markers", //$NON-NLS-1$ + "name.descriptions", //$NON-NLS-1$ + "name.typeDesignations", //$NON-NLS-1$ + "name.status", //$NON-NLS-1$ + "name.nomenclaturalReference.inReference", //$NON-NLS-1$ + "name.taxonBases.taxonNodes", //$NON-NLS-1$ + "name.relationsFromThisName", //$NON-NLS-1$ + "name.relationsToThisName", //$NON-NLS-1$ + "name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations.synonym.name.status", //$NON-NLS-1$ + "name.homotypicalGroup.typifiedNames.relationsToThisName.fromName", //$NON-NLS-1$ + "synonymRelations.synonym.name.status.type", //$NON-NLS-1$ + "synonymRelations.synonym.name.relationsToThisName.fromName", //$NON-NLS-1$ + "synonymRelations.synonym.name.nomenclaturalReference.inReference.authorship", //$NON-NLS-1$ + "synonymRelations.synonym.name.nomenclaturalReference.authorship", //$NON-NLS-1$ + "synonymRelations.synonym.name.homotypicalGroup.typifiedNames.taxonBases.synonymRelations" //$NON-NLS-1$ }); return taxonBasePropertyPaths;