Merge branch 'release/5.19.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / description / detail / AbstractDetailedDescriptionDetailElement.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9 package eu.etaxonomy.taxeditor.ui.section.description.detail;
10
11 import org.eclipse.swt.SWT;
12
13 import eu.etaxonomy.cdm.model.common.LanguageString;
14 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
15 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
16 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
17 import eu.etaxonomy.taxeditor.store.CdmStore;
18 import eu.etaxonomy.taxeditor.store.StoreUtil;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
22 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
25 import eu.etaxonomy.taxeditor.ui.section.description.ModifierSection;
26
27 /**
28 * <p>Abstract AbstractDetailedDescriptionDetailElement class.</p>
29 *
30 * @author n.hoffmann
31 * @created Jun 10, 2010
32 */
33 public abstract class AbstractDetailedDescriptionDetailElement<T extends DescriptionElementBase> extends AbstractCdmDetailElement<T>{
34
35 TimePeriodElement timePeriod;
36 ModifierSection section_modifiers;
37 TextWithLabelElement text_modifyingText;
38
39 /**
40 * <p>Constructor for AbstractDetailedDescriptionDetailElement.</p>
41 *
42 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
43 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
44 * @param entity a T object.
45 * @param style a int.
46 * @param <T> a T object.
47 */
48 public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
49 ICdmFormElement formElement, T entity, int style) {
50 super(formFactory, formElement);
51 setEntity(entity);
52 }
53
54
55 protected void createTimePeriod(ICdmFormElement formElement, DescriptionElementBase entity,
56 int style) {
57 timePeriod = formFactory.createTimePeriodElement(this, "Time scope", entity.getTimeperiod(), SWT.WRAP);
58
59 }
60
61 protected void createModifier(ICdmFormElement formElement, DescriptionElementBase entity,
62 int style) {
63
64 if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
65 section_modifiers = formFactory.createModifierSection(getConversationHolder(), this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
66 section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
67 section_modifiers.setEntity(entity);
68 }
69 if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
70 text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
71 if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
72 text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
73 }
74 }
75 }
76
77 protected void createFreetextModifier(ICdmFormElement formElement, DescriptionElementBase entity,
78 int style) {
79 if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
80 text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
81 if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
82 text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
83 }
84 }
85 }
86
87 @Override
88 public void handleEvent(Object eventSource) {
89 if(eventSource == timePeriod){
90 getEntity().setTimeperiod(timePeriod.getTimePeriod());
91 }
92 if (eventSource == text_modifyingText){
93 getEntity().putModifyingText(LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
94 }
95
96 }
97 }