Project

General

Profile

« Previous | Next » 

Revision 68d5a162

Added by Katja Luther almost 6 years ago

further implementation for verbatimdate

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/VerbatimDateDetailSection.java
8 8
*/
9 9
package eu.etaxonomy.taxeditor.ui.element;
10 10

  
11
import org.eclipse.swt.widgets.Text;
12

  
11 13
import eu.etaxonomy.cdm.model.common.TimePeriod;
12 14
import eu.etaxonomy.cdm.model.common.VerbatimTimePeriod;
13 15

  
......
60 62
     */
61 63
    @Override
62 64
    public void setEntity(TimePeriod timePeriod) {
65
        setEntityInternally(timePeriod);
66
        updateTitle();
67
        getText_parseText().setText(timePeriod.toString());
63 68
        if (timePeriod instanceof VerbatimTimePeriod){
64 69
            text_VerbatimDate.setText(((VerbatimTimePeriod)timePeriod).getVerbatimDate());
65 70
        }
......
68 73
    protected void handleEvent(Object eventSource) {
69 74

  
70 75
        if (eventSource == text_VerbatimDate) {
71

  
72
            ((VerbatimTimePeriod)getEntity()).setVerbatimDate(text_VerbatimDate.getText());
76
            TimePeriod entity = getEntity();
77
            if(entity instanceof VerbatimTimePeriod){
78
                ((VerbatimTimePeriod)entity).setVerbatimDate(text_VerbatimDate.getText());
79
            }else{
80
                VerbatimTimePeriod newEntity = VerbatimTimePeriod.NewVerbatimInstance();
81
                newEntity.setEnd(entity.getEnd());
82
                newEntity.setStart(entity.getStart());
83
                newEntity.setFreeText(entity.getFreeText());
84
                setEntity(newEntity);
85
                ((VerbatimTimePeriod)getEntity()).setVerbatimDate(text_VerbatimDate.getText());
86
            }
73 87
        }
74 88
        super.handleEvent(eventSource);
75 89

  
76 90
    }
77 91

  
92
    @Override
93
    public TimePeriod getEntity() {
94
        if(super.getEntity() == null){
95
            setEntity(VerbatimTimePeriod.NewVerbatimInstance());
96
        }
97
        return super.getEntity();
98
    }
99

  
100
    /**
101
     * When setting the entity through parsing we do not want to alter the parse field
102
     * @param timePeriod
103
     */
104

  
105
    private void setEntityInternally(VerbatimTimePeriod timePeriod){
106
        super.setEntityInternally(timePeriod);
107
        ((Text) text_VerbatimDate.getMainControl()).setSelection(super.getCursorPosition());
108
        text_VerbatimDate.setText(timePeriod.getVerbatimDate());
109
        super.setEntity(timePeriod);
110
    }
111

  
78 112
}

Also available in: Unified diff