Project

General

Profile

Download (3.15 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.taxeditor.ui.section.taxon;
10

    
11
import org.eclipse.ui.IEditorInput;
12

    
13
import eu.etaxonomy.cdm.model.taxon.Taxon;
14
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
15
import eu.etaxonomy.taxeditor.model.TaxonRelationshipTypeInverseContainer;
16
import eu.etaxonomy.taxeditor.store.StoreUtil;
17
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
18
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
19
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
20
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
21
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
23
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
24

    
25
/**
26
 * @author n.hoffmann
27
 * @date Dec 1, 2011
28
 *
29
 */
30
public class TaxonRelationshipDetailElement extends AbstractCdmDetailElement<TaxonRelationship> {
31

    
32
	private TermComboElement<TaxonRelationshipTypeInverseContainer> combo_taxonRelationshipType;
33
	
34
	private EntitySelectionElement<Taxon> selection_relatedTaxon;
35
	
36
	private CheckboxElement checkBoxDoubtful;
37

    
38
	public TaxonRelationshipDetailElement(CdmFormFactory formFactory,
39
			ICdmFormElement formElement) {
40
		super(formFactory, formElement);
41
	}
42

    
43
	@Override
44
	protected void createControls(ICdmFormElement formElement,
45
			TaxonRelationship entity, int style) {
46
		combo_taxonRelationshipType = formFactory.createTermComboElement(
47
				TaxonRelationshipTypeInverseContainer.class, 
48
				formElement, "Relationship Type", 
49
				getTaxonRelationshipTypeInverseContainer(), style);
50
		combo_taxonRelationshipType.setEnabled(false);
51
		selection_relatedTaxon = formFactory.createSelectionElement(
52
				Taxon.class, getConversationHolder(), 
53
				formElement, "Related Taxon", getRelatedTaxon(), 
54
				EntitySelectionElement.SELECTABLE, style);
55
		checkBoxDoubtful = formFactory.createCheckbox(formElement, "Relation is doubtful", entity.isDoubtful(), style);
56
	}
57
	
58
	private Taxon getRelatedTaxon() {
59
		return TaxonRelationshipTypeInverseContainer.RelatedTaxon(getSourceTaxon(), getEntity());
60
	}
61

    
62
	private TaxonRelationshipTypeInverseContainer getTaxonRelationshipTypeInverseContainer(){
63
		return TaxonRelationshipTypeInverseContainer.CreateFromSource(getSourceTaxon(), getEntity());
64
	}
65
	
66
	private Taxon getSourceTaxon(){
67
		IEditorInput editorInput = StoreUtil.getActiveEditorInput();
68
		return (Taxon) editorInput.getAdapter(Taxon.class);
69
	}
70

    
71
	@Override
72
	public void handleEvent(Object eventSource) {
73
		if (eventSource == selection_relatedTaxon){
74
			boolean inverse = getTaxonRelationshipTypeInverseContainer().isInverse();
75
			Taxon relatedTaxon = selection_relatedTaxon.getEntity();
76
			if(inverse){
77
				getEntity().setFromTaxon(relatedTaxon);
78
			}else{
79
				getEntity().setToTaxon(relatedTaxon);
80
			}
81
		}
82
		else if(eventSource==checkBoxDoubtful){
83
		    getEntity().setDoubtful(checkBoxDoubtful.getSelection());
84
		}
85
		firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
86
	}
87
}
(6-6/8)