X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/blobdiff_plain/5966c2007321df0243a4ab59d913139fda07fd35..0875c8c1e298c356f80d58bc8bc93a4f6f43d592:/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java index bd583af51..f182ca831 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/ModifierElement.java @@ -1,22 +1,31 @@ // $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.description; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + import org.eclipse.swt.events.SelectionListener; import eu.etaxonomy.cdm.model.common.DefinedTerm; -import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement; +import eu.etaxonomy.cdm.model.common.TermType; +import eu.etaxonomy.cdm.model.common.TermVocabulary; +import eu.etaxonomy.cdm.model.description.StateData; +import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue; 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.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; /** @@ -27,7 +36,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; * @version 1.0 */ public class ModifierElement extends AbstractEntityCollectionElement { - + private TermComboElement combo_modifier; /** @@ -40,27 +49,66 @@ public class ModifierElement extends AbstractEntityCollectionElement section, DefinedTerm entity, SelectionListener removeListener, int style) { super(formFactory, section, entity, removeListener, null, style); } - + /** {@inheritDoc} */ @Override public void setEntity(DefinedTerm entity) { this.entity = entity; - combo_modifier.setSelection(entity); + if(getParentElement() instanceof ModifierSection){ + ModifierSection parentSection = (ModifierSection) getParentElement(); + List modifierTerms = new ArrayList(); + Set> recommendedModifierEnumeration = new HashSet>(); + if(parentSection.getEntity() instanceof StateData){ + StateData stateData = (StateData) parentSection.getEntity(); + recommendedModifierEnumeration = stateData.getCategoricalData().getFeature().getRecommendedModifierEnumeration(); + } + if(parentSection.getEntity() instanceof StatisticalMeasurementValue){ + StatisticalMeasurementValue statisticalMeasurementValue = (StatisticalMeasurementValue)parentSection.getEntity(); + recommendedModifierEnumeration = statisticalMeasurementValue.getQuantitativeData().getFeature().getRecommendedModifierEnumeration(); + } + for (TermVocabulary termVocabulary : recommendedModifierEnumeration) { + modifierTerms.addAll(termVocabulary.getTerms()); + } + combo_modifier.setTerms(modifierTerms); + } + if(entity.getId()>0){ + combo_modifier.setSelection(entity); + combo_modifier.removeEmptyElement(); + } } /** {@inheritDoc} */ @Override public void createControls(ICdmFormElement element, int style) { - combo_modifier = formFactory.createTermComboElement(DefinedTerm.class, element, "Modifier", getEntity(), style); + combo_modifier = formFactory.createDefinedTermComboElement(TermType.Modifier, element, "Modifier", getEntity(), style); } /** {@inheritDoc} */ @Override public void handleEvent(Object eventSource) { - + if(eventSource==combo_modifier && combo_modifier.getSelection()!=null){ + combo_modifier.removeEmptyElement(); + if(getParentElement() instanceof AbstractFormSection){ + AbstractFormSection parentSection = (AbstractFormSection) getParentElement(); + if(parentSection.getEntity() instanceof StateData){ + StateData stateData = (StateData) parentSection.getEntity(); + stateData.removeModifier(entity); + DefinedTerm term = combo_modifier.getSelection(); + stateData.addModifier(term); + entity = term; + } + else if(parentSection.getEntity() instanceof StatisticalMeasurementValue){ + StatisticalMeasurementValue parentEntity = (StatisticalMeasurementValue) parentSection.getEntity(); + parentEntity.removeModifier(entity); + DefinedTerm term = combo_modifier.getSelection(); + parentEntity.addModifier(term); + entity = term; + } + } + } } }