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
.api
.service
.IVocabularyService
;
20 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementBase
;
21 import eu
.etaxonomy
.cdm
.model
.description
.StateData
;
22 import eu
.etaxonomy
.cdm
.model
.description
.StatisticalMeasurementValue
;
23 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTerm
;
24 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
25 import eu
.etaxonomy
.cdm
.model
.term
.TermVocabulary
;
26 import eu
.etaxonomy
.cdm
.model
.term
.VocabularyEnum
;
27 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
28 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermComboElement
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractFormSection
;
30 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
31 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
32 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractEntityCollectionElement
;
35 * <p>ModifierElement class.</p>
38 * @created Sep 15, 2010
41 public class ModifierElement
extends AbstractEntityCollectionElement
<DefinedTerm
> {
43 private TermComboElement
<DefinedTerm
> combo_modifier
;
46 * <p>Constructor for ModifierElement.</p>
48 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
49 * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
50 * @param entity a {@link eu.etaxonomy.cdm.model.description.Modifier} object.
51 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
54 public ModifierElement(CdmFormFactory formFactory
,
55 AbstractFormSection
<?
> section
, DefinedTerm entity
,
56 SelectionListener removeListener
, int style
) {
57 super(formFactory
, section
, entity
, removeListener
, null, style
);
62 public void setEntity(DefinedTerm entity
) {
64 if(getParentElement() instanceof ModifierSection
){
65 ModifierSection parentSection
= (ModifierSection
) getParentElement();
66 List
<DefinedTerm
> modifierTerms
= new ArrayList
<DefinedTerm
>();
67 Set
<TermVocabulary
<DefinedTerm
>> recommendedModifierEnumeration
= new HashSet
<TermVocabulary
<DefinedTerm
>>();
68 if(parentSection
.getEntity() instanceof StateData
){
69 StateData stateData
= (StateData
) parentSection
.getEntity();
70 recommendedModifierEnumeration
= stateData
.getCategoricalData().getFeature().getRecommendedModifierEnumeration();
72 if(parentSection
.getEntity() instanceof StatisticalMeasurementValue
){
73 StatisticalMeasurementValue statisticalMeasurementValue
= (StatisticalMeasurementValue
)parentSection
.getEntity();
74 recommendedModifierEnumeration
= statisticalMeasurementValue
.getQuantitativeData().getFeature().getRecommendedModifierEnumeration();
76 if (!(parentSection
.getParentElement() instanceof StateDataElement
|| parentSection
.getParentElement() instanceof StatisticalMeasurementValueElement
)){
77 recommendedModifierEnumeration
.add(CdmStore
.getService(IVocabularyService
.class).load(VocabularyEnum
.Modifier
.getUuid()));
79 for (TermVocabulary
<DefinedTerm
> termVocabulary
: recommendedModifierEnumeration
) {
80 modifierTerms
.addAll(termVocabulary
.getTerms());
82 combo_modifier
.setTerms(modifierTerms
);
84 if(entity
!=null && entity
.getId()>0){
85 combo_modifier
.setSelection(entity
);
86 combo_modifier
.removeEmptyElement();
92 public void createControls(ICdmFormElement element
, int style
) {
93 combo_modifier
= formFactory
.createDefinedTermComboElement(TermType
.Modifier
, element
, "Modifier", getEntity(), style
);
98 public void handleEvent(Object eventSource
) {
99 if(eventSource
==combo_modifier
&& combo_modifier
.getSelection()!=null){
100 combo_modifier
.removeEmptyElement();
101 if(getParentElement() instanceof AbstractFormSection
){
102 AbstractFormSection
<?
> parentSection
= (AbstractFormSection
<?
>) getParentElement();
103 if(parentSection
.getEntity() instanceof StateData
){
104 StateData stateData
= (StateData
) parentSection
.getEntity();
105 stateData
.removeModifier(entity
);
106 DefinedTerm term
= combo_modifier
.getSelection();
107 stateData
.addModifier(term
);
110 else if(parentSection
.getEntity() instanceof StatisticalMeasurementValue
){
111 StatisticalMeasurementValue parentEntity
= (StatisticalMeasurementValue
) parentSection
.getEntity();
112 parentEntity
.removeModifier(entity
);
113 DefinedTerm term
= combo_modifier
.getSelection();
114 parentEntity
.addModifier(term
);
117 ((DescriptionElementBase
)parentSection
.getEntity()).removeModifier(entity
);
118 DefinedTerm term
= combo_modifier
.getSelection();
119 ((DescriptionElementBase
)parentSection
.getEntity()).addModifier(term
);