2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.description
;
12 import java
.util
.ArrayList
;
13 import java
.util
.HashSet
;
14 import java
.util
.List
;
17 import org
.eclipse
.swt
.events
.SelectionListener
;
19 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
20 import eu
.etaxonomy
.cdm
.model
.description
.StateData
;
21 import eu
.etaxonomy
.cdm
.model
.description
.StatisticalMeasurementValue
;
22 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTerm
;
23 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
24 import eu
.etaxonomy
.cdm
.model
.term
.TermVocabulary
;
25 import eu
.etaxonomy
.taxeditor
.ui
.combo
.term
.TermComboElement
;
26 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractFormSection
;
27 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
29 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractEntityCollectionElement
;
32 * <p>ModifierElement class.</p>
35 * @created Sep 15, 2010
38 public class ModifierElement
extends AbstractEntityCollectionElement
<DefinedTerm
> {
40 private TermComboElement
<DefinedTerm
> combo_modifier
;
43 * <p>Constructor for ModifierElement.</p>
45 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
46 * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
47 * @param entity a {@link eu.etaxonomy.cdm.model.description.Modifier} object.
48 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
51 public ModifierElement(CdmFormFactory formFactory
,
52 AbstractFormSection
<?
> section
, DefinedTerm entity
,
53 SelectionListener removeListener
, int style
) {
54 super(formFactory
, section
, entity
, removeListener
, null, style
);
59 public void setEntity(DefinedTerm entity
) {
61 if(getParentElement() instanceof ModifierSection
){
62 ModifierSection parentSection
= (ModifierSection
) getParentElement();
63 List
<DefinedTerm
> modifierTerms
= new ArrayList
<DefinedTerm
>();
64 Set
<TermVocabulary
<DefinedTerm
>> recommendedModifierEnumeration
= new HashSet
<TermVocabulary
<DefinedTerm
>>();
65 if(parentSection
.getEntity() instanceof StateData
){
66 StateData stateData
= (StateData
) parentSection
.getEntity();
67 recommendedModifierEnumeration
= stateData
.getCategoricalData().getFeature().getRecommendedModifierEnumeration();
68 }else if(parentSection
.getEntity() instanceof StatisticalMeasurementValue
){
69 StatisticalMeasurementValue statisticalMeasurementValue
= (StatisticalMeasurementValue
)parentSection
.getEntity();
70 recommendedModifierEnumeration
= statisticalMeasurementValue
.getQuantitativeData().getFeature().getRecommendedModifierEnumeration();
72 if (!(parentSection
.getParentElement() instanceof DescriptionElementBase
) && parentSection
.getEntity() instanceof DescriptionElementBase
){
73 DescriptionElementBase element
= (DescriptionElementBase
) parentSection
.getEntity();
74 recommendedModifierEnumeration
= element
.getFeature().getRecommendedModifierEnumeration();
78 for (TermVocabulary
<DefinedTerm
> termVocabulary
: recommendedModifierEnumeration
) {
79 modifierTerms
.addAll(termVocabulary
.getTerms());
81 combo_modifier
.setTerms(modifierTerms
);
83 if(entity
!=null && entity
.getId()>0){
84 combo_modifier
.setSelection(entity
);
85 combo_modifier
.removeEmptyElement();
91 public void createControls(ICdmFormElement element
, int style
) {
92 combo_modifier
= formFactory
.createDefinedTermComboElement(TermType
.Modifier
, element
, "Modifier", getEntity(), style
);
97 public void handleEvent(Object eventSource
) {
98 if(eventSource
==combo_modifier
&& combo_modifier
.getSelection()!=null){
99 combo_modifier
.removeEmptyElement();
100 if(getParentElement() instanceof AbstractFormSection
){
101 AbstractFormSection
<?
> parentSection
= (AbstractFormSection
<?
>) getParentElement();
102 if(parentSection
.getEntity() instanceof StateData
){
103 StateData stateData
= (StateData
) parentSection
.getEntity();
104 stateData
.removeModifier(entity
);
105 DefinedTerm term
= combo_modifier
.getSelection();
106 stateData
.addModifier(term
);
109 else if(parentSection
.getEntity() instanceof StatisticalMeasurementValue
){
110 StatisticalMeasurementValue parentEntity
= (StatisticalMeasurementValue
) parentSection
.getEntity();
111 parentEntity
.removeModifier(entity
);
112 DefinedTerm term
= combo_modifier
.getSelection();
113 parentEntity
.addModifier(term
);
116 ((DescriptionElementBase
)parentSection
.getEntity()).removeModifier(entity
);
117 DefinedTerm term
= combo_modifier
.getSelection();
118 ((DescriptionElementBase
)parentSection
.getEntity()).addModifier(term
);