3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
;
12 import org
.eclipse
.ui
.IEditorInput
;
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
.campanula
.compatibility
.ICdmFormElement
;
19 import eu
.etaxonomy
.taxeditor
.ui
.combo
.TermComboElement
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmPropertyChangeEvent
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.CheckboxElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.selection
.EntitySelectionElement
;
31 public class TaxonRelationshipDetailElement
extends AbstractCdmDetailElement
<TaxonRelationship
> {
33 private TermComboElement
<TaxonRelationshipTypeInverseContainer
> combo_taxonRelationshipType
;
35 private EntitySelectionElement
<Taxon
> selection_relatedTaxon
;
37 private CheckboxElement checkBoxDoubtful
;
39 public TaxonRelationshipDetailElement(CdmFormFactory formFactory
,
40 ICdmFormElement formElement
) {
41 super(formFactory
, formElement
);
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
);
59 private Taxon
getRelatedTaxon() {
60 return TaxonRelationshipTypeInverseContainer
.RelatedTaxon(getSourceTaxon(), getEntity());
63 private TaxonRelationshipTypeInverseContainer
getTaxonRelationshipTypeInverseContainer(){
64 return TaxonRelationshipTypeInverseContainer
.CreateFromSource(getSourceTaxon(), getEntity());
67 private Taxon
getSourceTaxon(){
68 IEditorInput editorInput
= StoreUtil
.getActiveEditorInput();
69 return (Taxon
) editorInput
.getAdapter(Taxon
.class);
73 public void handleEvent(Object eventSource
) {
74 if (eventSource
== selection_relatedTaxon
){
75 boolean inverse
= getTaxonRelationshipTypeInverseContainer().isInverse();
76 Taxon relatedTaxon
= selection_relatedTaxon
.getEntity();
78 getEntity().setFromTaxon(relatedTaxon
);
80 getEntity().setToTaxon(relatedTaxon
);
83 else if(eventSource
==checkBoxDoubtful
){
84 getEntity().setDoubtful(checkBoxDoubtful
.getSelection());
86 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));