*/
package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
+import org.apache.log4j.Logger;
+
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
+import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
import eu.etaxonomy.cdm.model.agent.AgentBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TimePeriod;
import eu.etaxonomy.cdm.model.occurrence.Collection;
+import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
+import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
*/
public class TissueSampleGeneralDetailElement extends AbstractCdmDetailElement<DerivedUnitFacade> {
+ static private final Logger logger = Logger.getLogger(TissueSampleGeneralDetailElement.class);
+
//title cache
//sample designation
private TimePeriodElement datePreparation;
private EntitySelectionElement<AgentBase> selectionPreparedBy;
- private TextWithLabelElement textPreservationMedium;
+ private TermComboElement<DefinedTerm> comboPreservationMedium;
private TimePeriodElement datePreservation;
private EntitySelectionElement<AgentBase> selectionStoredAt;
private EntitySelectionElement<Collection> selectionCollection;
*/
@Override
protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
+ //FIXME handle all parameters here and in handleEvent()
datePreparation = formFactory.createTimePeriodElement(formElement, "Preparation date", null, style);
selectionPreparedBy = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Prepared By", null, EntitySelectionElement.ALL, style);
- textPreservationMedium = formFactory.createTextWithLabelElement(formElement, "Preservation medium", null, style);
- datePreservation = formFactory.createTimePeriodElement(formElement, "Preservation date", null, style);
+ TimePeriod preservationDate = null;
+ DefinedTerm preservationMedium = null;
+ try {
+ if(entity.getPreservationMethod()!=null){
+ preservationDate = entity.getPreservationMethod().getTimeperiod();
+ preservationMedium = entity.getPreservationMethod().getMedium();
+ }
+ } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+ // we ignore this
+ AbstractUtility.info(e.getMessage());
+ }
+ comboPreservationMedium = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Preservation medium", preservationMedium, style);
+ datePreservation = formFactory.createTimePeriodElement(formElement, "Preservation date", preservationDate, style);
selectionStoredAt = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), formElement, "Stored at", null, EntitySelectionElement.ALL, style);
- selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", null, EntitySelectionElement.ALL, style);
- textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", null, style);
- textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", null, style);
+ selectionCollection = formFactory.createSelectionElement(Collection.class, getConversationHolder(), formElement, "Collection", entity.getCollection(), EntitySelectionElement.ALL, style);
+ textAccessionNumber = formFactory.createTextWithLabelElement(formElement, "Accession Number", entity.getAccessionNumber(), style);
+ textBarcode = formFactory.createTextWithLabelElement(formElement, "Barcode", entity.getBarcode(), style);
}
*/
@Override
public void handleEvent(Object eventSource) {
- }
+ try {
+ if (eventSource==comboPreservationMedium) {
+ PreservationMethod preservationMethod = getEntity().getPreservationMethod();
+ if(preservationMethod==null){
+ preservationMethod = PreservationMethod.NewInstance();
+ getEntity().setPreservationMethod(preservationMethod);
+ }
+ preservationMethod.setMedium(comboPreservationMedium.getSelection());
+ }
+ else if (eventSource==datePreservation) {
+ PreservationMethod preservationMethod = getEntity().getPreservationMethod();
+ if(preservationMethod==null){
+ preservationMethod = PreservationMethod.NewInstance();
+ getEntity().setPreservationMethod(preservationMethod);
+ }
+ preservationMethod.setTimeperiod(datePreservation.getTimePeriod());
+ }
+ }catch (MethodNotSupportedByDerivedUnitTypeException e) {
+ AbstractUtility.errorDialog("Parameter not available", this, "Could not set preservation parameter!", e);
+ }
+ if(eventSource==selectionCollection){
+ getEntity().setCollection(selectionCollection.getSelection());
+ }
+ else if(eventSource==textAccessionNumber){
+ getEntity().setAccessionNumber(textAccessionNumber.getText());
+ }
+ else if(eventSource==textBarcode){
+ getEntity().setBarcode(textBarcode.getText());
+ }
+ }
}