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
.common
.OriginalSourceType
;
17 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
18 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
19 import eu
.etaxonomy
.cdm
.model
.occurrence
.MediaSpecimen
;
20 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationBase
;
21 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
22 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
24 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.selection
.OriginalSourceTypeSelectionDialog
;
25 import eu
.etaxonomy
.taxeditor
.ui
.dialog
.selection
.SpecimenOrObservationTypeSelectionDialog
;
26 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DerivedUnitBaseWizardPage
;
27 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldObservationWizardPage
;
28 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GatheringEventWizardPage
;
29 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GeneralWizardPage
;
32 * <p>NewDerivedUnitBaseWizard class.</p>
35 * @created Jun 16, 2010
38 public class NewDerivedUnitBaseWizard
extends AbstractNewEntityWizard
<DerivedUnit
> {
39 private SpecimenOrObservationType specOrObsType
= null;
41 public NewDerivedUnitBaseWizard() {
45 public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType
) {
47 this.specOrObsType
= specOrObsType
;
51 public void addPages() {
52 addPage(new GeneralWizardPage(formFactory
, getConversationHolder(), getFacade()));
53 addPage(new GatheringEventWizardPage(formFactory
, getConversationHolder(), getFacade()));
54 addPage(new FieldObservationWizardPage(formFactory
, getConversationHolder(), getFacade()));
55 addPage(new DerivedUnitBaseWizardPage(formFactory
, getConversationHolder(), getFacade()));
62 private DerivedUnitFacade
getFacade() {
64 if(getEntity() != null) {
65 return DerivedUnitFacade
.NewInstance(getEntity(), PreferencesUtil
.getDerivedUnitConfigurator());
67 } catch (DerivedUnitFacadeNotSupportedException e
) {
68 // w should never get here
69 throw new IllegalStateException();
75 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#createNewEntity()
79 protected DerivedUnit
createNewEntity() {
80 if(specOrObsType
== null) {
81 return DerivedUnit
.NewInstance(SpecimenOrObservationType
.PreservedSpecimen
);
83 if(SpecimenOrObservationType
.Media
.equals(specOrObsType
) ||
84 ((((SpecimenOrObservationType
)specOrObsType
).getKindOf() != null) &&
85 ((SpecimenOrObservationType
)specOrObsType
).getKindOf().equals(SpecimenOrObservationType
.Media
))) {
86 return MediaSpecimen
.NewInstance(SpecimenOrObservationType
.Media
);
88 return DerivedUnit
.NewInstance((SpecimenOrObservationType
)specOrObsType
);
94 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
98 protected void saveEntity() {
99 CdmStore
.getService(IOccurrenceService
.class).saveOrUpdate(getEntity());
103 protected String
getEntityName() {