ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / TissueSampleGeneralDetailElement.java
1 /**
2 * Copyright (C) 2013 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
10
11 import org.apache.log4j.Logger;
12
13 import eu.etaxonomy.cdm.api.service.IVocabularyService;
14 import eu.etaxonomy.cdm.model.agent.AgentBase;
15 import eu.etaxonomy.cdm.model.agent.Institution;
16 import eu.etaxonomy.cdm.model.common.DefinedTerm;
17 import eu.etaxonomy.cdm.model.common.TermType;
18 import eu.etaxonomy.cdm.model.common.TermVocabulary;
19 import eu.etaxonomy.cdm.model.common.TimePeriod;
20 import eu.etaxonomy.cdm.model.common.VocabularyEnum;
21 import eu.etaxonomy.cdm.model.molecular.DnaSample;
22 import eu.etaxonomy.cdm.model.occurrence.Collection;
23 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
24 import eu.etaxonomy.taxeditor.store.CdmStore;
25 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
26 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
27 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
28 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
29 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
30 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
31 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
32 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
33
34 /**
35 * @author pplitzner
36 * @date 16.12.2013
37 *
38 */
39 public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DnaSample> {
40
41 private final TermVocabulary plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
42
43 static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
44
45 private TermComboElement<DefinedTerm> comboKindOfTissue;
46 private EntitySelectionElement<Institution> selectionInstitution;
47 private EntitySelectionElement<AgentBase> selectionStaff;
48 private TimePeriodElement datePreparation;
49 private TermComboElement<DefinedTerm> comboPreservationMedium;
50 private EntitySelectionElement<Collection> selectionCollection;
51 private TextWithLabelElement textAccessionNumber;
52 private TextWithLabelElement textBarcode;
53 private CheckboxElement checkIsPublish;
54
55
56 /**
57 * @param formFactory
58 * @param formElement
59 */
60 public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
61 super(formFactory, formElement);
62 }
63
64 /*
65 * (non-Javadoc)
66 *
67 * @see
68 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
69 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
70 */
71 @Override
72 protected void createControls(ICdmFormElement formElement, DnaSample entity, int style) {
73 comboKindOfTissue = formFactory.createDefinedTermComboElement(plantKindOfUnitVocabulary, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
74 TimePeriod preparationDate = null;
75 DefinedTerm preservationMedium = null;
76 AgentBase<?> staff = null;
77 Institution institution = null;
78 if(entity.getDerivedFrom()!=null){
79 staff = entity.getDerivedFrom().getActor();
80 preparationDate = entity.getDerivedFrom().getTimeperiod();
81 institution = entity.getDerivedFrom().getInstitution();
82 }
83 if(entity.getPreservation()!=null){
84 preservationMedium = entity.getPreservation().getMedium();
85 }
86 selectionInstitution = formFactory.createSelectionElement(Institution.class, getConversationHolder(), formElement, "Institution", institution, EntitySelectionElement.ALL, style);
87 selectionStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Staff", staff, EntitySelectionElement.ALL,style);
88 datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
89 comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
90 selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
91 textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
92 textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
93 checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
94
95 }
96
97 /*
98 * (non-Javadoc)
99 *
100 * @see
101 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
102 * .lang.Object)
103 */
104 @Override
105 public void handleEvent(Object eventSource) {
106 if(eventSource==comboKindOfTissue) {
107 getEntity().setKindOfUnit(comboKindOfTissue.getSelection());
108 }
109 else if(eventSource==comboPreservationMedium) {
110 addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
111 }
112 else if(eventSource==selectionCollection){
113 getEntity().setCollection(selectionCollection.getSelection());
114 }
115 else if(eventSource==textAccessionNumber){
116 getEntity().setAccessionNumber(textAccessionNumber.getText());
117 }
118 else if(eventSource==textBarcode){
119 getEntity().setBarcode(textBarcode.getText());
120 }
121 else if(eventSource==datePreparation){
122 if(getEntity().getDerivedFrom()!=null){
123 getEntity().getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
124 }
125 }
126 else if(eventSource==selectionInstitution){
127 if(getEntity().getDerivedFrom()!=null){
128 getEntity().getDerivedFrom().setInstitution(selectionInstitution.getSelection());
129 }
130 }
131 else if(eventSource==selectionStaff){
132 if(getEntity().getDerivedFrom()!=null){
133 getEntity().getDerivedFrom().setActor(selectionStaff.getSelection());
134 }
135 }
136 else if(eventSource==checkIsPublish){
137 getEntity().setPublish(checkIsPublish.getSelection());
138 }
139 }
140
141 private PreservationMethod addPreservationMethod(){
142 PreservationMethod preservationMethod = null;
143 preservationMethod = getEntity().getPreservation();
144 if(getEntity().getPreservation()==null){
145 preservationMethod = PreservationMethod.NewInstance();
146 getEntity().setPreservation(preservationMethod);
147 }
148 return preservationMethod;
149 }
150 }