Project

General

Profile

Download (5.01 KB) Statistics
| Branch: | Tag: | Revision:
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, boolean enabled, int style) {
50
		super(formFactory, formElement);
51
		setEntity(entity);
52
		setEnabled(enabled);
53
	}
54
	public AbstractDetailedDescriptionDetailElement(CdmFormFactory formFactory,
55
			ICdmFormElement formElement, T entity, int style) {
56
		super(formFactory, formElement);
57
		setEntity(entity);
58

    
59
	}
60

    
61

    
62
    protected void createTimePeriod(ICdmFormElement formElement, DescriptionElementBase entity,
63
            int style) {
64
	    timePeriod = formFactory.createTimePeriodElement(this, "Time scope", entity.getTimeperiod(), SWT.WRAP);
65
	    timePeriod.setEnabled(enabled);
66
    }
67

    
68
    protected void createModifier(ICdmFormElement formElement, DescriptionElementBase entity,
69
            int style) {
70

    
71
        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifier.getKey())){
72
            section_modifiers = formFactory.createModifierSection(this, StoreUtil.getSectionStyle(ModifierSection.class, entity.getClass().getCanonicalName(), true));
73
            section_modifiers.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
74
            section_modifiers.setEntity(entity);
75
            section_modifiers.setEnabled(enabled);
76
        }
77
        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
78
            text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
79
            if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
80
                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
81
            }
82
            text_modifyingText.setEnabled(enabled);
83
        }
84
    }
85

    
86
    protected void createFreetextModifier(ICdmFormElement formElement, DescriptionElementBase entity,
87
            int style) {
88
        if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowModifierFreeText.getKey())){
89
            text_modifyingText = formFactory.createTextWithLabelElement(this, "Modifying Text", null, style);
90
            if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
91
                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
92
            }
93
            text_modifyingText.setEnabled(enabled);
94
        }
95
    }
96

    
97
    @Override
98
    public void handleEvent(Object eventSource) {
99
        if(eventSource == timePeriod){
100
            getEntity().setTimeperiod(timePeriod.getTimePeriod());
101
        }
102
        if (eventSource == text_modifyingText){
103
            getEntity().putModifyingText(LanguageString.NewInstance(text_modifyingText.getText(), CdmStore.getDefaultLanguage()));
104
        }
105

    
106
    }
107
    
108
    @Override
109
    public void fillFields() {
110
    	timePeriod.setEntity(getEntity().getTimeperiod());
111
        if (section_modifiers != null) {
112
        	section_modifiers.setEntity(getEntity());
113
        }
114
        if (text_modifyingText!= null) {
115
        	if(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()) != null) {
116
                text_modifyingText.setText(getEntity().getModifyingText().get(CdmStore.getDefaultLanguage()).getText());
117
            }
118
        }
119
    }
120
    
121
    
122
    
123
}
(1-1/9)