commit fbd932cc6c053fb24d98010d85bc1030de031eda
Author: Katja Luther <k.luther@bgbm.org>
Date:   Thu Dec 20 13:22:40 2018 +0100

    ref #7849: disable apply button until something was changed in preference page

diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportPreference.java
index b0cc55f32..334f69211 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportPreference.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportPreference.java
@@ -135,6 +135,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setAddMediaAsMediaSpecimen(!configurator.isAddMediaAsMediaSpecimen());
+                setApply(true);
             }
         });
 
@@ -147,6 +148,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setIgnoreImportOfExistingSpecimen(!configurator.isIgnoreImportOfExistingSpecimen());
+                setApply(true);
             }
         });
 
@@ -159,6 +161,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setIgnoreAuthorship(!configurator.isIgnoreAuthorship());
+                setApply(true);
             }
         });
 
@@ -171,6 +174,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setMapUnitIdToCatalogNumber(!configurator.isMapUnitIdToCatalogNumber());
+                setApply(true);
             }
         });
 //TODO: only one of the mappings can be checked!
@@ -183,6 +187,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setMapUnitIdToAccessionNumber(!configurator.isMapUnitIdToAccessionNumber());
+                setApply(true);
             }
         });
 
@@ -195,6 +200,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setMapUnitIdToBarcode(!configurator.isMapUnitIdToBarcode());
+                setApply(true);
             }
         });
 
@@ -207,6 +213,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setRemoveCountryFromLocalityText(!configurator.isRemoveCountryFromLocalityText());
+                setApply(true);
             }
         });
 
@@ -219,6 +226,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setMoveNewTaxaToDefaultClassification(!configurator.isMoveNewTaxaToDefaultClassification());
+                setApply(true);
             }
         });
 
@@ -231,6 +239,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setGetSiblings(!configurator.isGetSiblings());
+                setApply(true);
             }
         });
 
@@ -243,6 +252,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setAddIndividualsAssociationsSuchAsSpecimenAndObservations(!configurator.isAddIndividualsAssociationsSuchAsSpecimenAndObservations());
+                setApply(true);
             }
         });
 
@@ -255,6 +265,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setReuseExistingDescriptiveGroups(!configurator.isReuseExistingDescriptiveGroups());
+                setApply(true);
             }
         });
 
@@ -267,6 +278,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 configurator.setReuseExistingTaxaWhenPossible(!configurator.isReuseExistingTaxaWhenPossible());
+                setApply(true);
             }
         });
 
@@ -285,6 +297,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             for (String label : nomenclaturalCodeSelectionCombo.getItems()){
                 if (label.equals(configurator.getNomenclaturalCode().getKey())){
                     nomenclaturalCodeSelectionCombo.select(index);
+
                 }
                 index++;
             }
@@ -304,6 +317,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
             @Override
             public void widgetSelected(SelectionEvent e) {
                 allowOverride = !allowOverride;
+                setApply(true);
             }
         });
 
@@ -313,7 +327,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4AdminP
     @Override
     public void widgetSelected(SelectionEvent e) {
         this.configurator.setNomenclaturalCode(NomenclaturalCode.getByKey(nomenclaturalCodeSelectionCombo.getText()));
-
+        setApply(true);
     }
 
     @Override
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProvider.java
index 86159c659..099f381ef 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProvider.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProvider.java
@@ -45,7 +45,7 @@ public class AbcdImportProvider extends CdmPreferencePage implements IE4AdminPre
 
         composite.setLayout(gridLayout);
         biocaseProviderList = new ListComponent(composite, SWT.SCROLL_LINE);
-
+        setApply(true);
         return composite;
     }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
index 6eef2fe5f..d1d7d1f3f 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
@@ -60,6 +60,7 @@ public class DistributionAdminPreferences extends CdmPreferencePage implements I
         allowOverrideAreasCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
             public void widgetSelected(SelectionEvent e) {
+                setApply(true);
                 allowOverrideAreas = allowOverrideAreasCheckButton.getSelection();
 
             }
@@ -86,6 +87,7 @@ public class DistributionAdminPreferences extends CdmPreferencePage implements I
         allowOverrideStatusCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
             public void widgetSelected(SelectionEvent e) {
+                setApply(true);
                 allowOverrideStatus = allowOverrideStatusCheckButton.getSelection();
 
             }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalCodePreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalCodePreferences.java
