merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / newWizard / NewDerivedUnitBaseWizard.java
index 0ccb5a341af8789ba530183667a1f4b102116822..0d8f350763b87d9a357878f8893d44a74d810b11 100644 (file)
@@ -21,10 +21,10 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitBaseWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitWizardPage;
 import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
 
 /**
  * <p>NewDerivedUnitBaseWizard class.</p>
@@ -48,48 +48,52 @@ public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOr
        @Override
        public void addPages() {
            DerivedUnitFacade facade = null;
-        try {
-            if(getEntity() instanceof DerivedUnit) {
-                facade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
-                addPage(new GeneralWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
-            }
-            else if(getEntity() instanceof FieldUnit){
-                facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
-                addPage(new FieldUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
-                addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
-            }
-        } catch (DerivedUnitFacadeNotSupportedException e) {
-            // we should never get here
-            throw new IllegalStateException();
-        }
-       }
+           try {
+               if(getEntity() instanceof DerivedUnit) {
+                   facade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+                   facade.getFieldUnit(true); //TODO: this is a temporary solution for the Campanula project as
+                   //this ALWAYS needs a FieldUnit as root of the hierarchy
 
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected SpecimenOrObservationBase createNewEntity() {
-           if(specOrObsType == null) {
-               return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
-           } else {
-               if(SpecimenOrObservationType.Media.equals(specOrObsType) ||
-                       ((specOrObsType.getKindOf() != null) &&
-                               specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
-                   return MediaSpecimen.NewInstance(specOrObsType);
-               } else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
-                   return FieldUnit.NewInstance();
-               } else {
-                   return DerivedUnit.NewInstance(specOrObsType);
+                   addPage(new DerivedUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
+                   addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
+                   addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
+                   addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
                }
+               else if(getEntity() instanceof FieldUnit){
+                   facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+                   addPage(new FieldUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
+                   addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
+                   addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
+               }
+           } catch (DerivedUnitFacadeNotSupportedException e) {
+               // we should never get here
+               throw new IllegalStateException();
            }
        }
 
+    /*
+     * (non-Javadoc)
+     *
+     * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#
+     * createNewEntity()
+     */
+    /** {@inheritDoc} */
+    @Override
+    protected SpecimenOrObservationBase createNewEntity() {
+        if (specOrObsType == null) {
+            return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
+        } else {
+            if (SpecimenOrObservationType.Media.equals(specOrObsType)
+                    || ((specOrObsType.getKindOf() != null) && specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
+                   return MediaSpecimen.NewInstance(specOrObsType);
+            } else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
+                return FieldUnit.NewInstance();
+            } else {
+                return DerivedUnit.NewInstance(specOrObsType);
+            }
+        }
+    }
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
         */