// $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.
*/
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.occurrence.DerivedUnitBase;
-import eu.etaxonomy.cdm.model.occurrence.Specimen;
+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.section.occurrence.DerivedUnitBaseWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
-import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldObservationGeneralWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenDetailsWizardPage;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.SpecimenGeneralWizardPage;
/**
* <p>NewDerivedUnitBaseWizard class.</p>
* @created Jun 16, 2010
* @version 1.0
*/
-public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<DerivedUnitBase> {
-
- /** {@inheritDoc} */
- @Override
- public void addPages() {
- addPage(new GeneralWizardPage(formFactory, getConversationHolder(), getFacade()));
- addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), getFacade()));
- addPage(new FieldObservationWizardPage(formFactory, getConversationHolder(), getFacade()));
- addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), getFacade()));
+public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase<?>> {
+ private SpecimenOrObservationType specOrObsType = null;
+
+ public NewDerivedUnitBaseWizard() {
+ super();
}
-
- /**
- * @return
- */
- private DerivedUnitFacade getFacade() {
- try {
- return DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
- } catch (DerivedUnitFacadeNotSupportedException e) {
- // w should never get here
- throw new IllegalStateException();
- }
+
+ public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType) {
+ super();
+ this.specOrObsType = specOrObsType;
}
+ /** {@inheritDoc} */
+ @Override
+ public void addPages() {
+ DerivedUnitFacade derivedUnitFacade = null;
+ try {
+ if (getEntity() != null) {
+ if(getEntity() instanceof FieldUnit){
+ derivedUnitFacade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity());
+
+ addPage(new FieldObservationGeneralWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ addPage(new GatheringEventDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ addPage(new FieldObservationDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ }
+ else if(getEntity() instanceof DerivedUnit){
+ derivedUnitFacade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
+
+ addPage(new SpecimenGeneralWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ addPage(new SpecimenDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ addPage(new DerivedUnitDetailsWizardPage(formFactory, getConversationHolder(), derivedUnitFacade));
+ }
+ }
+ } catch (DerivedUnitFacadeNotSupportedException e) {
+ // we should never get here
+ throw new IllegalStateException();
+ }
+
+ }
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
*/
/** {@inheritDoc} */
@Override
- protected DerivedUnitBase createNewEntity() {
- // TODO we do want to create different derivates of DerivedUnitBase but go with specimen for testing
- // at the moment
- // FIXME add wizard page that handles the selection of derived unit type
- return Specimen.NewInstance();
+ 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(SpecimenOrObservationType.Media);
+ } else if(specOrObsType == SpecimenOrObservationType.FieldUnit){
+ return FieldUnit.NewInstance();
+ } else {
+ return DerivedUnit.NewInstance(specOrObsType);
+ }
+ }
}
/* (non-Javadoc)
protected String getEntityName() {
return "Specimen";
}
-
-
+
+
}