Introduces a handler to delete all empty names; Cleans up the name editors context...
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / section / AbstractCdmDetailSection.java
index ab8995e51c3f1421c9a4f3816db5605ccf286ae1..82cb3e6f620ca5911dcee974329febe33b0d0824 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.ui.forms.widgets.Section;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.common.IAnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
@@ -29,7 +28,6 @@ import eu.etaxonomy.taxeditor.forms.CdmFormFactory.DetailType;
 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
 import eu.etaxonomy.taxeditor.forms.IEnableableFormElement;
 import eu.etaxonomy.taxeditor.forms.ISelectableElement;
-import eu.etaxonomy.taxeditor.forms.SelectionArbitrator;
 
 /**
  * <p>Abstract AbstractCdmDetailSection class.</p>
@@ -42,8 +40,6 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
        
        protected AbstractCdmDetailElement<ENTITY> detailElement;
        
-       protected SelectionArbitrator selectionArbitrator;
-       
        /**
         * <p>Constructor for AbstractCdmDetailSection.</p>
         *
@@ -99,7 +95,10 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
        @Override
        public void dispose() {
                if(detailElement instanceof ISelectableElement){
-                       formFactory.destroySelectionArbitrator(((ISelectableElement)detailElement).getSelectionArbitrator());
+                       ISelectableElement selectableElement = (ISelectableElement) detailElement;
+                       if(selectableElement.getSelectionArbitrator() != null){
+                               formFactory.destroySelectionArbitrator(selectableElement.getSelectionArbitrator());
+                       }
                }
                super.dispose();
        }