index ba53bdb36..eb28f74e7 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalCodePreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalCodePreferences.java
@@ -97,15 +97,13 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
         nomenclaturalCode.addSelectionListener(new SelectionAdapter() {
             @Override
             public void widgetSelected(SelectionEvent evt) {
+                setApply(true);
                 String name = nomenclaturalCode.getText();
                 for (Entry<String, String> label:labelAndValues.entrySet()){
                     if (label.getValue().equals(name)){
                         actualCode = label.getKey();
                     }
                 }
-//                actualCode = labelAndValues.get(name);;
-
-
             }
         });
         Button allowOverrideButton = createAllowOverrideButton(composite);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/PublishFlagPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/PublishFlagPreference.java
index a1779d688..4894c7405 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/PublishFlagPreference.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/PublishFlagPreference.java
@@ -10,6 +10,8 @@ package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Combo;
@@ -67,6 +69,19 @@ public class PublishFlagPreference extends CdmPreferencePage implements IE4Admin
         gridData.horizontalIndent = 5;
 
         publishFlagBehaviour = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);
+        publishFlagBehaviour.addSelectionListener(new SelectionListener() {
+
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                setApply(true);
+            }
+
+            @Override
+            public void widgetDefaultSelected(SelectionEvent e) {
+                // TODO Auto-generated method stub
+
+            }
+        });
         publishFlagBehaviour.setLayoutData(gridData);
 
         for(PublishEnum display: PublishEnum.values()){
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java
index 315f79e59..3223f0b1b 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java
@@ -32,105 +32,6 @@ public class SpecimenAdminPreferences extends SpecimenOrObservationPreferences i
     Composite composite;
     CdmPreference showSpecimenPref = null;
 
-//    @Override
-//    protected Control createContents(Composite parent) {
-//
-//        getValues();
-//        composite = createComposite(parent);
-//        composite.setEnabled(isShowSpecimenRelatedIssues);
-//        final Button showSpecimenButton = new Button(parent, SWT.CHECK);
-//
-//        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
-//
-//        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
-//        showSpecimenButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
-//                 if(isShowSpecimenRelatedIssues){
-//                     composite.setVisible(true);
-//                     composite.setEnabled(true);
-//                 }else{
-//                     composite.setVisible(false);
-//                     composite.setEnabled(false);
-//                 }
-//              }
-//         });
-//        if (isAdminPreference){
-//            createAllowOverrideButton(parent);
-//        }
-//
-//        GridData gridData = createTextGridData();
-//
-//        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-//        separator.setLayoutData(gridData);
-//
-//        final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
-//
-//        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
-//
-//        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
-//        showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
-//
-//              }
-//         });
-//
-//        if (isAdminPreference){
-//            createAllowOverrideButton(composite);
-//        }
-//        final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
-//
-//        determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
-//
-//        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
-//        determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
-//             }
-//         });
-//        if (isAdminPreference){
-//            createAllowOverrideButton(composite);
-//        }
-//
-//        final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
-//
-//        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
-//
-//        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
-//        showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
-//
-//              }
-//         });
-//
-//        if (isAdminPreference){
-//            createAllowOverrideButton(composite);
-//        }
-//
-//        final Button showLifeFormButton = new Button(composite, SWT.CHECK);
-//        showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
-//        showLifeFormButton.setSelection(isShowLifeForm);
-//        showLifeFormButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isShowLifeForm = showLifeFormButton.getSelection();
-//
-//              }
-//         });
-//        if (isAdminPreference){
-//            createAllowOverrideButton(composite);
-//        }
-//
-//
-//        return composite;
-//    }
-
     @Override
     public void init() {
         super.init();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java
index e2866fb43..f5bfe6420 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java
@@ -68,6 +68,7 @@ public class VocabularyAdminPreferences extends CdmPreferencePage implements IE4
         allowOverrideCommonNameAreaCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
             public void widgetSelected(SelectionEvent e) {
+                setApply(true);
                 allowOverride = allowOverrideCommonNameAreaCheckButton.getSelection();
 
             }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
index 22eb103b3..a684df575 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
@@ -19,7 +19,9 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
@@ -84,6 +86,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             activateCheckButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     isEditorActivated = activateCheckButton.getSelection();
                     if(!isAdminPreference){
                         overrideActivated = true;
@@ -105,6 +108,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideActivated = allowOverrideActivatedButton.getSelection();
                     }
                 });
@@ -113,6 +117,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideActivated = allowOverrideActivatedButton.getSelection();
                     }
                 });
@@ -136,6 +141,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             activateRankButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     isShowRank = activateRankButton.getSelection();
                 }
             });
@@ -145,6 +151,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideRank = allowOverrideRankButton.getSelection();
                     }
                 });
@@ -153,6 +160,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideRank = allowOverrideRankButton.getSelection();
                     }
                 });
@@ -169,6 +177,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
                  }
             });
