- adapted PreservationMethod comboElement to model changes (FIXME:3.3 #3780)
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / DerivedUnitBaseDetailElement.java
index 61ab18ee531c749d38fad748f26b5f2add14ffd4..9778af4d957c47203e289528cdb4d83f7705c0df 100644 (file)
@@ -14,9 +14,12 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.MethodNotSupportedByDerivedUnitTypeException;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
+import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+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.LayoutConstants;
@@ -46,9 +49,7 @@ public class DerivedUnitBaseDetailElement extends
 
        private TextWithLabelElement text_exsicatum;
 
-       //FIXME:3.3MC---- see Ticket #3732
-//     private TermComboElement<PreservationMethod> combo_preservationMethod;
-       //FIXME:3.3MC----
+       private TermComboElement<DefinedTerm> combo_preservationMethod;
 
        private SpecimenCollectionDetailSection section_duplicates;
 
@@ -84,14 +85,13 @@ public class DerivedUnitBaseDetailElement extends
         text_catalogNumber = formFactory.createTextWithLabelElement(formElement, "Catalog Number", entity.getCatalogNumber(), style);
 
 
-        //FIXME:3.3MC----
-//             try {
-//            combo_preservationMethod = formFactory.createTermComboElement(PreservationMethod.class, formElement, "Preservation Method", entity.getPreservationMethod(), style);
-//             } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-//                     // we ignore this
-//            AbstractUtility.info(e.getMessage());
-//             }
-               //FIXME:3.3MC----
+               try {
+            PreservationMethod preservationMethod = entity.getPreservationMethod();
+            combo_preservationMethod = formFactory.createTermComboElement(DefinedTerm.class, formElement, "Preservation Method", preservationMethod==null?null:preservationMethod.getDefinedMaterialOrMethod(), style);
+               } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+                       // we ignore this
+            AbstractUtility.info(e.getMessage());
+               }
         selection_storedUnder = formFactory.createSelectionElement(TaxonNameBase.class, getConversationHolder(), formElement, "Stored Under", entity.getStoredUnder(), EntitySelectionElement.ALL, style);
 
                try {
@@ -114,39 +114,37 @@ public class DerivedUnitBaseDetailElement extends
                section_source.setEntity(entity);
        }
 
-       /** {@inheritDoc} */
-       @Override
-       public void handleEvent(Object eventSource) {
-               if (eventSource == text_derivedUnitDefinitions) {
-                       getEntity().addDerivedUnitDefinition(
-                                       text_derivedUnitDefinitions.getText(),
-                                       CdmStore.getDefaultLanguage());
-               } else if (eventSource == text_barcode) {
-                       getEntity().setBarcode(text_barcode.getText());
-               } else if (eventSource == text_catalogNumber) {
-                       getEntity().setCatalogNumber(text_catalogNumber.getText());
-                       //FIXME:3.3MC----
-//             } else if (eventSource == combo_preservationMethod) {
-//                     try {
-//                             getEntity().setPreservationMethod(
-//                                             combo_preservationMethod.getSelection());
-//                     } catch (MethodNotSupportedByDerivedUnitTypeException e) {
-//                             AbstractUtility
-//                                             .errorDialog(
-//                                                             "MethodNotSupportedByDerivedUnitTypeException",
-//                                                             this,
-//                                                             "MethodNotSupportedByDerivedUnitTypeException when trying to set preservation method for derive unit",
-//                                                             e);
-//                     }
-                       //FIXME:3.3MC----
-               } else if (eventSource == selection_storedUnder) {
-                       getEntity().setStoredUnder(selection_storedUnder.getEntity());
-               } else if (eventSource == text_exsicatum) {
-                       try {
-                               getEntity().setExsiccatum(text_exsicatum.getText());
-                       } catch (Exception e) {
-                               AbstractUtility.error(this.getClass(), e);
-                       }
-               }
-       }
+    /** {@inheritDoc} */
+    @Override
+    public void handleEvent(Object eventSource) {
+        if (eventSource == text_derivedUnitDefinitions) {
+            getEntity().addDerivedUnitDefinition(text_derivedUnitDefinitions.getText(), CdmStore.getDefaultLanguage());
+        } else if (eventSource == text_barcode) {
+            getEntity().setBarcode(text_barcode.getText());
+        } else if (eventSource == text_catalogNumber) {
+            getEntity().setCatalogNumber(text_catalogNumber.getText());
+        } else if (eventSource == combo_preservationMethod) {
+            try {
+                PreservationMethod preservationMethod = getEntity().getPreservationMethod();
+                if(preservationMethod!=null){
+                    preservationMethod.setDefinedMaterialOrMethod(combo_preservationMethod.getSelection());
+                }
+            } catch (MethodNotSupportedByDerivedUnitTypeException e) {
+                AbstractUtility
+                        .errorDialog(
+                                "MethodNotSupportedByDerivedUnitTypeException",
+                                this,
+                                "MethodNotSupportedByDerivedUnitTypeException when trying to set preservation method for derive unit",
+                                e);
+            }
+        } else if (eventSource == selection_storedUnder) {
+            getEntity().setStoredUnder(selection_storedUnder.getEntity());
+        } else if (eventSource == text_exsicatum) {
+            try {
+                getEntity().setExsiccatum(text_exsicatum.getText());
+            } catch (Exception e) {
+                AbstractUtility.error(this.getClass(), e);
+            }
+        }
+    }
 }