merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / campanula / detailViews / specimen / DerivedUnitDetailsElementController.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 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 package eu.etaxonomy.taxeditor.ui.campanula.detailViews.specimen;
11
12 import org.eclipse.ui.forms.widgets.ExpandableComposite;
13
14 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
15 import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
16 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
17 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
18 import eu.etaxonomy.taxeditor.model.AbstractUtility;
19 import eu.etaxonomy.taxeditor.ui.campanula.basicFields.EntitySelectionFieldController;
20 import eu.etaxonomy.taxeditor.ui.campanula.basicFields.TextFieldController;
21 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
25 import eu.etaxonomy.taxeditor.ui.section.occurrence.SourceCollectionDetailSection;
26 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
27
28 /**
29 * @author pplitzner
30 * @date 29.08.2013
31 *
32 */
33 public class DerivedUnitDetailsElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
34
35 private DerivedUnitDetailsElement derivedUnitDetailsElement;
36
37 private TextFieldController barCode;
38 private TextFieldController catalogNumber;
39 // private ComboDefinedTermController<PreservationMethod> preservationMethod;
40 private EntitySelectionFieldController<TaxonNameBase> storedUnder;
41 private TextFieldController exsiccatum;
42
43 private SourceCollectionDetailSection section_source;
44
45
46 public DerivedUnitDetailsElementController(DerivedUnitDetailsElement derivedUnitDetailsElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
47 super(formFactory, formElement);
48 this.derivedUnitDetailsElement = derivedUnitDetailsElement;
49 setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
50 formFactory.addPropertyChangeListener(this);
51 }
52
53 /* (non-Javadoc)
54 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement, java.lang.Object, int)
55 */
56 @Override
57 protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
58 barCode = new TextFieldController(derivedUnitDetailsElement.getTextBarcode(), getFormFactory(), formElement, entity.getBarcode(), null);
59 catalogNumber = new TextFieldController(derivedUnitDetailsElement.getTextCatalogNumber(), getFormFactory(), formElement, entity.getCatalogNumber(), null);
60 PreservationMethod entityPreservationMethod;
61 try {
62 entityPreservationMethod = entity.getPreservationMethod();
63 } catch (MethodNotSupportedByDerivedUnitTypeException e) {
64 // we ignore this
65 AbstractUtility.info(e.getMessage());
66 entityPreservationMethod = null;
67 }
68 // preservationMethod = new ComboDefinedTermController<PreservationMethod>(derivedUnitDetailsElement.getComboPreservationMethod(), getFormFactory(), formElement, PreservationMethod.class, entityPreservationMethod, style);
69 storedUnder = new EntitySelectionFieldController<TaxonNameBase>(derivedUnitDetailsElement.getStoredUnderSelectionField(), getFormFactory(), getConversationHolder(), formElement, TaxonNameBase.class, entity.getStoredUnder(), EntitySelectionElement.ALL);
70 String entitiyExsiccatum;
71 try {
72 entitiyExsiccatum = entity.getExsiccatum();
73 } catch (MethodNotSupportedByDerivedUnitTypeException e) {
74 // we ignore this
75 AbstractUtility.info(e.getMessage());
76 entitiyExsiccatum = null;
77 }
78 exsiccatum = new TextFieldController(derivedUnitDetailsElement.getTxtExsiccatum(), getFormFactory(), formElement, entitiyExsiccatum, null);
79
80 section_source = formFactory.createSourceCollectionDetailSection(getConversationHolder(), formElement, ExpandableComposite.TWISTIE);
81 section_source.setLayoutData(LayoutConstants.FILL_HORIZONTALLY(2, 1));
82 section_source.setEntity(entity);
83 }
84
85 /* (non-Javadoc)
86 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
87 */
88 @Override
89 public void handleEvent(Object eventSource) {
90 if (eventSource == barCode) {
91 getEntity().setBarcode(barCode.getText());
92 } else if (eventSource == catalogNumber) {
93 getEntity().setCatalogNumber(catalogNumber.getText());
94 // } else if (eventSource == preservationMethod) {
95 // try {
96 // getEntity().setPreservationMethod(preservationMethod.getSelection());
97 // } catch (MethodNotSupportedByDerivedUnitTypeException e) {
98 // AbstractUtility.errorDialog("MethodNotSupportedByDerivedUnitTypeException", this, "MethodNotSupportedByDerivedUnitTypeException when trying to set preservation method for derive unit", e);
99 // }
100 } else if (eventSource == storedUnder) {
101 getEntity().setStoredUnder(storedUnder.getEntity());
102 } else if (eventSource == exsiccatum) {
103 try {
104 getEntity().setExsiccatum(exsiccatum.getText());
105 } catch (Exception e) {
106 AbstractUtility.error(this.getClass(), e);
107 }
108 }
109 }
110 }