- fixed creation of multiple DerivedUnitFacades in specimen wizard (fixes #3839)
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 6 Nov 2013 13:38:16 +0000 (13:38 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 6 Nov 2013 13:38:16 +0000 (13:38 +0000)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java

index 30be004c7d41e951650ff01da6d3bc21ff54ab9f..0b4c9bf950612fc6756a278146d3c76198dcbf47 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * 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.
 */
@@ -13,16 +13,11 @@ package eu.etaxonomy.taxeditor.newWizard;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
-import eu.etaxonomy.cdm.model.common.OriginalSourceType;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
-import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
-import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.OriginalSourceTypeSelectionDialog;
-import eu.etaxonomy.taxeditor.ui.dialog.selection.SpecimenOrObservationTypeSelectionDialog;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
@@ -37,11 +32,11 @@ import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
  */
 public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnit> {
        private SpecimenOrObservationType specOrObsType = null;
-       
+
        public NewDerivedUnitBaseWizard() {
-               super();        
+               super();
        }
-       
+
        public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType) {
                super();
                this.specOrObsType = specOrObsType;
@@ -49,13 +44,22 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
        /** {@inheritDoc} */
        @Override
        public void addPages() {
-               addPage(new GeneralWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), getFacade()));
-               addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), getFacade()));
-               
+           DerivedUnitFacade facade = getFacade();
+           try {
+               if(getEntity() != null) {
+                   facade = DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+               }
+           } catch (DerivedUnitFacadeNotSupportedException e) {
+               // w should never get here
+               throw new IllegalStateException();
+           }
+        addPage(new GeneralWizardPage(formFactory, getConversationHolder(), facade));
+               addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
+               addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
+               addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
+
        }
-       
+
        /**
         * @return
         */
@@ -76,17 +80,17 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
         */
        /** {@inheritDoc} */
        @Override
-       protected DerivedUnit createNewEntity() {               
+       protected DerivedUnit createNewEntity() {
                if(specOrObsType == null) {
                        return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
-               } else {                        
-                       if(SpecimenOrObservationType.Media.equals(specOrObsType) || 
-                                       ((((SpecimenOrObservationType)specOrObsType).getKindOf() != null) &&
-                                       ((SpecimenOrObservationType)specOrObsType).getKindOf().equals(SpecimenOrObservationType.Media))) {
+               } else {
+                       if(SpecimenOrObservationType.Media.equals(specOrObsType) ||
+                                       ((specOrObsType.getKindOf() != null) &&
+                                       specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
                                return MediaSpecimen.NewInstance(SpecimenOrObservationType.Media);
                        } else {
-                               return DerivedUnit.NewInstance((SpecimenOrObservationType)specOrObsType);
-                       }                                               
+                               return DerivedUnit.NewInstance(specOrObsType);
+                       }
                }
        }
 
@@ -103,6 +107,6 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUni
        protected String getEntityName() {
                return "Specimen";
        }
-       
-       
+
+
 }