Merge branch 'release/5.23.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / detail / CdmSectionPart.java
index 3bbc184f893c9d37054a3ceb843075f2d3ec8377..9623ee51405df141b1c345e29b4104209537dacf 100644 (file)
@@ -6,7 +6,6 @@
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
-
 package eu.etaxonomy.taxeditor.view.detail;
 
 import java.util.EventObject;
@@ -37,8 +36,10 @@ import eu.etaxonomy.taxeditor.ui.section.name.NameRelationshipDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NomenclaturalStatusSection;
 import eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.name.TypeDesignationSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DeterminationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GeoScopeDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.IDerivedUnitFacadeDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.SampleDesignationDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.reference.NomenclaturalReferenceDetailSection;
 import eu.etaxonomy.taxeditor.ui.section.supplemental.RightsSection;
 import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
@@ -50,10 +51,9 @@ import eu.etaxonomy.taxeditor.ui.section.taxon.TaxonDetailSection;
  *
  * @author n.hoffmann
  * @created Feb 8, 2010
- * @version 1.0
  */
-public class CdmSectionPart<T> extends SectionPart implements
-               IPropertyChangeListener {
+public class CdmSectionPart<T> extends SectionPart
+        implements IPropertyChangeListener {
 
     public static String EXPANDED = "expanded";
     public static String COLLAPSED = "collapsed";
@@ -65,25 +65,17 @@ public class CdmSectionPart<T> extends SectionPart implements
         */
        private Object rootInput;
 
-       /**
-        * <p>
-        * Constructor for CdmSectionPart.
-        * </p>
-        *
-        * @param section
-        *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-        *            object.
-        * @param <T>
-        *            a T object.
-        */
        public CdmSectionPart(AbstractFormSection<T> section) {
                super(section);
                formSection = section;
        }
 
-       /** {@inheritDoc} */
        @Override
        public boolean setFormInput(Object input) {
+        if (formSection.isDisposed()){
+            return false;
+        }
+
            this.rootInput = input;
            //FIXME (CM): Need to fix this part of the design.
            //The design seems to be locked to the idea that only one
@@ -93,10 +85,11 @@ public class CdmSectionPart<T> extends SectionPart implements
                if (input instanceof IElementHasDetails) {
                        input = ((IElementHasDetails) input).getData();
                }
+
                if ((input instanceof TaxonBase)
                                && (formSection instanceof ITaxonBaseDetailSection)) {
                        ((ITaxonBaseDetailSection) formSection)
-                                       .setTaxonBase((TaxonBase) input);
+                                       .setTaxonBase((TaxonBase<?>) input);
                        return true;
                }
                else if (input.getClass().equals(DerivedUnit.class)
@@ -146,11 +139,6 @@ public class CdmSectionPart<T> extends SectionPart implements
                        ((NomenclaturalStatusSection) formSection)
                                        .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
                        return true;
-//             }else if ((input instanceof TaxonRelationship)
-//                             && (formSection instanceof ProtologueSection)) {
-//                     ((ProtologueSection) formSection)
-//                                     .setTaxonBase( ((TaxonRelationship)input).getFromTaxon());
-//                     return true;
                }else if ((input instanceof TaxonRelationship)
                                && (formSection instanceof TypeDesignationSection)) {
                        ((TypeDesignationSection) formSection)
@@ -166,6 +154,14 @@ public class CdmSectionPart<T> extends SectionPart implements
                        && (formSection instanceof RightsSection)){
                    ((RightsSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
                    return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof DeterminationDetailSection)){
+            ((DeterminationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+            return true;
+               }else if ((input instanceof DerivedUnitFacade)
+                && (formSection instanceof SampleDesignationDetailSection)){
+            ((SampleDesignationDetailSection)formSection).setEntity(((DerivedUnitFacade)input).innerDerivedUnit());
+            return true;
                }
                //check whether this is needed
 //     }else if ((input instanceof TaxonBase)
@@ -174,20 +170,12 @@ public class CdmSectionPart<T> extends SectionPart implements
 //        return true;
 //    }
 
-
                formSection.setEntity((T) input);
 
+
                return true;
        }
 
-       /*
-        * (non-Javadoc)
-        *
-        * @see
-        * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse
-        * .jface.util.PropertyChangeEvent)
-        */
-       /** {@inheritDoc} */
        @Override
        public void propertyChange(PropertyChangeEvent event) {
                if (event != null) {
@@ -222,5 +210,4 @@ public class CdmSectionPart<T> extends SectionPart implements
            super.expansionStateChanged(expanded);
            PreferencesUtil.setStringValue(StoreUtil.getPrefKey(formSection.getClass(), rootInput.getClass().getCanonicalName()), expanded?EXPANDED:COLLAPSED);
        }
-
-}
+}
\ No newline at end of file