Add no marker without a markerType (#4588)
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 24 Jun 2015 19:39:38 +0000 (21:39 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 29 Jun 2015 11:43:21 +0000 (13:43 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/supplemental/MarkerSection.java

index 6311ffce3327043e9603c24e412d1deeb63ec929..f22e8699f80829f9e1f2e06e0e6881d2407cc611 100644 (file)
@@ -1,10 +1,8 @@
-/**
- *
- */
 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.cdm.model.common.TermType;
@@ -16,35 +14,21 @@ 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) {
@@ -52,26 +36,25 @@ public class MarkerElement extends AbstractEntityCollectionElement<Marker>{
                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());
index 31f7e17a721fd359555804045c86a4a9336c63f6..9d7dba4562032edc56a5dec3cf63a03b5403de7d 100644 (file)
@@ -1,6 +1,3 @@
-/**
- * 
- */
 package eu.etaxonomy.taxeditor.ui.section.supplemental;
 
 import java.util.Collection;
@@ -10,7 +7,7 @@ import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
-import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
+import eu.etaxonomy.taxeditor.ui.section.occurrence.dna.AbstractUnboundEntityCollectionSection;
 
 /**
  * <p>MarkerSection class.</p>
@@ -18,7 +15,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
  * @author nho
  * @version $Id: $
  */
-public class MarkerSection extends AbstractEntityCollectionSection<AnnotatableEntity, Marker> {
+public class MarkerSection extends AbstractUnboundEntityCollectionSection<AnnotatableEntity, Marker> {
 
        /**
         * <p>Constructor for MarkerSection.</p>
@@ -38,12 +35,6 @@ public class MarkerSection extends AbstractEntityCollectionSection<AnnotatableEn
                return Marker.NewInstance();
        }
 
-       /** {@inheritDoc} */
-       @Override
-       public Collection<Marker> getCollection(AnnotatableEntity entity) {
-               return entity.getMarkers();
-       }
-
        /** {@inheritDoc} */
        @Override
        public String getEmptyString() {
@@ -68,4 +59,9 @@ public class MarkerSection extends AbstractEntityCollectionSection<AnnotatableEn
                getEntity().removeMarker(element);
        }
 
+    @Override
+    protected Collection<Marker> getEntityCollection(AnnotatableEntity entity) {
+        return entity.getMarkers();
+    }
+
 }