3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.newWizard
;
13 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacade
;
14 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeNotSupportedException
;
15 import eu
.etaxonomy
.cdm
.api
.service
.IOccurrenceService
;
16 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
17 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
18 import eu
.etaxonomy
.cdm
.model
.occurrence
.MediaSpecimen
;
19 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
20 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
21 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
22 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DerivedUnitDetailsWizardPage
;
24 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldObservationDetailsWizardPage
;
25 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldObservationGeneralWizardPage
;
26 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GatheringEventDetailsWizardPage
;
27 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.SpecimenDetailsWizardPage
;
28 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.SpecimenGeneralWizardPage
;
31 * <p>NewDerivedUnitBaseWizard class.</p>
34 * @created Jun 16, 2010
37 public class NewDerivedUnitBaseWizard
extends AbstractNewEntityWizard
<SpecimenOrObservationBase
<?
>> {
38 private SpecimenOrObservationType specOrObsType
= null;
40 public NewDerivedUnitBaseWizard() {
44 public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType
) {
46 this.specOrObsType
= specOrObsType
;
50 public void addPages() {
51 DerivedUnitFacade derivedUnitFacade
= null;
53 if (getEntity() != null) {
54 if(getEntity() instanceof FieldUnit
){
55 derivedUnitFacade
= DerivedUnitFacade
.NewInstance(SpecimenOrObservationType
.FieldUnit
, (FieldUnit
)getEntity());
57 addPage(new FieldObservationGeneralWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
58 addPage(new GatheringEventDetailsWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
59 addPage(new FieldObservationDetailsWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
61 else if(getEntity() instanceof DerivedUnit
){
62 derivedUnitFacade
= DerivedUnitFacade
.NewInstance((DerivedUnit
)getEntity(), PreferencesUtil
.getDerivedUnitConfigurator());
64 addPage(new SpecimenGeneralWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
65 addPage(new SpecimenDetailsWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
66 addPage(new DerivedUnitDetailsWizardPage(formFactory
, getConversationHolder(), derivedUnitFacade
));
69 } catch (DerivedUnitFacadeNotSupportedException e
) {
70 // we should never get here
71 throw new IllegalStateException();
77 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
81 protected SpecimenOrObservationBase
<?
> createNewEntity() {
82 if(specOrObsType
== null) {
83 return DerivedUnit
.NewInstance(SpecimenOrObservationType
.PreservedSpecimen
);
85 if(SpecimenOrObservationType
.Media
.equals(specOrObsType
) ||
86 ((specOrObsType
.getKindOf() != null) &&
87 specOrObsType
.getKindOf().equals(SpecimenOrObservationType
.Media
))) {
88 return MediaSpecimen
.NewInstance(SpecimenOrObservationType
.Media
);
89 } else if(specOrObsType
== SpecimenOrObservationType
.FieldUnit
){
90 return FieldUnit
.NewInstance();
92 return DerivedUnit
.NewInstance(specOrObsType
);
98 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
102 protected void saveEntity() {
103 CdmStore
.getService(IOccurrenceService
.class).saveOrUpdate(getEntity());
107 protected String
getEntityName() {