Merge branch 'release/3.7.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / MarkerElement.java
index aa50c31ea5b5b8e561f09a881421f88fc48aca77..f22e8699f80829f9e1f2e06e0e6881d2407cc611 100644 (file)
@@ -1,76 +1,60 @@
-/**
- * 
- */
 package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import org.eclipse.swt.events.SelectionListener;
 
+import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 
 /**
- * <p>MarkerElement class.</p>
- *
  * @author n.hoffmann
  * @created Nov 16, 2009
  * @version 1.0
  */
 public class MarkerElement extends AbstractEntityCollectionElement<Marker>{
 
-       /**
-        * <p>Constructor for MarkerElement.</p>
-        *
-        * @param element a {@link eu.etaxonomy.cdm.model.common.Marker} object.
-        * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
-        * @param style a int.
-        * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
-        * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
-        */
-       public MarkerElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, Marker element,
-                       SelectionListener removeListener, int style) {
-               super(cdmFormFactory, formElement, element, removeListener, null, style);
-       }
-       
+
        private TermComboElement<MarkerType> combo_markerType;
        private CheckboxElement checkbox_markerState;
 
+       public MarkerElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, Marker element,
+               SelectionListener removeListener, int style) {
+           super(cdmFormFactory, formElement, element, removeListener, null, style);
+       }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
-        */
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
                checkbox_markerState = formFactory.createCheckbox(this, null, false, style);
-               combo_markerType = formFactory.createTermComboElement(MarkerType.class, this, null, null, style);
+               combo_markerType = formFactory.createDefinedTermComboElement(TermType.MarkerType, this, null, null, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
-        */
        /** {@inheritDoc} */
        @Override
        public void setEntity(Marker element) {
                this.entity = element;
                checkbox_markerState.setSelection(element.getFlag());
                combo_markerType.setSelection(element.getMarkerType());
+               combo_markerType.removeEmptyElement();
        }
 
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
-        */
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if(eventSource == combo_markerType){
-                       getEntity().setMarkerType(combo_markerType.getSelection());
+               if(eventSource == combo_markerType && getParentElement() instanceof MarkerSection){
+                   MarkerSection markerSection = (MarkerSection)getParentElement();
+                   AnnotatableEntity annotatableEntity = markerSection.getEntity();
+                   annotatableEntity.removeMarker(entity);
+                       MarkerType markerType = combo_markerType.getSelection();
+                       entity.setMarkerType(markerType);
+                       annotatableEntity.addMarker(entity);
                }
                else if(eventSource == checkbox_markerState){
                        getEntity().setFlag(checkbox_markerState.getSelection());