Project

General

Profile

« Previous | Next » 

Revision e4e1656c

Added by Patrick Plitzner over 8 years ago

Add support for generic SpecimenOrObservationBase class to
EntitySelectionElement and selection wizard

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SelectionDialogFactory.java
34 34
import eu.etaxonomy.cdm.model.occurrence.Collection;
35 35
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
36 36
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
37
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
37 38
import eu.etaxonomy.cdm.model.reference.Reference;
38 39
import eu.etaxonomy.cdm.model.taxon.Classification;
39 40
import eu.etaxonomy.cdm.model.taxon.Synonym;
......
103 104
			return null;
104 105
		}
105 106
		if(clazz.equals(DerivedUnit.class)){
106
			return (T) DerivedUnitSelectionDialog.select(shell, conversation, (DerivedUnit) currentSelection);
107
		    return (T) DerivedUnitSelectionDialog.select(shell, conversation, (DerivedUnit) currentSelection);
107 108
		}
108 109
		if(clazz.equals(FieldUnit.class)){
109
			return (T) FieldUnitSelectionDialog.select(shell, conversation, (FieldUnit) currentSelection);
110
		    return (T) FieldUnitSelectionDialog.select(shell, conversation, (FieldUnit) currentSelection);
111
		}
112
		if(clazz.equals(SpecimenOrObservationBase.class)){
113
		    return (T) SpecimenOrObservationBaseSelectionDialog.select(shell, conversation, (SpecimenOrObservationBase) currentSelection);
110 114
		}
