Project

General

Profile

Download (4.78 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

    
10
package eu.etaxonomy.taxeditor.ui.section.occurrence;
11

    
12
import org.eclipse.swt.events.SelectionListener;
13

    
14
import eu.etaxonomy.cdm.model.common.DefinedTerm;
15
import eu.etaxonomy.cdm.model.common.TermType;
16
import eu.etaxonomy.cdm.model.name.TaxonName;
17
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
18
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
19
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
23
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
25

    
26
/**
27
 * <p>
28
 * DeterminationEventDetailElement class.
29
 * </p>
30
 *
31
 * @author n.hoffmann
32
 * @created Oct 13, 2010
33
 */
34
public class DeterminationEventDetailElement extends
35
		AbstractEventDetailElement<DeterminationEvent> {
36

    
37
	private TermComboElement<DefinedTerm> combo_determinationModifier;
38
	private CheckboxElement checkbox_preferredFlag;
39
	private EntitySelectionElement<TaxonBase> selection_taxonBase;
40
	private EntitySelectionElement<TaxonName> selectionTaxonNameBase;
41

    
42
	// private TODO a set of references
43

    
44
	/**
45
	 * <p>
46
	 * Constructor for DeterminationEventDetailElement.
47
	 * </p>
48
	 *
49
	 * @param formFactory
50
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
51
	 *            object.
52
	 * @param section
53
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
54
	 *            object.
55
	 * @param entity
56
	 *            a {@link eu.etaxonomy.cdm.model.occurrence.DeterminationEvent}
57
	 *            object.
58
	 * @param removeListener
59
	 *            a {@link org.eclipse.swt.events.SelectionListener} object.
60
	 * @param style
61
	 *            a int.
62
	 */
63
	public DeterminationEventDetailElement(CdmFormFactory formFactory,
64
			AbstractFormSection<?> section, DeterminationEvent entity,
65
			SelectionListener removeListener, int style) {
66
		super(formFactory, section, entity, removeListener, style);
67
	}
68

    
69
	/** {@inheritDoc} */
70
	@Override
71
	public void setEntity(DeterminationEvent entity) {
72
		this.entity = entity;
73
		combo_determinationModifier.setSelection(entity.getModifier());
74
		selection_taxonBase.setEntity(entity.getTaxon());
75
		selectionTaxonNameBase.setEntity(entity.getTaxonName());
76
		super.setEntity(entity);
77
	}
78

    
79
	/** {@inheritDoc} */
80
	@Override
81
	public void createControls(ICdmFormElement element, int style) {
82
	    selectionTaxonNameBase = formFactory
83
	            .createSelectionElement(TaxonName.class,//getConversationHolder(),
84
	                     element, "Taxon Name", null,
85
	                    EntitySelectionElement.ALL, style);
86
		selection_taxonBase = formFactory
87
				.createSelectionElement(TaxonBase.class,//getConversationHolder(),
88
						 element, "Taxon", null,
89
						EntitySelectionElement.ALL, style);
90

    
91

    
92
		// TODO set of references
93

    
94
		super.createControls(element, style);
95

    
96
		element_timePeriod.setLabel("Determined When");
97
		selection_agent.setLabel("Determined by");
98

    
99

    
100
		combo_determinationModifier = formFactory.createDefinedTermComboElement(TermType.DeterminationModifier,
101
				element, "Modifier", null, style);
102
	}
103

    
104
	/** {@inheritDoc} */
105
	@Override
106
	public void handleEvent(Object eventSource) {
107
		if (eventSource == combo_determinationModifier) {
108
			getEntity().setModifier(combo_determinationModifier.getSelection());
109
		} else if (eventSource == checkbox_preferredFlag) {
110
			getEntity().setPreferredFlag(checkbox_preferredFlag.getSelection());
111
		} else if (eventSource == selectionTaxonNameBase) {
112
		    getEntity().setTaxonName(selectionTaxonNameBase.getSelection());
113
		    //empty taxon field if name does not belong the taxon
114
		    TaxonBase taxonBase = selection_taxonBase.getEntity();
115
			if(taxonBase!=null && taxonBase.getName()!=null
116
					&& !taxonBase.getName().equals(selectionTaxonNameBase.getSelection())){
117
				selection_taxonBase.setEntity(null);
118
			}
119
		} else if (eventSource == selection_taxonBase) {
120
			TaxonBase taxon = selection_taxonBase.getSelection();
121
            getEntity().setTaxon(taxon);
122
            getEntity().setTaxonName(taxon.getName());
123
            selectionTaxonNameBase.setEntity(taxon.getName());
124
		}
125
		// else if(eventSource == TODO set of references){
126
		//
127
		// }
128
		else if (eventSource == selection_agent) {
129
			getEntity().setDeterminer(selection_agent.getSelection());
130
		} else if (eventSource == text_description) {
131
			getEntity().setDescription(text_description.getText());
132
		} else if (eventSource == element_timePeriod) {
133
			getEntity().setTimeperiod(element_timePeriod.getTimePeriod());
134
		}
135
	}
136

    
137
}
(16-16/37)