@@ -178,6 +187,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideOrderAreas = allowOverrideOrderAreasButton.getSelection();
                     }
                 });
@@ -186,6 +196,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideOrderAreas = allowOverrideOrderAreasButton.getSelection();
                     }
                 });
@@ -202,7 +213,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             ownDescription.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-
+                    setApply(true);
                     ownDescriptionForDistributionEditor = ownDescription.getSelection();
                  }
             });
@@ -212,6 +223,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideOwnDescriptionForDistributionEditor = allowOverrideDescription.getSelection();
                     }
                 });
@@ -220,6 +232,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideOwnDescriptionForDistributionEditor = allowOverrideDescription.getSelection();
                     }
                 });
@@ -273,6 +286,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideAreaDisplay = allowOverrideOrderAreaDisplayButton.getSelection();
                     }
                 });
@@ -281,6 +295,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideAreaDisplay = allowOverrideOrderAreaDisplayButton.getSelection();
                     }
                 });
@@ -321,6 +336,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         allowOverrideStatusDisplay = allowOverrideOrderStatusDisplayButton.getSelection();
                     }
                 });
@@ -329,6 +345,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 allowOverrideOrderStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
+                        setApply(true);
                         overrideStatusDisplay = allowOverrideOrderStatusDisplayButton.getSelection();
                     }
                 });
@@ -347,6 +364,17 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     commandHandlerStringStatus);
 
             button_openStatusWizard.setText(Messages.Distribution_status_selection);
+            button_openStatusWizard.addListener(SWT.Selection, new Listener() {
+                @Override
+                public void handleEvent(Event e) {
+                  switch (e.type) {
+                  case SWT.Selection:
+                    setApply(true);
+                    break;
+                  }
+                }
+              });
+
 
             final CLabel label = new CLabel(child, SWT.NULL);
             label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
@@ -418,7 +446,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
      */
     @Override
     public void widgetSelected(SelectionEvent e) {
-
+        setApply(true);
         if (e.getSource().equals(statusDisplaySelectionCombo)){
             String text = statusDisplaySelectionCombo.getText();
             for (TermDisplayEnum display: TermDisplayEnum.values()){
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
index d2efdd096..af8d1d015 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
@@ -75,6 +75,7 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
 			@Override
 			public void selectionChanged(SelectionChangedEvent arg0) {
+			    setApply(true);
 				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
 
 				defaultFeatureTreeForTextualDescription = (FeatureTree) selection.getFirstElement();
@@ -105,6 +106,7 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
 
 			@Override
 			public void selectionChanged(SelectionChangedEvent arg0) {
+			    setApply(true);
 				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
 
 				defaultFeatureTreeForStructuredDescription = (FeatureTree) selection.getFirstElement();
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java
index a82718c93..24656dc52 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DescriptionPreferences.java
@@ -27,6 +27,7 @@ public class DescriptionPreferences extends FieldEditorPreferencePageE4 {
 
 	@Override
 	protected void createFieldEditors() {
+
 	    addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_VOCABULARY_ID_FOR_TERM_LABELS),
 	            "Show vocabulary id for term labels.",
                 getFieldEditorParent()));
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java
index 33823422b..98bc8f7f9 100755
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java
@@ -48,6 +48,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
         getValues();
         final Composite composite = createComposite(parent);
 
+
         final Button showIOMenuButton = new Button(composite, SWT.CHECK);
         showIOMenuButton.setText(Messages.DatabasePreferncesPage_Show_IOMenu);
         showIOMenuButton.setSelection(isShowIOMenu);
@@ -55,6 +56,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
              @Override
              public void widgetSelected(SelectionEvent e) {
                  isShowIOMenu = showIOMenuButton.getSelection();
+                 setApply(true);
               }
          });
         Button allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
@@ -64,6 +66,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
+                    setApply(true);
                 }
             });
         }else{
@@ -72,6 +75,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
+                    setApply(true);
                 }
             });
             if (!isAllowOverrideShowIOMenu){
@@ -120,6 +124,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
              @Override
              public void widgetSelected(SelectionEvent e) {
                  isShowCheckListPerspective = showChecklistPerspectiveButton.getSelection();
+                 setApply(true);
               }
          });
 
@@ -130,6 +135,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
+                    setApply(true);
                 }
             });
         }else{
@@ -138,6 +144,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
+                    setApply(true);
                 }
             });
             if (!isAllowOverrideShowCheckListPerspective){
@@ -153,6 +160,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
              @Override
              public void widgetSelected(SelectionEvent e) {
                  isShowTaxonNodeWizard = showTaxonNodeWizardButton.getSelection();
+                 setApply(true);
               }
          });
 
