- updated molecular DetailsViews according to requirements
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / AmplificationGeneralDetailElement.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 eu.etaxonomy.cdm.model.agent.AgentBase;
13 import eu.etaxonomy.cdm.model.agent.Institution;
14 import eu.etaxonomy.cdm.model.common.DefinedTerm;
15 import eu.etaxonomy.cdm.model.common.TermType;
16 import eu.etaxonomy.cdm.model.common.TimePeriod;
17 import eu.etaxonomy.cdm.model.molecular.Amplification;
18 import eu.etaxonomy.cdm.model.molecular.Primer;
19 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
21 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
23 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
24 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
25 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
26
27 /**
28 * @author pplitzner
29 * @date 19.12.2013
30 *
31 */
32 public class AmplificationGeneralDetailElement extends AbstractCdmDetailElement<Amplification> {
33
34 private TextWithLabelElement textDesignation;
35 private TextWithLabelElement textNotes;
36 private TermComboElement<DefinedTerm> comboMarker;
37 private TimePeriodElement dateAmplification;
38 private EntitySelectionElement<Institution> selectionInstitution;
39 private EntitySelectionElement<AgentBase> selectionAmplificationStaff;
40 private EntitySelectionElement<Primer> selectionPrimerFW;
41 private EntitySelectionElement<Primer> selectionPrimerRW;
42 // private CheckboxElement checkBoxAmplificationSuccess;
43 // private TextWithLabelElement textAmplificationSuccessDetails;
44 // private TermComboElement<DefinedTerm> comboAmplificationMaterialOrMethod;
45
46 // private NumberWithLabelElement numberGelVoltage;
47 // private NumberWithLabelElement numberGelConcentration;
48 // private NumberWithLabelElement numberGelRunningTime;
49 // private TextWithLabelElement textLadderUsed;
50
51 // private TermComboElement<DefinedTerm> comboPurificationMaterialOrMethod;
52
53
54 /**
55 * @param formFactory
56 * @param formElement
57 */
58 public AmplificationGeneralDetailElement(CdmFormFactory formFactory, ICdmFormElement formElement) {
59 super(formFactory, formElement);
60 }
61
62 /*
63 * (non-Javadoc)
64 *
65 * @see
66 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
67 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
68 */
69 @Override
70 protected void createControls(ICdmFormElement formElement, Amplification entity, int style) {
71 textDesignation = formFactory.createTextWithLabelElement(formElement, "Designation", entity.getDescription(), style);
72 textDesignation.setEnabled(false);
73 //TODO institution
74 selectionAmplificationStaff = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Amplification staff", entity.getActor(), EntitySelectionElement.ALL, style);
75 dateAmplification = formFactory.createTimePeriodElement(formElement, "Date", entity.getTimeperiod(), style);
76 comboMarker = formFactory.createDefinedTermComboElement(TermType.DnaMarker, formElement, "DNA Marker", entity.getDnaMarker(), style);
77 selectionPrimerFW = formFactory.createSelectionElement(Primer.class, getConversationHolder(), formElement, "Primer FW", entity.getForwardPrimer(), EntitySelectionElement.ALL, style);
78 selectionPrimerRW = formFactory.createSelectionElement(Primer.class, getConversationHolder(), formElement, "Primer RW", entity.getReversePrimer(), EntitySelectionElement.ALL, style);
79 // checkBoxAmplificationSuccess = formFactory.createCheckbox(formElement, "Amplification Success", entity.getSuccessful(), style);
80 // textAmplificationSuccessDetails = formFactory.createTextWithLabelElement(formElement, "Ampl. Success Details", entity.getSuccessText(), style);
81 // comboAmplificationMaterialOrMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Ampl. Mat. & Meth.", entity.get, style)
82 // numberGelVoltage = formFactory.createNumberTextWithLabelElement(formElement, "Gel Voltage (V)", entity.getElectrophoresisVoltage(), style);
83 // numberGelConcentration = formFactory.createNumberTextWithLabelElement(formElement, "Gel Concentration", entity.getGelConcentration(), style);
84 // numberGelRunningTime = formFactory.createNumberTextWithLabelElement(formElement, "Gel Ruinning Time (Min)", entity.getGelRunningTime(), style);
85 // textLadderUsed = formFactory.createTextWithLabelElement(formElement, "Ladder Used", entity.getLadderUsed(), style);
86 // comboPurificationMaterialOrMethod = formFactory.createDefinedTermComboElement(TermType.MaterialOrMethod, formElement, "Purification Mat. & Meth.",
87 // entity.getPurification()==null?null:entity.getPurification().getDefinedMaterialOrMethod(), style);
88 //TODO notes
89 updateDesignationText();
90 }
91
92 private void updateDesignationText(){
93 String institutionName = "";
94 String staffName = "";
95 String dateString = "";
96 //TODO institution
97 // Institution selection = selectionInstitution.getSelection();
98 // if(selection!=null){
99 // institutionName = selection.getName();
100 // }
101 AgentBase staff = selectionAmplificationStaff.getSelection();
102 if(staff!=null){
103 staffName = staff.getTitleCache();
104 }
105 TimePeriod timePeriod = dateAmplification.getTimePeriod();
106 if(timePeriod!=null){
107 dateString = timePeriod.toString()!=null?timePeriod.toString():"";
108 }
109 String designation = "";
110 if(!institutionName.equals("")){
111 designation += institutionName;
112 }
113 if(!staffName.equals("")){
114 if(!designation.equals("")){
115 designation += "_";
116 }
117 designation += staffName;
118 }
119 if(!dateString.equals("")){
120 if(!designation.equals("")){
121 designation += "_";
122 }
123 designation += dateString;
124 }
125 textDesignation.setText(designation);
126 getEntity().setDescription(designation);
127 }
128
129 /*
130 * (non-Javadoc)
131 *
132 * @see
133 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
134 * .lang.Object)
135 */
136 @Override
137 public void handleEvent(Object eventSource) {
138 if(eventSource==textNotes){
139 getEntity().setDescription(textNotes.getText());
140 }
141 else if(eventSource==comboMarker){
142 getEntity().setDnaMarker(comboMarker.getSelection());
143 }
144 else if(eventSource==dateAmplification){
145 getEntity().setTimeperiod(dateAmplification.getTimePeriod());
146 updateDesignationText();
147 }
148 else if(eventSource==selectionAmplificationStaff){
149 getEntity().setActor(selectionAmplificationStaff.getEntity());
150 updateDesignationText();
151 }
152 else if(eventSource==selectionInstitution){
153 //TODO implement
154 updateDesignationText();
155 }
156 else if(eventSource==selectionPrimerFW){
157 getEntity().setForwardPrimer(selectionPrimerFW.getSelection());
158 }
159 else if(eventSource==selectionPrimerRW){
160 getEntity().setReversePrimer(selectionPrimerRW.getSelection());
161 }
162 // else if(eventSource==checkBoxAmplificationSuccess){
163 // getEntity().setSuccessful(checkBoxAmplificationSuccess.getSelection());
164 // }
165 // else if(eventSource==textAmplificationSuccessDetails){
166 // getEntity().setSuccessText(textAmplificationSuccessDetails.getText());
167 // }
168 // else if(eventSource==comboAmplificationMaterialOrMethod){
169 //
170 // }
171 // else if(eventSource==numberGelVoltage){
172 // getEntity().setElectrophoresisVoltage(numberGelVoltage.getDouble());
173 // }
174 // else if(eventSource==numberGelConcentration){
175 // getEntity().setGelConcentration(numberGelConcentration.getDouble());
176 // }
177 // else if(eventSource==numberGelRunningTime){
178 // getEntity().setGelRunningTime(numberGelRunningTime.getDouble());
179 // }
180 // else if(eventSource==textLadderUsed){
181 // getEntity().setLadderUsed(textLadderUsed.getText());
182 // }
183 // else if(eventSource==comboPurificationMaterialOrMethod){
184 // MaterialOrMethodEvent purification = getEntity().getPurification();
185 // if(purification==null){
186 // purification = MaterialOrMethodEvent.NewInstance();
187 // getEntity().setPurification(purification);
188 // }
189 // purification.setDefinedMaterialOrMethod(comboPurificationMaterialOrMethod.getSelection());
190 // }
191 }
192 }