merging in latest changes from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / name / TypeDesignationSection.java
index 8b40d8a0b2dbe6c7e03c83f1cef8762d31b3c2e7..7d280ec9598d9dd4502f8cecb86fe888089916df 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.ui.section.name;
 import java.util.Collection;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
 import eu.etaxonomy.cdm.model.name.NonViralName;
@@ -21,8 +22,11 @@ import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
-import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
+import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+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.ITaxonBaseDetailSection;
 
@@ -40,9 +44,9 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
        /**
         * <p>Constructor for TypeDesignationSection.</p>
         *
-        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
+        * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
         * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
+        * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
         * @param style a int.
         */
        public TypeDesignationSection(CdmFormFactory formFactory, ConversationHolder conversation,
@@ -53,7 +57,7 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
        /** {@inheritDoc} */
        @Override
        public void addElement(TypeDesignationBase element) {
-               getEntity().addTypeDesignation(element, false);
+               getEntity().addTypeDesignation(element, PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES));
        }
 
        /** {@inheritDoc} */
@@ -87,7 +91,9 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection<Taxo
        /** {@inheritDoc} */
        @Override
        public void removeElement(TypeDesignationBase element) {
-               getEntity().removeTypeDesignation(element);
+               boolean removeTypeDesignationFromAllTypifiedNames = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ADD_TYPES_TO_ALL_NAMES);
+               TaxonNameBase entity = removeTypeDesignationFromAllTypifiedNames ? null : getEntity();
+               CdmStore.getService(INameService.class).deleteTypeDesignation(entity, element);
        }
 
        /*