@@ -163,6 +171,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
+                    setApply(true);
                 }
             });
         }else{
@@ -171,6 +180,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
                     isOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
+                    setApply(true);
                 }
             });
             if (!isAllowOverrideShowTaxonNodeWizard){
@@ -183,11 +193,7 @@ public class GeneralPreferencePage extends CdmPreferencePage {
         return composite;
     }
 
-    @Override
-    public void createControl(Composite parent){
-        super.createControl(parent);
-        getControl().setVisible(false);
-    }
+
 
     @Override
     public boolean performOk() {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java
index 439bac490..829acbabf 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageEditorPreferencePage.java
@@ -75,6 +75,7 @@ public class LanguageEditorPreferencePage extends CdmPreferencePage {
 
             @Override
             public void widgetSelected(SelectionEvent e) {
+                setApply(true);
 //                try {
 //                    preferencesUtil.writePropertyToConfigFile(combo.getSelectionIndex());
                     if(initalSelectionIndex != combo.getSelectionIndex()) {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java
index 045324ecf..c3541ce50 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/LanguageRepresentationPreferencePage.java
@@ -93,6 +93,7 @@ public class LanguageRepresentationPreferencePage extends CdmPreferencePage{
 			 */
 			@Override
 			public void widgetSelected(SelectionEvent e) {
+			    setApply(true);
 				int selectionIndex = combo_globalLanguage.getSelectionIndex();
 				globalLanguage = CdmStore.getCurrentApplicationConfiguration().getTermService().getLanguageByLabel(combo_globalLanguage.getItem(selectionIndex));
 			}
@@ -118,6 +119,7 @@ public class LanguageRepresentationPreferencePage extends CdmPreferencePage{
 			 */
 			@Override
 			public void widgetSelected(SelectionEvent e) {
+			    setApply(true);
 				isMultilanguageTextEditingCapability = button_toggle.getSelection();
 			}
 		});
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
index 33d73a538..4c525422a 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NameDetailsViewConfiguration.java
@@ -72,6 +72,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             activateCheckButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     isSimpleDetailsViewActivated = activateCheckButton.getSelection();
 
                     dbSettings.setEnabled(isSimpleDetailsViewActivated);
@@ -87,6 +88,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             allowLocalPreference.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     if (isAdminPreference){
                         isAllowOverride = allowLocalPreference.getSelection();
                     }else{
@@ -109,6 +111,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showTaxon.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowTaxon = showTaxon.getSelection();
 
                   }
@@ -121,6 +124,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showSecDetail.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isSecDetailsActivated = showSecDetail.getSelection();
 
                   }
@@ -133,6 +137,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             secEnabled.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isSecEnabled = secEnabled.getSelection();
 
                   }
@@ -146,6 +151,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showLsid.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowLSID = showLsid.getSelection();
 
                   }
@@ -158,6 +164,7 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
 
                   }
@@ -170,8 +177,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNameCache.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
-                    isShowNameCache = showNameCache.getSelection();
-
+                     setApply(true);
+                     isShowNameCache = showNameCache.getSelection();
                   }
              });
             final Button showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
@@ -181,8 +188,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
-                    isShowAppendedPhrase = showAppendedPhrase.getSelection();
-
+                     setApply(true);
+                     isShowAppendedPhrase = showAppendedPhrase.getSelection();
                   }
              });
 
@@ -193,8 +200,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showRank.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowRank = showRank.getSelection();
-
                   }
              });
             final Button showEpithets = new Button(dbSettings, SWT.CHECK);
@@ -204,8 +211,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showEpithets.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowEpithets = showEpithets.getSelection();
-
                   }
              });
 
@@ -216,8 +223,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showAuthorCache.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowAuthorCache = showAuthorCache.getSelection();
-
                   }
              });
 
@@ -228,8 +235,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showAuthorship.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowAuthorship = showAuthorship.getSelection();
-
                   }
              });
 
@@ -240,8 +247,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
-
                   }
              });
 
@@ -252,8 +259,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
-
                   }
              });
 
@@ -264,8 +271,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showProtologue.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowProtologue = showProtologue.getSelection();
-
                   }
              });
 
@@ -276,8 +283,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showTypeDesignation.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowTypeDesignation = showTypeDesignation.getSelection();
-
                   }
              });
 
@@ -289,8 +296,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNameRelationship.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowNameRelationship = showNameRelationship.getSelection();
-
                   }
              });
 
@@ -301,8 +308,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showHybrid.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowHybrid = showHybrid.getSelection();
-
                   }
              });
             final Button showNameApprobiation = new Button(dbSettings, SWT.CHECK);
