Project

General

Profile

Download (5.58 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy 
5
 * http://www.e-taxonomy.eu
6
 * 
7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8
 * See LICENSE.TXT at the top of this package for the full license terms.
9
 */
10

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

    
13
import org.eclipse.ui.forms.widgets.Section;
14

    
15
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
16
import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
17
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
18
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
19
import eu.etaxonomy.taxeditor.store.CdmStore;
20
import eu.etaxonomy.taxeditor.store.StoreUtil;
21
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
22
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EntityDetailType;
24
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
25
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
26
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
27
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
28
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
29

    
30
/**
31
 * <p>
32
 * DerivedUnitBaseDetailElement class.
33
 * </p>
34
 * 
35
 * @author n.hoffmann
36
 * @created Jun 24, 2010
37
 * @version 1.0
38
 */
39
public class DerivedUnitBaseDetailElement extends
40
		AbstractCdmDetailElement<DerivedUnitFacade> {
41

    
42
	private TextWithLabelElement text_derivedUnitDefinitions;
43

    
44
	private TextWithLabelElement text_accessionNumber;
45

    
46
	private TextWithLabelElement text_catalogNumber;
47

    
48
	private EntitySelectionElement<TaxonNameBase> selection_storedUnder;
49

    
50
	private TextWithLabelElement text_exsicatum;
51

    
52
	private TermComboElement<PreservationMethod> combo_preservationMethod;
53

    
54
	private SpecimenCollectionDetailSection section_duplicates;
55

    
56
	private SourceCollectionDetailSection section_source;
57

    
58
	/**
59
	 * <p>
60
	 * Constructor for DerivedUnitBaseDetailElement.
61
	 * </p>
62
	 * 
63
	 * @param formFactory
64
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
65
	 *            object.
66
	 * @param formElement
67
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
68
	 *            object.
69
	 */
70
	public DerivedUnitBaseDetailElement(CdmFormFactory formFactory,
71
			ICdmFormElement formElement) {
72
		super(formFactory, formElement);
73
	}
74

    
75
	/** {@inheritDoc} */
76
	@Override
77
	protected void createControls(ICdmFormElement formElement,
78
			DerivedUnitFacade entity, int style) {
79
		// Disable for now
80
		// text_derivedUnitDefinitions =
81
		// formFactory.createTextWithLabelElement(formElement,
82
		// "Specimen Definition",
83
		// facade.getDerivedUnitDefinition(CdmStore.getDefaultLanguage()),
84
		// style);
85
		text_accessionNumber = formFactory.createTextWithLabelElement(
86
				formElement, "Accession Number", entity.getAccessionNumber(),
87
				style);
88
		text_catalogNumber = formFactory
89
				.createTextWithLabelElement(formElement, "Catalog Number",
90
						entity.getCatalogNumber(), style);
91

    
92
		try {
93
			combo_preservationMethod = formFactory.createTermComboElement(PreservationMethod.class,
94
							formElement, "Preservation Method",
95
							entity.getPreservationMethod(), style);
96
		} catch (MethodNotSupportedByDerivedUnitTypeException e) {
97
			// we ignore this
98
			StoreUtil.info(e.getMessage());
99
		}
100
		selection_storedUnder = formFactory
101
				.createSelectionElement(TaxonNameBase.class,
102
						getConversationHolder(), formElement, "Stored Under",
103
						entity.getStoredUnder(), EntitySelectionElement.ALL,
104
						style);
105

    
106
		try {
107
			text_exsicatum = formFactory.createTextWithLabelElement(
108
					formElement, "Exsiccatum", entity.getExsiccatum(), style);
109
		} catch (MethodNotSupportedByDerivedUnitTypeException e) {
110
			// we ignore this
111
			StoreUtil.info(e.getMessage());
112
		}
113

    
114
		section_duplicates = (SpecimenCollectionDetailSection) formFactory
115
				.createEntityDetailSection(
116
						EntityDetailType.SPECIMEN_COLLECTION,
117
						getConversationHolder(), formElement, Section.TWISTIE);
118
		section_duplicates
119
				.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
120
		section_duplicates.setEntity(entity);
121

    
122
		section_source = (SourceCollectionDetailSection) formFactory
123
				.createEntityDetailSection(
124
						EntityDetailType.IDENTIFIABLE_SOURCE_COLLECTION,
125
						getConversationHolder(), formElement, Section.TWISTIE);
126
		section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
127
		section_source.setEntity(entity);
128
	}
129

    
130
	/** {@inheritDoc} */
131
	@Override
132
	public void handleEvent(Object eventSource) {
133
		if (eventSource == text_derivedUnitDefinitions) {
134
			getEntity().addDerivedUnitDefinition(
135
					text_derivedUnitDefinitions.getText(),
136
					CdmStore.getDefaultLanguage());
137
		} else if (eventSource == text_accessionNumber) {
138
			getEntity().setAccessionNumber(text_accessionNumber.getText());
139
		} else if (eventSource == text_catalogNumber) {
140
			getEntity().setCatalogNumber(text_catalogNumber.getText());
141
		} else if (eventSource == combo_preservationMethod) {
142
			try {
143
				getEntity().setPreservationMethod(
144
						combo_preservationMethod.getSelection());
145
			} catch (MethodNotSupportedByDerivedUnitTypeException e) {
146
				StoreUtil
147
						.errorDialog(
148
								"MethodNotSupportedByDerivedUnitTypeException",
149
								this,
150
								"MethodNotSupportedByDerivedUnitTypeException when trying to set preservation method for derive unit",
151
								e);
152
			}
153
		} else if (eventSource == selection_storedUnder) {
154
			getEntity().setStoredUnder(selection_storedUnder.getEntity());
155
		} else if (eventSource == text_exsicatum) {
156
			try {
157
				getEntity().setExsiccatum(text_exsicatum.getText());
158
			} catch (Exception e) {
159
				StoreUtil.error(this.getClass(), e);
160
			}
161
		}
162
	}
163
}
(7-7/29)