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
.List
;
16 import org
.eclipse
.swt
.events
.SelectionListener
;
18 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
19 import eu
.etaxonomy
.cdm
.model
.description
.State
;
20 import eu
.etaxonomy
.cdm
.model
.description
.StateData
;
21 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
22 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
23 import eu
.etaxonomy
.cdm
.model
.term
.TermVocabulary
;
24 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
25 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
26 import eu
.etaxonomy
.taxeditor
.store
.StoreUtil
;
27 import eu
.etaxonomy
.taxeditor
.ui
.combo
.term
.TermComboElement
;
28 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractFormSection
;
29 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
30 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
31 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
32 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
33 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractEntityCollectionElement
;
36 * <p>StateDataElement class.</p>
39 * @created Sep 15, 2010
42 public class StateDataElement
extends AbstractEntityCollectionElement
<StateData
> {
44 private TermComboElement
<State
> combo_state
;
45 private ModifierSection section_modifiers
;
46 private TextWithLabelElement text_modifyingText
;
49 * <p>Constructor for StateDataElement.</p>
51 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
52 * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
53 * @param entity a {@link eu.etaxonomy.cdm.model.description.StateData} object.
54 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
57 public StateDataElement(CdmFormFactory formFactory
,
58 AbstractFormSection section
, StateData entity
,
59 SelectionListener removeListener
, int style
) {
60 super(formFactory
, section
, entity
, removeListener
, null, style
);
65 public void setEntity(StateData entity
) {
67 List
<State
> stateTerms
= new ArrayList
<State
>();
68 Set
<TermVocabulary
<State
>> stateVocabularies
= getEntity().getCategoricalData().getFeature().getSupportedCategoricalEnumerations();
69 for (TermVocabulary
<State
> termVocabulary
: stateVocabularies
) {
70 stateTerms
.addAll(termVocabulary
.getTerms());
72 combo_state
.setTerms(stateTerms
);
73 combo_state
.setSelection(entity
.getState());
74 if (section_modifiers
!= null){
75 section_modifiers
.setEntity(entity
);
76 section_modifiers
.setExpanded(!entity
.getModifiers().isEmpty());
78 if(getEntity().getModifyingText().get(CdmStore
.getDefaultLanguage()) != null && text_modifyingText
!= null) {
79 text_modifyingText
.setText(getEntity().getModifyingText().get(CdmStore
.getDefaultLanguage()).getText());
81 if(getEntity().getId()>0){
82 combo_state
.removeEmptyElement();
88 public void createControls(ICdmFormElement element
, int style
) {
89 combo_state
= formFactory
.createDefinedTermComboElement(TermType
.State
, element
, "State", null, style
);
90 // combo_state.setTermComparator(new DefaultTermComparator<State>());
91 if (PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowModifier
.getKey())){
92 section_modifiers
= formFactory
.createModifierSection(getConversationHolder(), element
, StoreUtil
.getSectionStyle(ModifierSection
.class, StateData
.class.getCanonicalName(), true));
93 section_modifiers
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY(2, 1));
95 if (PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowModifierFreeText
.getKey())){
96 text_modifyingText
= formFactory
.createTextWithLabelElement(element
, "Modifying Text", null, style
);
103 public void handleEvent(Object eventSource
) {
104 if(eventSource
== combo_state
){
105 getEntity().setState(combo_state
.getSelection());
106 combo_state
.removeEmptyElement();
108 if(eventSource
== text_modifyingText
){
109 getEntity().putModifyingText(LanguageString
.NewInstance(text_modifyingText
.getText(), CdmStore
.getDefaultLanguage()));