3 * Copyright (C) 2013 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.ui
.campanula
.detailViews
.specimen
;
12 import org
.eclipse
.ui
.forms
.widgets
.ExpandableComposite
;
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
;
33 public class DerivedUnitDetailsElementController
extends AbstractCdmDetailElement
<DerivedUnitFacade
> {
35 private DerivedUnitDetailsElement derivedUnitDetailsElement
;
37 private TextFieldController barCode
;
38 private TextFieldController catalogNumber
;
39 // private ComboDefinedTermController<PreservationMethod> preservationMethod;
40 private EntitySelectionFieldController
<TaxonNameBase
> storedUnder
;
41 private TextFieldController exsiccatum
;
43 private SourceCollectionDetailSection section_source
;
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);
54 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#createControls(eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement, java.lang.Object, int)
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
;
62 entityPreservationMethod
= entity
.getPreservationMethod();
63 } catch (MethodNotSupportedByDerivedUnitTypeException e
) {
65 AbstractUtility
.info(e
.getMessage());
66 entityPreservationMethod
= null;
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
;
72 entitiyExsiccatum
= entity
.getExsiccatum();
73 } catch (MethodNotSupportedByDerivedUnitTypeException e
) {
75 AbstractUtility
.info(e
.getMessage());
76 entitiyExsiccatum
= null;
78 exsiccatum
= new TextFieldController(derivedUnitDetailsElement
.getTxtExsiccatum(), getFormFactory(), formElement
, entitiyExsiccatum
, null);
80 section_source
= formFactory
.createSourceCollectionDetailSection(getConversationHolder(), formElement
, ExpandableComposite
.TWISTIE
);
81 section_source
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY(2, 1));
82 section_source
.setEntity(entity
);
86 * @see eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
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) {
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);
100 } else if (eventSource
== storedUnder
) {
101 getEntity().setStoredUnder(storedUnder
.getEntity());
102 } else if (eventSource
== exsiccatum
) {
104 getEntity().setExsiccatum(exsiccatum
.getText());
105 } catch (Exception e
) {
106 AbstractUtility
.error(this.getClass(), e
);