Project

General

Profile

Download (4.22 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
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.
9
*/
10

    
11
package eu.etaxonomy.taxeditor.newWizard;
12

    
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.DerivedUnitBaseWizardPage;
24
import eu.etaxonomy.taxeditor.ui.section.occurrence.DerivedUnitGeneralWizardPage;
25
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitGeneralWizardPage;
26
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitWizardPage;
27
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
28

    
29
/**
30
 * <p>NewDerivedUnitBaseWizard class.</p>
31
 *
32
 * @author n.hoffmann
33
 * @created Jun 16, 2010
34
 * @version 1.0
35
 */
36
public class NewDerivedUnitBaseWizard extends AbstractNewEntityWizard<SpecimenOrObservationBase> {
37
	private SpecimenOrObservationType specOrObsType = null;
38

    
39
	public NewDerivedUnitBaseWizard() {
40
		super();
41
	}
42

    
43
	public NewDerivedUnitBaseWizard(SpecimenOrObservationType specOrObsType) {
44
		super();
45
		this.specOrObsType = specOrObsType;
46
	}
47
	/** {@inheritDoc} */
48
	@Override
49
	public void addPages() {
50
	    DerivedUnitFacade facade = null;
51
	    try {
52
	        if(getEntity() instanceof DerivedUnit) {
53
	            facade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
54
	            addPage(new DerivedUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
55
	            addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
56
	            addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
57
	            addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
58
	        }
59
	        else if(getEntity() instanceof FieldUnit){
60
	            facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
61
	            addPage(new FieldUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
62
	            addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
63
	            addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
64
	        }
65
	    } catch (DerivedUnitFacadeNotSupportedException e) {
66
	        // we should never get here
67
	        throw new IllegalStateException();
68
	    }
69
	}
70

    
71
    /*
72
     * (non-Javadoc)
73
     *
74
     * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#
75
     * createNewEntity()
76
     */
77
    /** {@inheritDoc} */
78
    @Override
79
    protected SpecimenOrObservationBase createNewEntity() {
80
        if (specOrObsType == null) {
81
            return DerivedUnit.NewInstance(SpecimenOrObservationType.PreservedSpecimen);
82
        } else {
83
            if (SpecimenOrObservationType.Media.equals(specOrObsType)
84
                    || ((specOrObsType.getKindOf() != null) && specOrObsType.getKindOf().equals(SpecimenOrObservationType.Media))) {
85
	            return MediaSpecimen.NewInstance(specOrObsType);
86
            } else if (specOrObsType.equals(SpecimenOrObservationType.FieldUnit)) {
87
                return FieldUnit.NewInstance();
88
            } else {
89
                return DerivedUnit.NewInstance(specOrObsType);
90
            }
91
        }
92
    }
93

    
94
	/* (non-Javadoc)
95
	 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()
96
	 */
97
	/** {@inheritDoc} */
98
	@Override
99
	protected void saveEntity() {
100
		CdmStore.getService(IOccurrenceService.class).saveOrUpdate(getEntity());
101
	}
102

    
103
	@Override
104
	protected String getEntityName() {
105
		return "Specimen";
106
	}
107

    
108

    
109
}
(10-10/24)