37f0d4feb9a08e2de1eaec7da0b08aa79ebaf831
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / TissueSampleGeneralDetailElement.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.section.occurrence.dna;
11
12 import org.apache.log4j.Logger;
13
14 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
15 import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
16 import eu.etaxonomy.cdm.model.agent.AgentBase;
17 import eu.etaxonomy.cdm.model.common.DefinedTerm;
18 import eu.etaxonomy.cdm.model.common.TimePeriod;
19 import eu.etaxonomy.cdm.model.occurrence.Collection;
20 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
21 import eu.etaxonomy.taxeditor.model.AbstractUtility;
22 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
23 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
24 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
25 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
26 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
27 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
28 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
29
30 /**
31 * @author pplitzner
32 * @date 16.12.2013
33 *
34 */
35 public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
36
37 static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
38
39 //title cache
40 //sample designation
41 private TimePeriodElement datePreparation;
42 private EntitySelectionElement<AgentBase> selectionPreparedBy;
43 private TermComboElement<DefinedTerm> comboPreservationMedium;
44 private TimePeriodElement datePreservation;
45 private EntitySelectionElement<AgentBase> selectionStoredAt;
46 private EntitySelectionElement<Collection> selectionCollection;
47 private TextWithLabelElement textAccessionNumber;
48 private TextWithLabelElement textBarcode;
49
50
51 /**
52 * @param formFactory
53 * @param formElement
54 */
55 public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
56 super(formFactory, formElement);
57 }
58
59 /*
60 * (non-Javadoc)
61 *
62 * @see
63 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
64 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
65 */
66 @Override
67 protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
68 //FIXME handle all parameters here and in handleEvent()
69 datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", null, style);
70 selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared By", null, EntitySelectionElement.ALL, style);
71 TimePeriod preservationDate = null;
72 DefinedTerm preservationMedium = null;
73 try {
74 if(entity.getPreservationMethod()!=null){
75 preservationDate = entity.getPreservationMethod().getTimeperiod();
76 preservationMedium = entity.getPreservationMethod().getMedium();
77 }
78 } catch (MethodNotSupportedByDerivedUnitTypeException e) {
79 // we ignore this
80 AbstractUtility.info(e.getMessage());
81 }
82 comboPreservationMedium = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Preservation medium", preservationMedium, style);
83 datePreservation = formFactory.createTimePeriodElement(formElement, "Preservation date", preservationDate, style);
84 selectionStoredAt = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Stored at", null, EntitySelectionElement.ALL, style);
85 selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
86 textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
87 textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
88
89 }
90
91 /*
92 * (non-Javadoc)
93 *
94 * @see
95 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
96 * .lang.Object)
97 */
98 @Override
99 public void handleEvent(Object eventSource) {
100 // if (eventSource==comboPreservationMedium) {
101 // addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
102 // }
103 // else if (eventSource==datePreservation) {
104 // addPreservationMethod().setTimeperiod(datePreservation.getTimePeriod());
105 // }
106 // else if(eventSource==selectionCollection){
107 // getEntity().setCollection(selectionCollection.getSelection());
108 // }
109 // else if(eventSource==textAccessionNumber){
110 // getEntity().setAccessionNumber(textAccessionNumber.getText());
111 // }
112 // else if(eventSource==textBarcode){
113 // getEntity().setBarcode(textBarcode.getText());
114 // }
115 }
116
117 private PreservationMethod addPreservationMethod(){
118 PreservationMethod preservationMethod = null;
119 try {
120 preservationMethod = getEntity().getPreservationMethod();
121 if(getEntity().getPreservationMethod()==null){
122 preservationMethod = PreservationMethod.NewInstance();
123 getEntity().setPreservationMethod(preservationMethod);
124 }
125 } catch (MethodNotSupportedByDerivedUnitTypeException e) {
126 // TODO Auto-generated catch block
127 e.printStackTrace();
128 }
129 return preservationMethod;
130 }
131 }