Project

General

Profile

Download (5.52 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_barcode;
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_barcode = formFactory.createTextWithLabelElement(formElement,
86
				"Barcode", entity.getBarcode(), style);
87
		text_catalogNumber = formFactory
88
				.createTextWithLabelElement(formElement, "Catalog Number",
89
						entity.getCatalogNumber(), style);
90

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

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

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

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

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