@@ -312,8 +319,8 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage {
             showNameApprobiation.addSelectionListener(new SelectionAdapter(){
                  @Override
                  public void widgetSelected(SelectionEvent e) {
+                     setApply(true);
                      isShowNameApprobiation = showNameApprobiation.getSelection();
-                    //PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_APPROBATION, isShowNameApprobiation);
                   }
              });
             PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java
index 6e5da1f2c..15cc63ccb 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java
@@ -94,6 +94,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
         showSpecimenButton.addSelectionListener(new SelectionAdapter(){
              @Override
              public void widgetSelected(SelectionEvent e) {
+                 setApply(true);
                  isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
                  if(isShowSpecimenRelatedIssues){
                      composite.setVisible(true);
@@ -110,6 +111,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     allowOverrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
                 }
             });
@@ -118,6 +120,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     overrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
                 }
             });
@@ -141,6 +144,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
         showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
              @Override
              public void widgetSelected(SelectionEvent e) {
+                 setApply(true);
                  isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
 
               }
@@ -151,6 +155,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     allowOverrideShowCollectingAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
                 }
             });
@@ -159,6 +164,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     overrideShowCollectionAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
                 }
             });
@@ -174,6 +180,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
         determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
              @Override
              public void widgetSelected(SelectionEvent e) {
+                 setApply(true);
                  isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
              }
          });
@@ -184,6 +191,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     allowOverrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
                 }
             });
@@ -192,6 +200,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     overrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
                 }
             });
@@ -209,6 +218,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
         showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
              @Override
              public void widgetSelected(SelectionEvent e) {
+                 setApply(true);
                  isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
 
               }
@@ -219,6 +229,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     allowOverrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
                 }
             });
@@ -227,6 +238,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     overrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
                 }
             });
@@ -242,6 +254,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
         showLifeFormButton.addSelectionListener(new SelectionAdapter(){
              @Override
              public void widgetSelected(SelectionEvent e) {
+                 setApply(true);
                  isShowLifeForm = showLifeFormButton.getSelection();
 
               }
@@ -253,6 +266,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     allowOverrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
                 }
             });
@@ -261,6 +275,7 @@ public class SpecimenOrObservationPreferences extends CdmPreferencePage {
             allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
                     overrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
                 }
             });
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
index 9c338b47d..3dc201705 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
@@ -119,9 +119,11 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 			@Override
 			public void checkStateChanged(CheckStateChangedEvent arg0) {
 				checkNoneChecked();
+				setApply(true);
 			}
 		});
 
+
 		Composite buttonContainer = new Composite(container, SWT.NULL);
 		GridData buttonContainerLayoutData = new GridData();
 		buttonContainerLayoutData.verticalAlignment = SWT.TOP;
@@ -140,6 +142,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 				state = state ? false : true;
 				tableViewer.setAllChecked(state);
 				checkNoneChecked();
+				setApply(true);
 			}
 		});
 
@@ -176,7 +179,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 		editButton.addSelectionListener(new SelectionAdapter(){
 			@Override
 			public void widgetSelected(SelectionEvent event) {
-
+			    setApply(true);
 				ICommandService commandService = (ICommandService)  AbstractUtility.getService(ICommandService.class);
 
 				Command command = commandService.getCommand(DefinedTermEditorE4.OPEN_COMMAND_ID);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
index 310e8c2fb..6a00953f0 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
@@ -27,7 +27,7 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  */
 public abstract class CdmPreferencePage extends PreferencePage implements IE4PreferencePage {
 
-    private boolean isApply;
+    private boolean isApply = false;
 
     protected boolean isAdminPreference;
 
@@ -46,10 +46,21 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         init();
     }
 
+
+
     public void init() {
         setPreferenceStore(PreferencesUtil.getPreferenceStore());
     }
 
+    @Override
+    public void createControl(Composite parent){
+        super.createControl(parent);
+        if (getApplyButton() != null){
+            this.getApplyButton().setEnabled(false);
+        }
+
+    }
+
     @Override
     public boolean performOk() {
         if (isValid()){
@@ -65,9 +76,9 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
 
     @Override
     public void performApply() {
-        isApply = true;
+        setApply(true);
         super.performApply();
-        isApply = false;
+        setApply(false);
     }
 
     protected Composite createComposite(Composite composite) {
@@ -108,6 +119,15 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
         return allowOverrideCheckButton;
     }
 
+    public boolean isApply() {
+        return isApply;
+    }
+
+    public void setApply(boolean isApply) {
+        this.isApply = isApply;
+        this.getApplyButton().setEnabled(this.isApply);
+    }
+
 
 
 }
