merged campanula branch to trunk. Main features are: BioCase Query via Imports, Deriv...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / ExtensionElement.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.hibernate.HibernateProxyHelper;
9 import eu.etaxonomy.cdm.model.common.Extension;
10 import eu.etaxonomy.cdm.model.common.ExtensionType;
11 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
12 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
13 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
14 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
15 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
16 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
17 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
18
19 /**
20 * <p>ExtensionElement class.</p>
21 *
22 * @author n.hoffmann
23 * @created Nov 17, 2009
24 * @version 1.0
25 */
26 public class ExtensionElement extends AbstractEntityCollectionElement<Extension> {
27
28 private TermComboElement<ExtensionType> combo_extensionType;
29 private TextWithLabelElement text_extensionValue;
30
31 /**
32 * <p>Constructor for ExtensionElement.</p>
33 *
34 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
35 * @param element a {@link eu.etaxonomy.cdm.model.common.Extension} object.
36 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
37 * @param style a int.
38 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
39 */
40 public ExtensionElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, Extension element,
41 SelectionListener removeListener, int style) {
42 super(cdmFormFactory, formElement, element, removeListener, null, style);
43 }
44
45 /* (non-Javadoc)
46 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
47 */
48 /** {@inheritDoc} */
49 @Override
50 public void createControls(ICdmFormElement element, int style) {
51 combo_extensionType = formFactory.createTermComboElement(ExtensionType.class, this, null, null, style);
52 text_extensionValue = formFactory.createTextWithLabelElement(element, null, null, style);
53 text_extensionValue.getLayoutComposite().setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
54 }
55
56 /* (non-Javadoc)
57 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
58 */
59 /** {@inheritDoc} */
60 @Override
61 public void setEntity(Extension element) {
62 this.entity = element;
63 ExtensionType extensionType = (ExtensionType) HibernateProxyHelper.deproxy(element.getType());
64 combo_extensionType.setSelection(extensionType);
65 text_extensionValue.setText(element.getValue());
66 }
67
68 /*
69 * (non-Javadoc)
70 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
71 */
72 /** {@inheritDoc} */
73 @Override
74 public void handleEvent(Object eventSource) {
75 if(eventSource == combo_extensionType){
76 entity.setType(combo_extensionType.getSelection());
77 }
78 else if(eventSource == text_extensionValue){
79 entity.setValue(text_extensionValue.getText());
80 }
81 }
82
83 }