Project

General

Profile

Download (4.36 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2020 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.element;
10

    
11
import org.eclipse.jface.util.PropertyChangeEvent;
12
import org.joda.time.Partial;
13

    
14
import eu.etaxonomy.cdm.common.CdmUtils;
15
import eu.etaxonomy.cdm.model.common.ExtendedTimePeriod;
16

    
17
/**
18
 * @author k.luther
19
 * @since Jun 12, 2020
20
 */
21
public class ExtendedTimeDetailSection extends AbstractFormSection<ExtendedTimePeriod> {
22

    
23
    private PartialElement partialElement_extremeStart;
24
    private PartialElement partialElement_start;
25
    private PartialElement partialElement_end;
26
    private PartialElement partialElement_extremeEnd;
27
//    private TextWithLabelElement text_freeText;
28
    /**
29
     * @param formFactory
30
     * @param parentElement
31
     * @param includeVerbatim
32
     * @param style
33
     */
34
    protected ExtendedTimeDetailSection(CdmFormFactory formFactory, ICdmFormElement parentElement,
35
             int style) {
36
        super(formFactory, parentElement, style);
37

    
38
//        this.includeVerbatim = includeVerbatim;
39

    
40

    
41
        partialElement_extremeStart = formFactory.createPartialElement(this, "Extreme Start ", null, false, style);
42

    
43
        partialElement_start = formFactory.createPartialElement(this, "Start ", null, false, style);
44

    
45

    
46
        partialElement_end = formFactory.createPartialElement(this, "End ", null, false, style);
47

    
48
        partialElement_extremeEnd = formFactory.createPartialElement(this, "Extreme End ",
49
                null, false, style);
50

    
51
//        text_freeText = formFactory.createTextWithLabelElement(this,
52
//                "Freetext", null,  style);
53
//        text_freeText.getMainControl().setLayoutData(
54
//                LayoutConstants.FILL_HORIZONTALLY(5, 1));
55

    
56

    
57
        formFactory.addPropertyChangeListener(this);
58

    
59
    }
60

    
61
    @Override
62
    public void setEntity(ExtendedTimePeriod timePeriod) {
63
        Partial extremeStart = timePeriod.getExtremeStart();
64
        partialElement_extremeStart.setPartial(extremeStart);
65
        Partial start = timePeriod.getStart();
66
        partialElement_start.setPartial(start);
67
        Partial end = timePeriod.getEnd();
68
        partialElement_end.setPartial(end);
69

    
70
        Partial extremeEnd = timePeriod.getExtremeEnd();
71
        partialElement_extremeEnd.setPartial(extremeEnd);
72

    
73
//        text_freeText.setText(timePeriod.getFreeText());
74

    
75
        super.setEntity(timePeriod);
76

    
77
    }
78

    
79
    @Override
80
    public void propertyChange(PropertyChangeEvent event) {
81
        if (event == null) {
82
            return;
83
        }
84
        Object eventSource = event.getSource();
85

    
86
        if (getElements().contains(eventSource)) {
87
            if (event instanceof CdmPropertyChangeEvent) {
88
                if (((CdmPropertyChangeEvent) event).hasException()) {
89
                    handleException((CdmPropertyChangeEvent) event);
90
                    return;
91
                }
92
            }
93
            handleEvent(eventSource);
94
        }
95
    }
96

    
97
    /**
98
     * @param event
99
     */
100
    private void handleException(CdmPropertyChangeEvent event) {
101
        firePropertyChangeEvent(new CdmPropertyChangeEvent(this,
102
                event.getException()));
103
    }
104

    
105
    protected void handleEvent(Object eventSource) {
106
        if (eventSource == partialElement_start) {
107
            Partial start = partialElement_start.getPartial();
108
            getEntity().setStart(start);
109
        } else if (eventSource == partialElement_end) {
110
            Partial end = partialElement_end.getPartial();
111
            getEntity().setEnd(end);
112
        } else if (eventSource == partialElement_extremeEnd) {
113
            Partial extremeEnd = partialElement_extremeEnd.getPartial();
114
            getEntity().setExtremeEnd(extremeEnd);
115
        } else if (eventSource == partialElement_extremeStart) {
116
            Partial extremeStart = partialElement_extremeStart.getPartial();
117
            getEntity().setExtremeStart(extremeStart);
118
//        } else if (eventSource == text_freeText) {
119
//            getEntity().setFreeText(text_freeText.getText());
120
        }
121
//        updateTitle();
122

    
123

    
124
        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
125
    }
126

    
127
    protected void updateTitle(){
128
        String title = CdmUtils.Nz(getEntity().toString());
129
        this.setText(title);
130
        layout();
131
    }
132

    
133

    
134
}
(17-17/57)