merging changes from branches/taxeditor/nho_dev to trunk
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / section / name / NomenclaturalStatusElement.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.section.name;
12
13 import org.apache.log4j.Logger;
14 import org.eclipse.swt.events.SelectionListener;
15
16 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
17 import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
18 import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
19 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
21 import eu.etaxonomy.taxeditor.forms.IEntityElement;
22 import eu.etaxonomy.taxeditor.forms.ISelectableElement;
23 import eu.etaxonomy.taxeditor.forms.SelectionArbitrator;
24 import eu.etaxonomy.taxeditor.forms.TextWithLabelElement;
25 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.TermComboType;
26 import eu.etaxonomy.taxeditor.forms.term.AbstractTermComboElement;
27 import eu.etaxonomy.taxeditor.section.supplemental.AbstractReferencedEntityElement;
28
29 /**
30 * @author n.hoffmann
31 * @created Nov 5, 2009
32 * @version 1.0
33 */
34 public class NomenclaturalStatusElement extends AbstractReferencedEntityElement<NomenclaturalStatus> implements IEntityElement<NomenclaturalStatus>, ISelectableElement{
35 private static final Logger logger = Logger
36 .getLogger(NomenclaturalStatusElement.class);
37
38 private AbstractTermComboElement<NomenclaturalStatusType> nomenclaturalStatusTypeCombo;
39
40 private TextWithLabelElement ruleConsideredText;
41
42 private SelectionArbitrator selectionArbitrator;
43
44 /**
45 * @param formElement
46 * @param element
47 * @param removeListener
48 * @param propertyChangelistener
49 * @param style
50 */
51 public NomenclaturalStatusElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement,
52 NomenclaturalStatus element, SelectionListener removeListener, int style) {
53 super(cdmFormFactory, formElement, element, removeListener, style);
54 selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
55 }
56
57 /* (non-Javadoc)
58 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
59 */
60 @Override
61 public void createControls(ICdmFormElement element, int style) {
62 nomenclaturalStatusTypeCombo = formFactory.createTermComboElement(TermComboType.NOMENCLATURALSTATUSTYPE, this, null, style);
63 ruleConsideredText = formFactory.createTextWithLabelElement(this, "Rule Considered", "", style);
64
65 super.createControls(element, style);
66 }
67
68 /* (non-Javadoc)
69 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
70 */
71 @Override
72 public void setEntity(NomenclaturalStatus entity) {
73 super.setEntity(entity);
74 nomenclaturalStatusTypeCombo.setSelection(entity.getType());
75 ruleConsideredText.setText(entity.getRuleConsidered());
76 }
77
78 public SelectionArbitrator getSelectionArbitrator() {
79 return selectionArbitrator;
80 }
81
82 /*
83 * (non-Javadoc)
84 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
85 */
86 @Override
87 public void handleEvent(Object eventSource) {
88 if(eventSource == nomenclaturalStatusTypeCombo){
89 getEntity().setType(nomenclaturalStatusTypeCombo.getSelection());
90 // fire an empty property change to force regeneration of full title cache in freetext area
91 firePropertyChangeEvent(null);
92 }
93 else if(eventSource == ruleConsideredText){
94 getEntity().setRuleConsidered(ruleConsideredText.getText());
95 // fire an empty property change to force regeneration of full title cache in freetext area
96 firePropertyChangeEvent(null);
97 }
98 else if(eventSource == selection_reference){
99 getEntity().setCitation(selection_reference.getSelection());
100 }
101 else if(eventSource == text_referenceDetail){
102 getEntity().setCitationMicroReference(text_referenceDetail.getText());
103 }
104 else if(eventSource == text_originaleNameString){
105 getEntity().setOriginalNameString(text_originaleNameString.getText());
106 }
107 }
108 }