111 115
		if(clazz.equals(NamedArea.class)){
112 116
		    if(parentElement instanceof IEntityElement && ((IEntityElement) parentElement).getEntity() instanceof DerivedUnitFacade){
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/SpecimenOrObservationBaseSelectionDialog.java
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.ui.dialog.selection;
12

  
13
import java.util.UUID;
14

  
15
import org.eclipse.swt.widgets.Shell;
16

  
17
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
18
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
19
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
20
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
21
import eu.etaxonomy.taxeditor.newWizard.AbstractNewEntityWizard;
22
import eu.etaxonomy.taxeditor.newWizard.NewDerivedUnitBaseWizard;
23
import eu.etaxonomy.taxeditor.store.CdmStore;
24

  
25
/**
26
 * @author pplitzner
27
 */
28
public class SpecimenOrObservationBaseSelectionDialog extends
29
		AbstractFilteredCdmResourceSelectionDialog<SpecimenOrObservationBase> {
30

  
31
	public static SpecimenOrObservationBase select(Shell shell, ConversationHolder conversation, SpecimenOrObservationBase observation){
32
		SpecimenOrObservationBaseSelectionDialog dialog = new SpecimenOrObservationBaseSelectionDialog(shell, conversation,
33
				"Choose field unit or derived unit", false, SpecimenOrObservationBaseSelectionDialog.class.getCanonicalName(), observation);
34
		return getSelectionFromDialog(dialog);
35
	}
36

  
37
	protected SpecimenOrObservationBaseSelectionDialog(Shell shell, ConversationHolder conversation,
38
			String title, boolean multi, String settings,
39
			SpecimenOrObservationBase cdmObject) {
40
		super(shell, conversation, title, multi, settings, cdmObject);
41
	}
42

  
43
	/** {@inheritDoc} */
44
	@Override
45
	protected SpecimenOrObservationBase getPersistentObject(UUID uuid) {
46
		Object object = CdmStore.getService(IOccurrenceService.class).load(uuid);
47
		return HibernateProxyHelper.deproxy(object, SpecimenOrObservationBase.class);
48
	}
49

  
50
	/** {@inheritDoc} */
51
	@Override
52
	protected void initModel() {
53
		model = CdmStore.getService(IOccurrenceService.class).getUuidAndTitleCache();
54
	}
55

  
56
	/** {@inheritDoc} */
57
	@Override
58
	protected AbstractNewEntityWizard getNewEntityWizard(String parameter) {
59
		return new NewDerivedUnitBaseWizard();
60
	}
61

  
62
	/** {@inheritDoc} */
63
	@Override
64
	protected String getNewWizardLinkText() {
65
		return String.format("Create a new <a>%1s</a>", "field unit/derived unit");
66
	}
67
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/IndividualsAssociationDetailElement.java
1 1
// $Id$
2 2
/**
3 3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy 
4
 * European Distributed Institute of Taxonomy
5 5
 * http://www.e-taxonomy.eu
6
 * 
6
 *
7 7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 8
 * See LICENSE.TXT at the top of this package for the full license terms.
9 9
 */
......
16 16
import eu.etaxonomy.cdm.model.common.Language;
17 17
import eu.etaxonomy.cdm.model.common.LanguageString;
18 18
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
19
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
19
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
20 20
import eu.etaxonomy.taxeditor.store.CdmStore;
21 21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22 22
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
......
24 24
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
25 25

  
26 26
/**
27
 * <p>
28
 * IndividualsAssociationDetailElement class.
29
 * </p>
30
 * 
31 27
 * @author n.hoffmann
32 28
 * @created Jun 10, 2010
33 29
 * @version 1.0
......
36 32
		AbstractDetailedDescriptionDetailElement<IndividualsAssociation> {
37 33

  
38 34
	private TextWithLabelElement text_description;
39
	private EntitySelectionElement<DerivedUnit> selection_derivedUnit;
35
	private EntitySelectionElement<SpecimenOrObservationBase> selection_derivedUnit;
40 36

  
41
	/**
42
	 * <p>
43
	 * Constructor for IndividualsAssociationDetailElement.
44
	 * </p>
45
	 * 
46
	 * @param formFactory
47
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
48
	 *            object.
49
	 * @param formElement
50
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
51
	 *            object.
52
	 * @param entity
53
	 *            a
54
	 *            {@link eu.etaxonomy.cdm.model.description.IndividualsAssociation}
55
	 *            object.
56
	 * @param style
57
	 *            a int.
58
	 */
59 37
	public IndividualsAssociationDetailElement(CdmFormFactory formFactory,
60 38
			ICdmFormElement formElement, IndividualsAssociation entity,
61 39
			int style) {
......
67 45
	protected void createControls(ICdmFormElement formElement,
68 46
			IndividualsAssociation entity, int style) {
69 47
		selection_derivedUnit = formFactory
70
				.createSelectionElement(DerivedUnit.class,
71
						getConversationHolder(), formElement, "Unit",
72
						CdmBase.deproxy(entity.getAssociatedSpecimenOrObservation(),DerivedUnit.class),
48
				.createSelectionElement(SpecimenOrObservationBase.class,
49
						getConversationHolder(), formElement, "Occurrence/Unit",
50
						CdmBase.deproxy(entity.getAssociatedSpecimenOrObservation(),SpecimenOrObservationBase.class),
73 51
						EntitySelectionElement.ALL, style);
74 52

  
75 53
		text_description = formFactory.createMultiLineTextWithLabel(
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/selection/EditFromSelectionWizard.java
30 30
import eu.etaxonomy.cdm.model.name.NonViralName;
31 31
import eu.etaxonomy.cdm.model.occurrence.Collection;
32 32
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
33
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
34
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
35
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
33 36
import eu.etaxonomy.cdm.model.reference.Reference;
34 37
import eu.etaxonomy.taxeditor.model.AbstractUtility;
35 38
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
......
102 105
			addPage(new NonViralNameWizardPage(formFactory,
103 106
					selectionElement.getConversationHolder(),
104 107
					(NonViralName) entity));
105
		} else if (entity instanceof DerivedUnit) {
108
		} else if (entity instanceof SpecimenOrObservationBase) {
106 109

  
107 110
			DerivedUnitFacade facade;
108 111
			try {
109
				facade = DerivedUnitFacade.NewInstance(
110
						(DerivedUnit) entity,
111
						PreferencesUtil.getDerivedUnitConfigurator());
112
			    if(((SpecimenOrObservationBase) entity).isInstanceOf(DerivedUnit.class)){
113
			        facade = DerivedUnitFacade.NewInstance(
114
			                HibernateProxyHelper.deproxy(entity, DerivedUnit.class),
115
			                PreferencesUtil.getDerivedUnitConfigurator());
116
			    }
117
			    else {
118
                    facade = DerivedUnitFacade.NewInstance(SpecimenOrObservationType.FieldUnit,
119
                            HibernateProxyHelper.deproxy(entity, FieldUnit.class),
120
                            PreferencesUtil.getDerivedUnitConfigurator());
121
			    }
122

  
112 123
			} catch (DerivedUnitFacadeNotSupportedException e) {
113 124
				// we should never get here
114 125
				throw new IllegalStateException();
......
120 131
					selectionElement.getConversationHolder(), facade));
121 132
			addPage(new FieldUnitWizardPage(formFactory,
122 133
					selectionElement.getConversationHolder(), facade));
123
			addPage(new DerivedUnitBaseWizardPage(formFactory,
124
					selectionElement.getConversationHolder(), facade));
134
			if(facade.innerDerivedUnit()!=null){
135
			    addPage(new DerivedUnitBaseWizardPage(formFactory,
136
			            selectionElement.getConversationHolder(), facade));
137
			}
125 138
		} else if (entity instanceof Collection) {
126 139
			addPage(new CollectionWizardPage(formFactory,
127 140
					selectionElement.getConversationHolder(),

Also available in: Unified diff