ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / DeterminationEventDetailElement.java
index 73be3ccee31351ada4ff3b1c74728c1f41f202b8..b834ca8cfa874501205a45c3bd6f4bb6da962811 100644 (file)
@@ -1,9 +1,8 @@
-// $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.
  */
@@ -13,20 +12,22 @@ 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.common.TermType;
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 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.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.selection.EntitySelectionElement;
 
 /**
  * <p>
  * DeterminationEventDetailElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Oct 13, 2010
  * @version 1.0
@@ -37,6 +38,7 @@ public class DeterminationEventDetailElement extends
        private TermComboElement<DefinedTerm> combo_determinationModifier;
        private CheckboxElement checkbox_preferredFlag;
        private EntitySelectionElement<TaxonBase> selection_taxonBase;
+       private EntitySelectionElement<TaxonNameBase> selectionTaxonNameBase;
 
        // private TODO a set of references
 
@@ -44,7 +46,7 @@ public class DeterminationEventDetailElement extends
         * <p>
         * Constructor for DeterminationEventDetailElement.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -67,7 +69,7 @@ public class DeterminationEventDetailElement extends
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
         * (eu.etaxonomy.cdm.model.common.IVersionableEntity)
@@ -78,12 +80,13 @@ public class DeterminationEventDetailElement extends
                this.entity = entity;
                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)
@@ -91,27 +94,31 @@ public class DeterminationEventDetailElement extends
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
+           selectionTaxonNameBase = formFactory
+                   .createSelectionElement(TaxonNameBase.class,
+                           getConversationHolder(), element, "Taxon Name", null,
+                           EntitySelectionElement.NOTHING, style);
                selection_taxonBase = formFactory
                                .createSelectionElement(TaxonBase.class,
                                                getConversationHolder(), element, "Taxon", null,
                                                EntitySelectionElement.NOTHING, 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);
        }
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
         * (java.lang.Object)
@@ -123,8 +130,19 @@ public class DeterminationEventDetailElement extends
                        getEntity().setModifier(combo_determinationModifier.getSelection());
                } else if (eventSource == checkbox_preferredFlag) {
                        getEntity().setPreferredFlag(checkbox_preferredFlag.getSelection());
+               } else if (eventSource == selectionTaxonNameBase) {
+                   getEntity().setTaxonName(selectionTaxonNameBase.getSelection());
+                   //empty taxon field if name does not belong the taxon
+                   TaxonBase taxonBase = selection_taxonBase.getEntity();
+                       if(taxonBase!=null && taxonBase.getName()!=null 
+                                       && !taxonBase.getName().equals(selectionTaxonNameBase.getSelection())){
+                               selection_taxonBase.setEntity(null);
+                       }
                } else if (eventSource == selection_taxonBase) {
-                       getEntity().setTaxon(selection_taxonBase.getSelection());
+                       TaxonBase taxon = selection_taxonBase.getSelection();
+            getEntity().setTaxon(taxon);
+            getEntity().setTaxonName(taxon.getName());
+            selectionTaxonNameBase.setEntity(taxon.getName());
                }
                // else if(eventSource == TODO set of references){
                //