Project

General

Profile

« Previous | Next » 

Revision fb649daa

Added by Patrick Plitzner over 10 years ago

  • added functionality to context menu for derivate creation
    • fixed a bug where two FieldUnits were created instead of only on
    • added javadoc

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/newWizard/NewDerivedUnitBaseWizard.java
14 14
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
15 15
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
16 16
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
17
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
17 18
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
19
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
18 20
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
19 21
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
20 22
import eu.etaxonomy.taxeditor.store.CdmStore;
21 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;
22 26
import eu.etaxonomy.taxeditor.ui.section.occurrence.FieldUnitWizardPage;
23 27
import eu.etaxonomy.taxeditor.ui.section.occurrence.GatheringEventWizardPage;
24
import eu.etaxonomy.taxeditor.ui.section.occurrence.GeneralWizardPage;
25 28

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

  
36 39
	public NewDerivedUnitBaseWizard() {
......
44 47
	/** {@inheritDoc} */
45 48
	@Override
46 49
	public void addPages() {
47
	    DerivedUnitFacade facade = getFacade();
50
	    DerivedUnitFacade facade = null;
48 51
	    try {
49
	        if(getEntity() != null) {
50
	            facade = DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
52
	        if(getEntity() instanceof DerivedUnit) {
53
	            facade = DerivedUnitFacade.NewInstance((DerivedUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
51 54
	            facade.getFieldUnit(true); //TODO: this is a temporary solution for the Campanula project as
52 55
	            //this ALWAYS needs a FieldUnit as root of the hierarchy
56

  
57
	            addPage(new DerivedUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
58
	            addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
59
	            addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
60
	            addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
61
	        }
62
	        else if(getEntity() instanceof FieldUnit){
63
	            facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit, (FieldUnit)getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
64
	            addPage(new FieldUnitGeneralWizardPage(formFactory, getConversationHolder(), facade));
65
	            addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
66
	            addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
53 67
	        }
54 68
	    } catch (DerivedUnitFacadeNotSupportedException e) {
55
	        // w should never get here
69
	        // we should never get here
56 70
	        throw new IllegalStateException();
57 71
	    }
58
        addPage(new GeneralWizardPage(formFactory, getConversationHolder(), facade));
59
		addPage(new GatheringEventWizardPage(formFactory, getConversationHolder(), facade));
60
		addPage(new FieldUnitWizardPage(formFactory, getConversationHolder(), facade));
61
		addPage(new DerivedUnitBaseWizardPage(formFactory, getConversationHolder(), facade));
62

  
63
	}
64

  
65
	/**
66
	 * @return
67
	 */
68
	private DerivedUnitFacade getFacade() {
69
		try {
70
			if(getEntity() != null) {
71
				return DerivedUnitFacade.NewInstance(getEntity(), PreferencesUtil.getDerivedUnitConfigurator());
72
			}
73
		} catch (DerivedUnitFacadeNotSupportedException e) {
74
			// w should never get here
75
			throw new IllegalStateException();
76
		}
77
		return null;
78 72
	}
79 73

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

  
99 97
	/* (non-Javadoc)
100 98
	 * @see eu.etaxonomy.taxeditor.editor.newWizard.AbstractNewEntityWizard#saveEntity()

Also available in: Unified diff