Project

General

Profile

Download (3.15 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2009 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
package eu.etaxonomy.taxeditor.ui.section.taxon;
11

    
12
import org.eclipse.ui.IEditorInput;
13

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

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

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

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

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

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

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