X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/80273dd5a234274d182975253bdaa1a7bc8d133b..ec07654300339a54a3d7bbff703b369b47ab3c7f:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java?ds=sidebyside diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java index 73be3ccee..2f85aefa2 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/DeterminationEventDetailElement.java @@ -1,130 +1,119 @@ -// $Id$ /** * Copyright (C) 2007 EDIT - * European Distributed Institute of Taxonomy + * European Distributed Institute of Taxonomy * http://www.e-taxonomy.eu - * + * * The contents of this file are subject to the Mozilla Public License Version 1.1 * See LICENSE.TXT at the top of this package for the full license terms. */ - package eu.etaxonomy.taxeditor.ui.section.occurrence; import org.eclipse.swt.events.SelectionListener; -import eu.etaxonomy.cdm.model.common.DefinedTerm; +import eu.etaxonomy.cdm.model.name.TaxonName; import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; import eu.etaxonomy.cdm.model.taxon.TaxonBase; -import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; -import eu.etaxonomy.taxeditor.ui.combo.TermComboElement; +import eu.etaxonomy.cdm.model.term.DefinedTerm; +import eu.etaxonomy.cdm.model.term.TermType; +import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement; import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.CheckboxElement; +import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; +import eu.etaxonomy.taxeditor.ui.element.ISelectableElement; +import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator; import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement; /** - *

- * DeterminationEventDetailElement class. - *

- * * @author n.hoffmann * @created Oct 13, 2010 - * @version 1.0 */ -public class DeterminationEventDetailElement extends - AbstractEventDetailElement { +public class DeterminationEventDetailElement + extends AbstractEventDetailElement + implements ISelectableElement{ + + private SelectionArbitrator selectionArbitrator; private TermComboElement combo_determinationModifier; private CheckboxElement checkbox_preferredFlag; private EntitySelectionElement selection_taxonBase; + private EntitySelectionElement selectionTaxonNameBase; // private TODO a set of references - /** - *

- * Constructor for DeterminationEventDetailElement. - *

- * - * @param formFactory - * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} - * object. - * @param section - * a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} - * object. - * @param entity - * a {@link eu.etaxonomy.cdm.model.occurrence.DeterminationEvent} - * object. - * @param removeListener - * a {@link org.eclipse.swt.events.SelectionListener} object. - * @param style - * a int. - */ public DeterminationEventDetailElement(CdmFormFactory formFactory, - AbstractFormSection section, DeterminationEvent entity, + AbstractFormSection section, DeterminationEvent entity, SelectionListener removeListener, int style) { super(formFactory, section, entity, removeListener, style); + if (formFactory.getSelectionProvider() != null) { + selectionArbitrator = formFactory.createSelectionArbitrator(this); + } } - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity - * (eu.etaxonomy.cdm.model.common.IVersionableEntity) - */ - /** {@inheritDoc} */ @Override public void setEntity(DeterminationEvent entity) { this.entity = entity; - combo_determinationModifier.setSelection(entity.getModifier()); - selection_taxonBase.setEntity(entity.getTaxon()); + if (combo_determinationModifier != null){ + combo_determinationModifier.setSelection(entity.getModifier()); + selection_taxonBase.setEntity(entity.getTaxon()); + selectionTaxonNameBase.setEntity(entity.getTaxonName()); + } super.setEntity(entity); } - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls - * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int) - */ - /** {@inheritDoc} */ @Override public void createControls(ICdmFormElement element, int style) { + selectionTaxonNameBase = formFactory + .createSelectionElement(TaxonName.class, + element, "Taxon Name", null, + EntitySelectionElement.ALL, style); selection_taxonBase = formFactory .createSelectionElement(TaxonBase.class, - getConversationHolder(), element, "Taxon", null, - EntitySelectionElement.NOTHING, style); - + element, "Taxon", null, + EntitySelectionElement.ALL, style); // TODO set of references super.createControls(element, style); - + element_timePeriod.setLabel("Determined When"); selection_agent.setLabel("Determined by"); - - - combo_determinationModifier = formFactory.createTermComboElement(DefinedTerm.class, + + + combo_determinationModifier = formFactory.createDefinedTermComboElement(TermType.DeterminationModifier, element, "Modifier", null, style); + if (entity != null){ + combo_determinationModifier.setSelection(entity.getModifier()); + selection_taxonBase.setEntity(entity.getTaxon()); + selectionTaxonNameBase.setEntity(entity.getTaxonName()); + } } - /* - * (non-Javadoc) - * - * @see - * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent - * (java.lang.Object) - */ - /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { if (eventSource == combo_determinationModifier) { getEntity().setModifier(combo_determinationModifier.getSelection()); } else if (eventSource == checkbox_preferredFlag) { getEntity().setPreferredFlag(checkbox_preferredFlag.getSelection()); + } else if (eventSource == selectionTaxonNameBase) { + TaxonName name = selectionTaxonNameBase.getSelection(); + getEntity().setTaxonName(name); + //empty taxon field if name was deleted + //or does not belong the taxon + TaxonBase taxonBase = selection_taxonBase.getEntity(); + if(name==null || + (taxonBase!=null && taxonBase.getName()!=null + && !taxonBase.getName().equals(name))){ + selection_taxonBase.setEntity(null); + getEntity().setTaxon(null); + } } else if (eventSource == selection_taxonBase) { - getEntity().setTaxon(selection_taxonBase.getSelection()); + TaxonBase taxon = selection_taxonBase.getSelection(); + getEntity().setTaxon(taxon); + if(taxon!=null){ + getEntity().setTaxonName(taxon.getName()); + selectionTaxonNameBase.setEntity(taxon.getName()); + } } // else if(eventSource == TODO set of references){ // @@ -138,4 +127,8 @@ public class DeterminationEventDetailElement extends } } -} + @Override + public SelectionArbitrator getSelectionArbitrator() { + return selectionArbitrator; + } +} \ No newline at end of file