merging in latest changes from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / AnnotationElement.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.ui.section.supplemental;
5
6 import org.eclipse.swt.events.SelectionListener;
7
8 import eu.etaxonomy.cdm.model.common.Annotation;
9 import eu.etaxonomy.cdm.model.common.AnnotationType;
10 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
11 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
12 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
13 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
14 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
15 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
16
17 /**
18 * <p>AnnotationElement class.</p>
19 *
20 * @author nho
21 * @version $Id: $
22 */
23 public class AnnotationElement extends AbstractEntityCollectionElement<Annotation>{
24
25 private TextWithLabelElement text;
26 private TermComboElement<AnnotationType> combo_annotationType;
27
28 /**
29 * <p>Constructor for AnnotationElement.</p>
30 *
31 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
32 * @param annotation a {@link eu.etaxonomy.cdm.model.common.Annotation} object.
33 * @param style a int.
34 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
35 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
36 */
37 public AnnotationElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, Annotation annotation, SelectionListener removeListener, int style) {
38 super(cdmFormFactory, formElement, annotation, removeListener, null, style);
39 }
40
41 /* (non-Javadoc)
42 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetComposite#createControls(org.eclipse.swt.widgets.Composite)
43 */
44 /** {@inheritDoc} */
45 @Override
46 public void createControls(ICdmFormElement element, int style) {
47 combo_annotationType = formFactory.createTermComboElement(AnnotationType.class, this, "Annotation Type", null, style);
48
49 text = formFactory.createMultilineTextWithLabel(this, "Annotation", 100, style);
50 }
51
52 /* (non-Javadoc)
53 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetComposite#setEntity(eu.etaxonomy.cdm.model.common.AnnotatableEntity)
54 */
55 /** {@inheritDoc} */
56 @Override
57 public void setEntity(Annotation entity) {
58 this.entity = entity;
59 combo_annotationType.setSelection(getEntity().getAnnotationType());
60 text.setText(entity.getText());
61 }
62
63 /*
64 * (non-Javadoc)
65 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
66 */
67 /** {@inheritDoc} */
68 @Override
69 public void handleEvent(Object eventSource) {
70 if(eventSource == combo_annotationType){
71 getEntity().setAnnotationType(combo_annotationType.getSelection());
72 }else if(eventSource == text){
73 getEntity().setText(text.getText());
74 }
75 }
76 }