333dd67b588eec99a0ea3dc192a7cd7a07678957
[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.facade.DerivedUnitFacade;
14 import eu.etaxonomy.cdm.api.service.IVocabularyService;
15 import eu.etaxonomy.cdm.model.agent.AgentBase;
16 import eu.etaxonomy.cdm.model.agent.Institution;
17 import eu.etaxonomy.cdm.model.common.TimePeriod;
18 import eu.etaxonomy.cdm.model.occurrence.Collection;
19 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
20 import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
21 import eu.etaxonomy.cdm.model.term.DefinedTerm;
22 import eu.etaxonomy.cdm.model.term.TermType;
23 import eu.etaxonomy.cdm.model.term.TermVocabulary;
24 import eu.etaxonomy.cdm.model.term.VocabularyEnum;
25 import eu.etaxonomy.taxeditor.store.CdmStore;
26 import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
27 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
28 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
29 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
30 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
31 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
32 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
33 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
34
35 /**
36 * @author pplitzner
37 * @date 16.12.2013
38 */
39 public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
40
41 @SuppressWarnings("unused")
42 static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
43
44 private final TermVocabulary<?> plantKindOfUnitVocabulary = CdmStore.getService(IVocabularyService.class).find(VocabularyEnum.PlantKindOfUnit.getUuid());
45
46 private TermComboElement<DefinedTerm> comboKindOfTissue;
47 private EntitySelectionElement<Institution> selectionInstitution;
48 private EntitySelectionElement<AgentBase> selectionStaff;
49 private TimePeriodElement datePreparation;
50 private TermComboElement<DefinedTerm> comboPreservationMedium;
51 private EntitySelectionElement<Collection> selectionCollection;
52 private TextWithLabelElement textAccessionNumber;
53 private TextWithLabelElement textBarcode;
54 private CheckboxElement checkIsPublish;
55
56 public TissueSampleGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
57 super(formFactory, formElement);
58 }
59
60 @Override
61 protected void createControls(ICdmFormElement formElement, DerivedUnitFacade facade, int style) {
62 DerivedUnit entity = getEntity().innerDerivedUnit();
63
64 comboKindOfTissue = formFactory.createDefinedTermComboElement(plantKindOfUnitVocabulary, formElement, "Kind Of Tissue", entity.getKindOfUnit(), style);
65 TimePeriod preparationDate = null;
66 DefinedTerm preservationMedium = null;
67 AgentBase<?> staff = null;
68 Institution institution = null;
69 if(entity.getDerivedFrom()!=null){
70 staff = entity.getDerivedFrom().getActor();
71 preparationDate = entity.getDerivedFrom().getTimeperiod();
72 institution = entity.getDerivedFrom().getInstitution();
73 }
74 if(entity.getPreservation()!=null){
75 preservationMedium = entity.getPreservation().getMedium();
76 }
77 selectionInstitution = formFactory.createSelectionElement(Institution.class,
78 formElement, "Institution", institution, EntitySelectionElement.ALL, style);
79 selectionStaff = formFactory.createSelectionElement(AgentBase.class,
80 formElement, "Staff", staff, EntitySelectionElement.ALL,style);
81 datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", preparationDate, style);
82 comboPreservationMedium = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Preservation medium", preservationMedium, style);
83 selectionCollection = formFactory.createSelectionElement(Collection.class,
84 formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
85 textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
86 textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
87 checkIsPublish = formFactory.createCheckbox(formElement, "Publish", entity.isPublish(), style);
88
89 }
90
91 @Override
92 public void handleEvent(Object eventSource) {
93 DerivedUnit entity = getEntity().innerDerivedUnit();
94 if(eventSource==comboKindOfTissue) {
95 entity.setKindOfUnit(comboKindOfTissue.getSelection());
96 }
97 else if(eventSource==comboPreservationMedium) {
98 addPreservationMethod().setMedium(comboPreservationMedium.getSelection());
99 }
100 else if(eventSource==selectionCollection){
101 getEntity().setCollection(selectionCollection.getSelection());
102 }
103 else if(eventSource==textAccessionNumber){
104 getEntity().setAccessionNumber(textAccessionNumber.getText());
105 }
106 else if(eventSource==textBarcode){
107 getEntity().setBarcode(textBarcode.getText());
108 }
109 else if(eventSource==datePreparation){
110 if(entity.getDerivedFrom()!=null){
111 entity.getDerivedFrom().setTimeperiod(datePreparation.getTimePeriod());
112 }
113 }
114 else if(eventSource==selectionInstitution){
115 if(entity.getDerivedFrom()!=null){
116 entity.getDerivedFrom().setInstitution(selectionInstitution.getSelection());
117 }
118 }
119 else if(eventSource==selectionStaff){
120 if(entity.getDerivedFrom()!=null){
121 entity.getDerivedFrom().setActor(selectionStaff.getSelection());
122 }
123 }
124 else if(eventSource==checkIsPublish){
125 entity.setPublish(checkIsPublish.getSelection());
126 }
127 }
128
129 private PreservationMethod addPreservationMethod(){
130 DerivedUnit entity = getEntity().innerDerivedUnit();
131 PreservationMethod preservationMethod = null;
132 preservationMethod = entity.getPreservation();
133 if(entity.getPreservation()==null){
134 preservationMethod = PreservationMethod.NewInstance();
135 entity.setPreservation(preservationMethod);
136 }
137 return preservationMethod;
138 }
139 }