ref #7849: improve DB preference handling and use editorpreferencePredicates keys...
authorKatja Luther <k.luther@bgbm.org>
Fri, 23 Nov 2018 13:06:00 +0000 (14:06 +0100)
committerKatja Luther <k.luther@bgbm.org>
Fri, 23 Nov 2018 13:40:59 +0000 (14:40 +0100)
39 files changed:
eu.etaxonomy.taxeditor.application/src/main/java/eu/etaxonomy/taxeditor/LifeCycleManager.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/DistributionEditingSupportE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CloneClassificationHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/CreateClassificationHierarchyHandlerE4.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/e4/handler/NewClassificationHandlerE4.java
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/fragment.e4xmi
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/ChecklistEditorGeneralAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/GeneralAdminPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NameDetailsViewConfiguration.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/NomenclaturalCodePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/PublishFlagPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SpecimenAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/VocabularyAdminPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/defaultHandler/e4/DefaultOpenTaxonNodeWizardHandlerE4.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/handler/e4/OpenDistributionStatusWizardAdminHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/Messages.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/l10n/messages_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminGeneralPreferences_.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminGeneralPreferences.java with 94% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/GeneralPreferencePage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SpecimenOrObservationPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/CdmPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAdminTermSelectionWizardPage.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractTermSelectionWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableAreaVocabulariesPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusAdminWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionStatusWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableVocabularyWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CommandHandlerButton.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/DescriptionElementSourceElement.java

index 1b800ff97ff8757d29b61f7bd3622bea172e5354..92d8bf1b91375f6b213d455de8098dfc3917a90f 100644 (file)
@@ -39,7 +39,7 @@ import org.eclipse.ui.PlatformUI;
 import org.osgi.service.event.Event;
 
 import eu.etaxonomy.taxeditor.model.IContextListener;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -137,7 +137,7 @@ public class LifeCycleManager implements IContextListener{
         PreferencesUtil.updateDBPreferences();
 
         hideParts();
-        if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_CHECKLIST_PERSPECTIVE)){
+        if (PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowChecklistPerspective.getKey())){
             IWorkbench workbench = PlatformUI.getWorkbench();
             IWorkbenchWindow window = workbench
                     .getActiveWorkbenchWindow();
index c825594288139330af731bda811944dd38963595..8a3901f02fb3ca29c14e4a79535e2c030962f444 100644 (file)
@@ -31,8 +31,6 @@ import org.eclipse.swt.widgets.TableColumn;
 
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
-import eu.etaxonomy.cdm.model.common.Marker;
-import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.OrderedTermComparator;
 import eu.etaxonomy.cdm.model.common.Representation;
 import eu.etaxonomy.cdm.model.common.TermType;
@@ -272,19 +270,19 @@ public final class DistributionEditingSupportE4 extends EditingSupport {
                     if (!descriptions.isEmpty()) {
                         //TODO: use the default description
                         for (TaxonDescription desc : descriptions) {
-                            if (PreferencesUtil.getBooleanValue(EditorPreferencePredicate.OwnDescriptionForDistributionEditor.getKey())){
-                                for (Marker marker: desc.getMarkers()){
-                                    if(marker.getMarkerType().equals(MarkerType.DISTRIBUTION_EDITOR_FACT())){
-                                        desc.addElement(distribution);
-                                        added = true;
-                                        break;
-                                    }
-                                }
-                            }else {
+//                            if (PreferencesUtil.getBooleanValue(EditorPreferencePredicate.OwnDescriptionForDistributionEditor.getKey())){
+//                                for (Marker marker: desc.getMarkers()){
+//                                    if(marker.getMarkerType().equals(MarkerType.DISTRIBUTION_EDITOR_FACT())){
+//                                        desc.addElement(distribution);
+//                                        added = true;
+//                                        break;
+//                                    }
+//                                }
+//                            }else {
                                 desc.addElement(distribution);
                                 added = true;
                                 break;
-                            }
+//                            }
 
                         }
                     }
index 1e4fb6b93cc8a878b64612fcc18e55c2e01d4c4c..ac32ee3c12fa52b393249b107dbaa1a3f902eaa1 100644 (file)
@@ -22,6 +22,7 @@ import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
 import eu.etaxonomy.taxeditor.navigation.operation.CloneClassificationOperation;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -74,7 +75,7 @@ public class CloneClassificationHandlerE4 {
                 && selection.getFirstElement() instanceof TaxonNode
                 && ((TaxonNode) selection.getFirstElement()).getTaxon()==null
                 && PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)
-                && !PreferencesUtil.getBooleanValue(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
+                && !PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DisableMultiClassification.getKey());
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index 61992d6d52802e17f6378768d96960d297a4b9be..f24edefaa99e631d30d76abe957054c52204eb74 100644 (file)
@@ -17,6 +17,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.navigation.l10n.Messages;
 import eu.etaxonomy.taxeditor.navigation.navigator.e4.TaxonNavigatorE4;
 import eu.etaxonomy.taxeditor.navigation.operation.CreateNewTaxonHierarchyOperation;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
@@ -57,7 +58,7 @@ public class CreateClassificationHierarchyHandlerE4 {
                 && selection.getFirstElement() instanceof TaxonNode
                 && ((TaxonNode) selection.getFirstElement()).getTaxon()==null
                 && PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_EXPERIMENTAL_FEATURES)
-                && !PreferencesUtil.getBooleanValue(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
+                && !PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DisableMultiClassification.getKey());
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index a49847717d9ade2467a17fd485610f3c5b45a749..ddefa046c83b6181ebda6186f5c797b061067912 100644 (file)
@@ -22,7 +22,7 @@ import org.eclipse.swt.widgets.Shell;
 
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNodePropertyTester;
 import eu.etaxonomy.taxeditor.newWizard.NewClassificationWizard;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
@@ -47,7 +47,7 @@ public class NewClassificationHandlerE4 {
     private boolean canExecute(MHandledMenuItem menuItem){
         boolean canExecute = false;
 
-        canExecute = TaxonNodePropertyTester.noClassifiactionExists() || !PreferencesUtil.getBooleanValue(IPreferenceKeys.DISABLE_MULTI_CLASSIFICATION);
+        canExecute = TaxonNodePropertyTester.noClassifiactionExists() || !PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DisableMultiClassification.getKey());
         menuItem.setVisible(canExecute);
         return canExecute;
     }
index ab9d0a71767f203037eb3804df34b09c907e9f8f..8337db8f9229279eedbeb3877f5f75b8014bac44 100644 (file)
@@ -230,3 +230,9 @@ menu.label.2 = Export
 menu.label.3 = Import
 handledmenuitem.label.10 = Restart
 handledmenuitem.label.11 = Check for updates
+\r
+handledmenuitem.label.12 = Paste\r
+handledmenuitem.label.13 = Copy\r
+command.commandname.11 = Copy Feature\r
+command.commandname.12 = Paste Feature\r
+command.commandname.13 = Open Distribution Status Wizard\r
index de229283cc7324da08ae61c922516074c50f76f3..d61606aff7452c74eb738ff5b90155211884197d 100644 (file)
@@ -229,4 +229,5 @@ handledmenuitem.tooltip.2 = Gfbio Term Import
 menu.label.2 = Export
 menu.label.3 = Import
 handledmenuitem.label.10 = Neustarten
-handledmenuitem.label.11 = Nach Updates suchen
\ No newline at end of file
+handledmenuitem.label.11 = Nach Updates suchen
+command.commandname.13 = Ã–ffne Verbreitungsstatus Wizard
\ No newline at end of file
index 124db784b3aadf2586273d7e940f128dc7f74454..fbd3c68e3d571e408f8eaa75bad8340be1478b2a 100644 (file)
@@ -19,8 +19,8 @@
         <children xsi:type="menu:HandledMenuItem" xmi:id="_jr4E0Be0EeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addchildfeature" label="%handledmenuitem.label.2" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_aPYxsBezEeiXusClKZjycQ"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_eWBz0GcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.addFeature" label="%handledmenuitem.label.3" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/add.gif" command="_oftL0GceEee0qLTtA2ZpVQ"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_XtPjcNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.8"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_G_IOENj3EeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="Paste" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="Copy" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_G_IOENj3EeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.paste" label="%handledmenuitem.label.12" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/paste_edit.png" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_QXkWYNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.copy" label="%handledmenuitem.label.13" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/copy_edit.png" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
         <children xsi:type="menu:MenuSeparator" xmi:id="_So5f0NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.menuseparator.7"/>
         <children xsi:type="menu:HandledMenuItem" xmi:id="_7vaEcGcqEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.store.handledmenuitem.exportFeatureTree" label="%handledmenuitem.label.4" iconURI="platform:/plugin/eu.etaxonomy.taxeditor.store/icons/export.gif" command="_I_yx4GcqEee0qLTtA2ZpVQ">
           <visibleWhen xsi:type="ui:CoreExpression" xmi:id="_-91IQGcqEee0qLTtA2ZpVQ" coreExpressionId="isShowExperimentalFeatures"/>
     <elements xsi:type="commands:Command" xmi:id="_tPtdwMiIEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler" commandName="%command.name.111"/>
     <elements xsi:type="commands:Command" xmi:id="_tRsg8MrcEeiKErB3UVzQug" elementId="eu.etaxonomy.taxeditor.store.open.OpenCommonNameAreaWizardAdminHandler" commandName="%command.name.112"/>
     <elements xsi:type="commands:Command" xmi:id="_nP0XMNhHEeijwMElCRdOhg" elementId="org.eclipse.ui.file.restartWorkbench" commandName="%command.commandname.10"/>
-    <elements xsi:type="commands:Command" xmi:id="_cMyQ4NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.copyFeature" commandName="Copy Feature"/>
-    <elements xsi:type="commands:Command" xmi:id="_xDk5kNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.pasteFeature" commandName="Paste Feature"/>
+    <elements xsi:type="commands:Command" xmi:id="_cMyQ4NjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.copyFeature" commandName="%command.commandname.11"/>
+    <elements xsi:type="commands:Command" xmi:id="_xDk5kNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.store.command.featureTree.pasteFeature" commandName="%command.commandname.12"/>
+    <elements xsi:type="commands:Command" xmi:id="_Za5DYO5vEeizn7bmbAeBkw" elementId="eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler" commandName="%command.commandname.13"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_swGH0GhvEee3K4uKJljEYg" featurename="handlers" parentElementId="xpath:/">
     <elements xsi:type="commands:Handler" xmi:id="_rVEdIGcjEee0qLTtA2ZpVQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.RemoveFeatureHandler" command="_fNBtQGcjEee0qLTtA2ZpVQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_hPTxMBezEeiXusClKZjycQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.AddChildFeatureHandler" command="_aPYxsBezEeiXusClKZjycQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_i-FlkNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.CopyFeatureHandler" command="_cMyQ4NjyEeidDMMI9xTsbQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_tzQ_YNjyEeidDMMI9xTsbQ" elementId="eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.featuretree.e4.handler.PasteFeatureHandler" command="_xDk5kNjyEeidDMMI9xTsbQ"/>
+    <elements xsi:type="commands:Handler" xmi:id="_xWlngO5vEeizn7bmbAeBkw" elementId="eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStausWizardHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.store/eu.etaxonomy.taxeditor.handler.e4.OpenDistributionStatusWizardHandler" command="_Za5DYO5vEeizn7bmbAeBkw"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_qT4hgIfTEeecZ4F2Y9Z0Og" featurename="children" parentElementId="eu.etaxonomy.taxeditor.workbench.menu.window" positionInList="before:eu.etaxonomy.taxeditor.application.windowMenu.last">
     <elements xsi:type="menu:Menu" xmi:id="_LT3P8IfcEeecZ4F2Y9Z0Og" elementId="eu.etaxonomy.taxeditor.store.menu.termeditor" label="%menu.label.1">
index a05e10059a29daddbd7a7b0d6216883d96eab212..1ca6abdcbd7bde067e2fcb78511dacdc291f7aff 100755 (executable)
          id="eu.etaxonomy.taxeditor.preferences.feature"
          name="%page.name.1">
    </page>
-   <page
+  <!-- <page
          category="eu.etaxonomy.taxeditor.preferences.description"
          class="eu.etaxonomy.taxeditor.preference.menu.PresenceAbsenceMenuPreferences"
          id="eu.etaxonomy.taxeditor.preferences.distributionStatus"
          name="%page.name.2">
-   </page>
+   </page>-->
     <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.SearchPreferences"
          id="eu.etaxonomy.taxeditor.preference.TaxonNavigator"
          name="%page.name.32">
    </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.preference.GeneralPreferencePage"
+         id="eu.etaxonomy.taxeditor.preferences.generalPreferences"
+         name="%page.name.50">
+   </page>
 </extension>
 <extension
       point="eu.etaxonomy.taxeditor.store.adminPreferencePage">
index 61583c60367b8a1f9c6f0cf5a5934d6d96999ee5..1a3b0c609fb9de441f3a9e8523560ba04a605006 100755 (executable)
@@ -14,6 +14,7 @@ import org.eclipse.swt.widgets.Control;
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference;
 import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -27,195 +28,10 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGeneralPreference implements IE4AdminPreferencePage {
 
 
-
-
-
     @Override
     protected Control createContents(Composite parent) {
-
-//        allowOverride = distributionPref.isAllowOverride();
-//
-//        final Button allowOverrideCheckButton = new Button(parent, SWT.CHECK);
-//        allowOverrideCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
-//        allowOverrideCheckButton.setSelection(allowOverride);
-//        allowOverrideCheckButton.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                allowOverride = allowOverrideCheckButton.getSelection();
-//            }
-//        });
-//
         return super.createContents(parent);
-//
-//        final Button activateCheckButton = new Button(composite, SWT.CHECK);
-//        activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
-//        activateCheckButton.setSelection(isEditorActivated);
-//        activateCheckButton.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isEditorActivated = activateCheckButton.getSelection();
-//
-//                if(isEditorActivated){
-//                    child.setVisible(true);
-//                    child.setEnabled(true);
-//                }else{
-//                    child.setVisible(false);
-//                    child.setEnabled(false);
-//                }
-//
-//            }
-//        });
-//
-//        child  = new Composite(composite, SWT.NULL);
-//        child.setLayout(new GridLayout());
-//        child.setVisible(isEditorActivated);
-//
-//
-//
-////
-//
-//
-////
-////        final CommandHandlerButton button_openWizard = new CommandHandlerButton(child, SWT.PUSH,
-////                "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler");
-////
-////        button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
-//
-////        Table table = new Table
-//        final CLabel description = new CLabel(child, SWT.NULL);
-//        description.setText(Messages.ChecklistEditorGeneralPreference_Configure_display_of_Areas);
-//
-//
-//        GridData gridData = new GridData();
-//        gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
-//        gridData.horizontalIndent = 5;
-////      classificationSelection.setLayoutData(gridData);
-//
-//
-//        final Button showIdInVocabulary = new Button(child, SWT.RADIO);
-//        CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowIdInVocabulary);
-//        if (pref != null){
-//            isShowIdInVocabulary = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isShowIdInVocabulary = false;
-//        }
-//        showIdInVocabulary.setText(Messages.ChecklistEditorGeneralPreference_show_id_in_voc);
-//        showIdInVocabulary.setSelection(isShowIdInVocabulary);
-//        showIdInVocabulary.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowIdInVocabulary = showIdInVocabulary.getSelection();
-//
-//             }
-//        });
-//        final Button showSymbol1 = new Button(child, SWT.RADIO);
-//        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol1);
-//        if (pref != null){
-//            isShowSymbol1 = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isShowSymbol1 = false;
-//        }
-//        showSymbol1.setText(Messages.ChecklistEditorGeneralPreference_show_symbol1);
-//        showSymbol1.setSelection(isShowSymbol1);
-//        showSymbol1.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowSymbol1 = showSymbol1.getSelection();
-//
-//             }
-//        });
-//        final Button showSymbol2 = new Button(child, SWT.RADIO);
-//        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol2);
-//        if (pref != null){
-//            isShowSymbol2 = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isShowSymbol2 = false;
-//        }
-//        showSymbol2.setText(Messages.ChecklistEditorGeneralPreference_show_symbol2);
-//        showSymbol2.setSelection(isShowSymbol2);
-//        showSymbol2.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowSymbol2 = showSymbol2.getSelection();
-//
-//             }
-//        });
-//        final Button showTitle = new Button(child, SWT.RADIO);
-//        isShowTitle = !(isShowIdInVocabulary || isShowSymbol1 || isShowSymbol2);
-//
-//        showTitle.setText(Messages.ChecklistEditorGeneralPreference_show_title);
-//        showTitle.setSelection(isShowTitle);
-//        showTitle.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowTitle = showTitle.getSelection();
-//
-//             }
-//        });
-//
-//        final Label seperator1 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
-//        final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
-//
-//        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedByIdInVocabulary);
-//        if (pref != null){
-//            isSortByVocabularyOrder = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isSortByVocabularyOrder = false;
-//        }
-//
-//        sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
-//        sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
-//        sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
-//             }
-//        });
-//        final Label seperator2 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
-//        final CLabel descriptionStatus = new CLabel(child, SWT.NULL);
-//        descriptionStatus.setText(Messages.ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT);
-//        final Button showSymbol = new Button(child, SWT.CHECK);
-//        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbolForStatus);
-//        if (pref != null){
-//            isShowSymbol = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isShowSymbol = false;
-//        }
-//
-//        showSymbol.setText(Messages.ChecklistEditorGeneralPreference_show_symbol);
-//        showSymbol.setSelection(isShowSymbol);
-//        showSymbol.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowSymbol = showSymbol.getSelection();
-//             }
-//        });
-////        PreferencesUtil.recursiveSetEnabled(button_openWizard, CdmStore.isActive());
-//        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
-//        if (pref != null){
-//            isShowRank = Boolean.valueOf(pref.getValue());
-//        }else{
-//            isShowRank = false;
-//        }
-//
-//        final Button activateRankButton = new Button(child, SWT.CHECK);
-//        activateRankButton.setText(Messages.ChecklistEditorGeneralPreference_show_rank);
-//        activateRankButton.setSelection(isShowRank);
-//        activateRankButton.addSelectionListener(new SelectionAdapter(){
-//            @Override
-//            public void widgetSelected(SelectionEvent e) {
-//                isShowRank = activateRankButton.getSelection();
-//            }
-//        });
-//
-//
-//        if(isEditorActivated){
-//            child.setEnabled(true);
-//        }else{
-//            child.setEnabled(false);
-//        }
 
-  //      return composite;
     }
 
     @Override
@@ -259,8 +75,8 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
     }
 
     @Override
-    public void init() {
-        setPreferenceStore(PreferencesUtil.getPreferenceStore());
+    public void getValues() {
+
         distributionEditorPref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
         if (distributionEditorPref == null){
             distributionEditorPref = CdmPreference.NewTaxEditorInstance(EditorPreferencePredicate.DistributionEditorActivated, EditorPreferencePredicate.DistributionEditorActivated.getDefaultValue().toString());
@@ -316,8 +132,8 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
 
         commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
         commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler";
+        overrideString = Messages.GeneralPreference_allowOverride;
         setValid(false);
-
     }
 
 }
index 4e1361a9fb3354edcc75da78dd6462a7094ac336..6eef2fe5fe1ac94aa0b68a4c8de6e9a958a32af2 100755 (executable)
@@ -55,7 +55,7 @@ public class DistributionAdminPreferences extends CdmPreferencePage implements I
 
         button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
         final Button allowOverrideAreasCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideAreasCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
+        allowOverrideAreasCheckButton.setText(Messages.GeneralPreference_allowOverride);
         allowOverrideAreasCheckButton.setSelection(allowOverrideAreas);
         allowOverrideAreasCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
@@ -81,7 +81,7 @@ public class DistributionAdminPreferences extends CdmPreferencePage implements I
 
         button_openStatusWizard.setText(Messages.Distribution_status_selection);
         final Button allowOverrideStatusCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideStatusCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
+        allowOverrideStatusCheckButton.setText(Messages.GeneralPreference_allowOverride);
         allowOverrideStatusCheckButton.setSelection(allowOverrideStatus);
         allowOverrideStatusCheckButton.addSelectionListener(new SelectionAdapter(){
             @Override
index c08fcdc3753bfef7124a835e6553d8ea8f0aaf84..90fc618726a59711bbc53eca7060aadf42549d52 100755 (executable)
@@ -8,14 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
@@ -23,8 +15,9 @@ import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.GeneralPreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -32,131 +25,33 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 29.05.2018
  *
  */
-public class GeneralAdminPreferencePage extends CdmPreferencePage implements IE4AdminPreferencePage {
-
+public class GeneralAdminPreferencePage extends GeneralPreferencePage implements IE4AdminPreferencePage {
 
-    boolean isShowIOMenu = true;
-    boolean isShowMediaView = true;
-    boolean isShowCheckListPerspective = false;
-    boolean isShowTaxonNodeWizard = true;
     ICdmRepository controller = null;
     CdmPreference isShowSpecimenPref = null;
     /**
      * {@inheritDoc}
      */
-    @Override
-    protected Control createContents(Composite parent) {
-        final Composite composite = new Composite(parent, SWT.NULL);
-
-
-        GridLayout gridLayout = new GridLayout();
-        composite.setLayout(gridLayout);
-        controller = CdmStore.getCurrentApplicationConfiguration();
-        if (controller != null){
-            IPreferenceService service = controller.getPreferenceService();
-            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
-            CdmPreference isShowSpecimenPref = service.find(key);
-            if (isShowSpecimenPref != null){
-                this.isShowIOMenu = Boolean.valueOf(isShowSpecimenPref.getValue());
-            }
-
-            key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowMediaView);
-            CdmPreference isShowMediaViewPref = service.find(key);
-            if (isShowMediaViewPref != null){
-                this.isShowMediaView = Boolean.valueOf(isShowMediaViewPref.getValue());
-            }
-
-            key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
-            CdmPreference isShowChecklistPref = service.find(key);
-            if (isShowChecklistPref != null){
-                this.isShowCheckListPerspective = Boolean.valueOf(isShowChecklistPref.getValue());
-            }
-
-            key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
-            CdmPreference isShowTaxonNodeWizardPref = service.find(key);
-            if (isShowTaxonNodeWizardPref != null){
-                this.isShowTaxonNodeWizard = Boolean.valueOf(isShowTaxonNodeWizardPref.getValue());
-            }
-        }
-        final Button showIOMenuButton = new Button(composite, SWT.CHECK);
-
-        showIOMenuButton.setText(Messages.DatabasePreferncesPage_Show_IOMenu);
-
-        showIOMenuButton.setSelection(isShowIOMenu);
-        showIOMenuButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowIOMenu = showIOMenuButton.getSelection();
-
-              }
-         });
-
-        final Button showMediaViewButton = new Button(composite, SWT.CHECK);
-
-        showMediaViewButton.setText(Messages.DatabasePreferncesPage_Show_MediaView);
-
-        showMediaViewButton.setSelection(isShowMediaView);
-        showMediaViewButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowMediaView = showIOMenuButton.getSelection();
-
-              }
-         });
-        final Button showChecklistPerspectiveButton = new Button(composite, SWT.CHECK);
-
-        showChecklistPerspectiveButton.setText(Messages.DatabasePreferncesPage_Show_ChecklistPerspective);
 
-        showChecklistPerspectiveButton.setSelection(isShowCheckListPerspective);
-        showChecklistPerspectiveButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowCheckListPerspective = showChecklistPerspectiveButton.getSelection();
-
-              }
-         });
-
-        final Button showTaxonNodeWizardButton = new Button(composite, SWT.CHECK);
-
-        showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
-
-        showTaxonNodeWizardButton.setSelection(isShowTaxonNodeWizard);
-        showTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowTaxonNodeWizard = showTaxonNodeWizardButton.getSelection();
-
-              }
-         });
-
-
-        return composite;
-    }
-
-    @Override
-    public void createControl(Composite parent){
-        super.createControl(parent);
-        getControl().setVisible(false);
-    }
 
     @Override
     public boolean performOk() {
 
-       //ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+
        if (controller != null){
            IPreferenceService service = controller.getPreferenceService();
 
            CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowImportExportMenu, Boolean.toString(this.isShowIOMenu));
-           pref.setAllowOverride(true);
-           service.set(pref);
-           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowMediaView, Boolean.toString(this.isShowMediaView));
-           pref.setAllowOverride(true);
+           pref.setAllowOverride(isAllowOverrideShowIOMenu);
            service.set(pref);
+//           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowMediaView, Boolean.toString(this.isShowMediaView));
+//           pref.setAllowOverride(isAllowOverrideShowMediaView);
+//           service.set(pref);
            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowChecklistPerspective, Boolean.toString(this.isShowCheckListPerspective));
-           pref.setAllowOverride(true);
+           pref.setAllowOverride(isAllowOverrideShowCheckListPerspective);
            service.set(pref);
            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowTaxonNodeWizard, Boolean.toString(this.isShowTaxonNodeWizard));
-           pref.setAllowOverride(true);
+           pref.setAllowOverride(isAllowOverrideShowTaxonNodeWizard);
            service.set(pref);
            PreferencesUtil.updateDBPreferences();
 
@@ -164,5 +59,54 @@ public class GeneralAdminPreferencePage extends CdmPreferencePage implements IE4
        }
        return true;
    }
+    @Override
+    protected void getValues(){
+        isAdminPreference = true;
+        overrideString = Messages.GeneralPreference_allowOverride;
+        controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller != null){
+          IPreferenceService service = controller.getPreferenceService();
+          PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
+          CdmPreference pref = service.find(key);
+          if (pref != null){
+              isShowIOMenu = Boolean.valueOf(pref.getValue());
+              isAllowOverrideShowIOMenu = pref.isAllowOverride();
+          }else{
+              isShowIOMenu = Boolean.valueOf(EditorPreferencePredicate.ShowImportExportMenu.getDefaultValue().toString());
+              isAllowOverrideShowIOMenu = true;
+          }
+
+//          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowMediaView);
+//          pref = service.find(key);
+//          if (pref != null){
+//              isShowMediaView = Boolean.valueOf(pref.getValue());
+//              isAllowOverrideShowMediaView = pref.isAllowOverride();
+//          }else{
+//              isShowMediaView = Boolean.valueOf(EditorPreferencePredicate.ShowMediaView.getDefaultValue().toString());
+//              isAllowOverrideShowMediaView = true;
+//          }
+
+          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
+          pref = service.find(key);
+          if (pref != null){
+              isShowCheckListPerspective = Boolean.valueOf(pref.getValue());
+              isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
+          }else{
+              isShowCheckListPerspective = Boolean.valueOf(EditorPreferencePredicate.ShowChecklistPerspective.getDefaultValue().toString());
+              isAllowOverrideShowCheckListPerspective = true;
+          }
+
+          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
+          pref = service.find(key);
+          if (pref != null){
+              isShowTaxonNodeWizard = Boolean.valueOf(pref.getValue());
+              isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
+          }else{
+              isShowTaxonNodeWizard = Boolean.valueOf(EditorPreferencePredicate.ShowTaxonNodeWizard.getDefaultValue().toString());
+              isAllowOverrideShowTaxonNodeWizard = true;
+          }
+      }
+
+    }
 
 }
index b51244f5410a675d1d34718291ca86a2246ea492..d0ea11f71926c155e4345bcad8271e053266b51a 100755 (executable)
@@ -52,13 +52,15 @@ public class NameDetailsViewConfiguration extends CdmPreferencePage implements I
     protected Control createContents(Composite parent) {
         final CLabel description = new CLabel(parent, SWT.NULL);
         description.setText(Messages.NameDetailsViewConfiguration_description);
+
+        Composite title  = createComposite(parent);
         nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(false);
         if (nameDetailsConfig == null){
             nameDetailsConfig = new NameDetailsConfigurator(false);
         }
 
-        final Button activateCheckButton = new Button(parent, SWT.CHECK);
-        final Button allowLocalPreference = new Button(parent, SWT.CHECK);
+        final Button activateCheckButton = new Button(title, SWT.CHECK);
+        final Button allowLocalPreference = new Button(title, SWT.CHECK);
         Composite dbSettings  = new Composite(parent, SWT.NONE);
 
         activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
index e31be82bdd23f783b32ce3b3616afb705500ee65..ba53bdb36fcfe458db592be73f9780f92dff6c5c 100755 (executable)
@@ -17,7 +17,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -50,6 +50,8 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
     Map<String, Integer> keyAndIndex;
     Combo nomenclaturalCode;
 
+    boolean allowOverride;
+
 
        @Override
        protected Control createContents(Composite parent) {
@@ -65,11 +67,14 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
             }else{
                 actualCode = PreferencesUtil.getPreferenceKey(PreferencesUtil.getPreferredNomenclaturalCode());
             }
+            allowOverride = pref.isAllowOverride();
         }
-           Composite composite = new Composite(parent, SWT.NULL);
-        composite.setLayout(new GridLayout());
+
+           Composite composite = createComposite(parent);
+
         final CLabel description = new CLabel(composite, SWT.NULL);
         description.setText(Messages.NomenclaturalCodePreferences_description);
+        description.setLayoutData(createTextGridData());
         nomenclaturalCode= new Combo(composite, SWT.READ_ONLY);
         nomenclaturalCode.setText(Messages.NomenclaturalCodePreferences_available_codes);
 
@@ -103,6 +108,15 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
 
             }
         });
+        Button allowOverrideButton = createAllowOverrideButton(composite);
+        allowOverrideButton.setText(Messages.GeneralPreference_allowOverride);
+        allowOverrideButton.setSelection(allowOverride);
+        allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                allowOverride = allowOverrideButton.getSelection();
+            }
+        });
 
         return composite;
 
@@ -143,7 +157,9 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
         public boolean performOk() {
 
            if (actualCode != null){
-               PreferencesUtil.setPreferredNomenclaturalCode(actualCode, false);
+               CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, actualCode);
+               pref.setAllowOverride(allowOverride);
+               PreferencesUtil.setPreferredNomenclaturalCode(pref);
            }
 
         return true;
index 1af7950dadefbd1883a47e46c55e03d9d29371ee..a1779d6884fd807286bf0156d06a08ba75435db1 100755 (executable)
@@ -84,7 +84,6 @@ public class PublishFlagPreference extends CdmPreferencePage implements IE4Admin
             index++;
         }
 
-
         return composite;
 
     }
@@ -95,8 +94,14 @@ public class PublishFlagPreference extends CdmPreferencePage implements IE4Admin
         if (pref == null){
             return true;
         }
-
-        CdmPreference pref = CdmPreference.NewTaxEditorInstance(EditorPreferencePredicate.DefaultBehaviourForPublishFlag, publishFlagBehaviour.getText());
+        String text = publishFlagBehaviour.getText();
+        for (PublishEnum display: PublishEnum.values()){
+            if (display.getLabel().equals(text)){
+                text = display.getKey();
+                break;
+            }
+        }
+        CdmPreference pref = CdmPreference.NewTaxEditorInstance(EditorPreferencePredicate.DefaultBehaviourForPublishFlag, text);
         pref.setAllowOverride(true);
 
         ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
index eed1b7c2986a7f991df1dbc4079c02ca35c5e59c..38fc5c0b7da1281ceb6acf009c24518c56e25a7a 100755 (executable)
@@ -8,14 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
@@ -25,7 +18,7 @@ import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.preference.SpecimenOrObservationPreferences;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -33,121 +26,111 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 27.04.2018
  *
  */
-public class SpecimenAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
-    public SpecimenAdminPreferences() {
-    }
+public class SpecimenAdminPreferences extends SpecimenOrObservationPreferences implements IE4AdminPreferencePage {
+
 
-    boolean isShowSpecimenRelatedIssues;
-    boolean allowOverrideShowSpecimenRelatedIssues;
-    boolean isShowCollectingAreaInGeneralSection;
-    boolean allowOverrideShowCollectingAreaInGeneralSection;
-    boolean isDeterminationOnlyForFieldUnits;
-    boolean allowOverrideDeterminationOnlyForFieldUnits;
-    boolean isShowTaxonAssociation;
-    boolean allowOverrideShowTaxonAssociation;
-    boolean isShowLifeForm;
-    boolean allowOverrideShowLifeForm;
 
     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);
-                 }
-              }
-         });
-
-        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-        separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        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();
-
-              }
-         });
-
-        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();
-             }
-         });
-
-        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();
-
-              }
-         });
-
-        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();
-
-              }
-         });
-
-    //    Composite useLocalComp = new Composite(composite, SWT.NONE);
-
-
-//        final Button useLocalPreference = new Button(composite, SWT.CHECK);
+//    @Override
+//    protected Control createContents(Composite parent) {
 //
-//        useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
-//        GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
-//        gridData.verticalIndent = 10;
-//        useLocalPreference.setLayoutData(gridData);
+//        getValues();
+//        composite = createComposite(parent);
+//        composite.setEnabled(isShowSpecimenRelatedIssues);
+//        final Button showSpecimenButton = new Button(parent, SWT.CHECK);
 //
-//        useLocalPreference.setSelection(isUseLocalPreference);
-//        useLocalPreference.addSelectionListener(new SelectionAdapter(){
+//        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
+//
+//        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
+//        showSpecimenButton.addSelectionListener(new SelectionAdapter(){
 //             @Override
 //             public void widgetSelected(SelectionEvent e) {
-//                 isUseLocalPreference = useLocalPreference.getSelection();
-//                 PreferencesUtil.setBooleanValue(IPreferenceKeys.SHOW_SPECIMEN_ALLOW_OVERRIDE, isUseLocalPreference);
+//                 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
+//                 if(isShowSpecimenRelatedIssues){
+//                     composite.setVisible(true);
+//                     composite.setEnabled(true);
+//                 }else{
+//                     composite.setVisible(false);
+//                     composite.setEnabled(false);
+//                 }
 //              }
 //         });
-        return composite;
-    }
+//        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() {
@@ -157,7 +140,10 @@ public class SpecimenAdminPreferences extends CdmPreferencePage implements IE4Ad
         }
     }
 
-    private void getValues(){
+    @Override
+    protected void getValues(){
+        isAdminPreference = true;
+        overrideString = Messages.GeneralPreference_allowOverride;
         ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
         if (controller != null){
             IPreferenceService service = controller.getPreferenceService();
index 72c38d6043ec3c019f80783b4796175dc7172980..e2866fb431cdf6c8a5a40d5ef4913ac4571ad72d 100755 (executable)
@@ -55,8 +55,7 @@ public class VocabularyAdminPreferences extends CdmPreferencePage implements IE4
                 "eu.etaxonomy.taxeditor.store.open.OpenCommonNameAreaWizardAdminHandler"); //$NON-NLS-1$
 
         button_opencommonNameAreaWizard.setText(Messages.GeneralPreference_open_common_name_area_selection);
-        final Button allowOverrideCommonNameAreaCheckButton = new Button(composite, SWT.CHECK);
-        allowOverrideCommonNameAreaCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
+        final Button allowOverrideCommonNameAreaCheckButton = createAllowOverrideButton(composite);
 
         if (pref != null){
             allowOverride = pref.isAllowOverride();
index 7367ba6241aeafb6f7bb0a2eba6a59831a731fd0..26dbe71b34290cd424b38804fb2be1a5c59462a6 100644 (file)
@@ -19,7 +19,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.ui.section.classification.EditTaxonNodeWizard;
@@ -49,7 +49,7 @@ public class DefaultOpenTaxonNodeWizardHandlerE4 extends DefaultOpenHandlerBaseE
 
     @Override
     public boolean canExecute(TaxonNode entity) {
-        return entity.getTaxon()!=null && PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_TAXONNODE_WIZARD);
+        return entity.getTaxon()!=null && PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey());
     }
 
 }
\ No newline at end of file
index 1c52598f24c11bd5754f9888eb52efe5fcba2caa..3310d1a186c148fa8417935be17398d04b4a726d 100755 (executable)
@@ -15,7 +15,7 @@ import org.eclipse.e4.ui.services.IServiceConstants;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.widgets.Shell;
 
-import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionStatusWizard;
+import eu.etaxonomy.taxeditor.preference.wizard.AvailableDistributionStatusAdminWizard;
 
 /**
  * @author k.luther
@@ -28,7 +28,7 @@ public class OpenDistributionStatusWizardAdminHandler {
     @Execute
     public void execute(@Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
 
-        AvailableDistributionStatusWizard wizard = new AvailableDistributionStatusWizard();
+        AvailableDistributionStatusAdminWizard wizard = new AvailableDistributionStatusAdminWizard();
 
         WizardDialog dialog = new WizardDialog(shell,
                 wizard);
index cf58cdc6ceb9f28424326d09fd255877ab59eedc..951ade6049a7b7718a1b41b37042fe03430519a8 100644 (file)
@@ -556,74 +556,37 @@ public class Messages extends NLS {
 
 
     public static String AvailableDistributionStatusPage_PAGE_DESCRIPTION;
-
-
     public static String AvailableDistributionStatusPage_PAGE_TITLE;
 
 
     public static String AvailableDistributionStatusWizard_PAGE_TITLE;
-
-
     public static String AvailableDistributionStatusWizard_WINDOW_TITLE;
-
-
     public static String AvailableDistributionStatusWizard_WIZARD_TITLE;
 
-
     public static String AvailableDistributionWizard_CHECK_MESSAGE;
-
-
     public static String AvailableDistributionWizard_PAGE_TITLE;
-
-
     public static String AvailableDistributionWizard_WINDOW_TITLE;
 
-
     public static String AvailableVocabularyWizard_PAGE_TITLE;
-
-
     public static String AvailableVocabularyWizard_WINDOW_TITLE;
-
-
     public static String AvailableVocabularyWizard_WIZARD_TITLE;
 
 
     public static String CheckBoxTreeComposite_COLLAPSE_ALL;
-
-
     public static String CheckBoxTreeComposite_EXPAND;
-
-
     public static String CheckBoxTreeComposite_TOGGLE_TREE_SELECTION;
 
 
     public static String ChecklistEditorGeneralPreference_3;
     public static String ChecklistEditorGeneralPreference_enable;
-
-
-
-
-    public static String ChecklistEditorGeneralPreference_allowOverride;
-
-
-
-
+    public static String GeneralPreference_allowOverride;
     public static String ChecklistEditorGeneralPreference_open_distribution_selection;
-
-
     public static String ChecklistEditorGeneralPreference_open_wizard;
-
-
     public static String ChecklistEditorGeneralPreference_show_id_in_voc;
-
-
     public static String ChecklistEditorGeneralPreference_show_rank;
-
-
     public static String ChecklistEditorGeneralPreference_show_symbol;
-
-
     public static String ChecklistEditorGeneralPreference_sort_areas;
+    public static String ChecklistEditorGeneralPreference_own_DescriptionToolTip;
 
 
 
@@ -682,6 +645,7 @@ public class Messages extends NLS {
     public static String ChecklistEditorGeneralPreference_Configure_display_of_Status;
     public static String ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT;
     public static String ChecklistEditorGeneralPreference_own_Description;
+    public static String GeneralPreference_override;
 
 
 
@@ -703,6 +667,9 @@ public class Messages extends NLS {
 
 
 
+
+
+
     static {
         // initialize resource bundle
         NLS.initializeMessages(BUNDLE_NAME, Messages.class);
index a495066158356ebee47a26a40e9812bee6fd2fe9..a5c52f703a0780e39902419e8b2932cd43bc08f5 100644 (file)
@@ -342,7 +342,7 @@ CheckBoxTreeComposite_EXPAND=Expand selected node
 CheckBoxTreeComposite_TOGGLE_TREE_SELECTION=Toggle selection on all children
 ChecklistEditorGeneralPreference_3=eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler
 ChecklistEditorGeneralPreference_enable=Enable Distribution Editor
-ChecklistEditorGeneralPreference_allowOverride=Allow override
+GeneralPreference_allowOverride=Allow override
 ChecklistEditorGeneralPreference_open_distribution_selection=Select Area Vocabularies
 ChecklistEditorGeneralPreference_open_wizard=Please open the wizard below, in order to choose the area vocabularies for the Distribution Editor
 ChecklistEditorGeneralPreference_Configure_display_of_Areas=Configure how the areas should be displayed in the column header
@@ -357,7 +357,7 @@ ChecklistEditorGeneralPreference_sort_areas=Sort Areas by Order in Vocabulary
 ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Configure how the status should be displayed
 ChecklistEditorGeneralPreference_own_Description=Create own Fact for factual created by the Distribution Editor
 ChecklistEditorGeneralPreference_own_DescriptionToolTip=Entries created with the Distribution Editor, saved in an own Taxon Description
-
+GeneralPreference_override=Override
 
 
 GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Could not retrieve data from web service
index 0c946c2de156f97e5758893b1688385e3d0290c2..e2ef0638e50ceb91d4a7f8cc8bd44ce4ae2d7107 100644 (file)
@@ -342,7 +342,7 @@ CheckBoxTreeComposite_EXPAND=Ausgew
 CheckBoxTreeComposite_TOGGLE_TREE_SELECTION=Alle Kinder (de-)selektieren
 ChecklistEditorGeneralPreference_3=eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler
 ChecklistEditorGeneralPreference_enable=Verbreitungs-Editor aktivieren
-ChecklistEditorGeneralPreference_allowOverride=Erlaube Ãœberschreiben
+GeneralPreference_allowOverride=Erlaube Ãœberschreiben
 ChecklistEditorGeneralPreference_open_distribution_selection=Gebiets Vokabulare Auswählen
 ChecklistEditorGeneralPreference_open_wizard=Bitte Ã¶ffnen Sie den Auswahl-Dialog, um die Vokabulare für die Areale im Verbreitungs-Editor auszuwählen
 ChecklistEditorGeneralPreference_Configure_display_of_Areas=Konfiguration, wie die Areas im Header der Tabelle dargestellt werden
@@ -357,6 +357,8 @@ ChecklistEditorGeneralPreference_sort_areas=Areas nach der Sortierung im Vokabul
 ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT=Einstellung für die Anzeige des Status
 ChecklistEditorGeneralPreference_own_Description=Erstelle eigenen Fakt für VerbreitungsEditor Faktendaten
 ChecklistEditorGeneralPreference_own_DescriptionToolTip=Einträge, die mit dem Distribution Editor erstellt werden, \nwerden in einer eigenen TaxonDescription gespeichert
+GeneralPreference_override=Ãœberschreiben
+
 
 GfBioTerminologyImportPresenter_NO_CONNECTION_MESSAGE=Konnte keine Verbindung zum Webservice herstellen.
 GfBioTerminologyImportPresenter_NO_CONNECTION_TITLE=Webservice nicht erreichbar
similarity index 94%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminGeneralPreferences.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AdminGeneralPreferences_.java
index 7d4f3bbe3972847c5bbbb3a732a46465dc49a997..ae5945d18d2d91e71c5bbb734aea47d9151741fe 100644 (file)
@@ -17,7 +17,7 @@ import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
  * @date 01.11.2016
  *
  */
-public class AdminGeneralPreferences extends FieldEditorPreferencePageE4 {
+public class AdminGeneralPreferences_ extends FieldEditorPreferencePageE4 {
 
     /* (non-Javadoc)
      * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java
new file mode 100755 (executable)
index 0000000..5adf381
--- /dev/null
@@ -0,0 +1,179 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.TermStore;
+
+/**
+ * @author k.luther
+ * @since 27.04.2018
+ *
+ */
+public class CdmPreferenceCache {
+    Map<String, CdmPreference> preferenceCache = new HashMap();
+
+    private static CdmPreferenceCache instance;
+
+    private final static Logger logger = Logger.getLogger(CdmPreferenceCache.class);
+
+    public static CdmPreferenceCache instance(){
+        if(instance == null){
+            instance = new CdmPreferenceCache();
+        }
+        return instance;
+    }
+
+    public CdmPreference get(String key){
+        return preferenceCache.get(key);
+    }
+
+    public void put(CdmPreference pref){
+        preferenceCache.put(pref.getPredicate(), pref);
+    }
+
+    public void getAllTaxEditorDBPreferences(){
+        ICdmRepository controller;
+        controller = CdmStore.getCurrentApplicationConfiguration();
+        //ABCD
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.AbcdImportConfig);
+        loadAndPutPreference(controller, key);
+
+        //ShowIOMenu
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowImportExportMenu);
+        loadAndPutPreference(controller, key);
+
+//        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowMediaView);
+//        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowChecklistPerspective);
+        loadAndPutPreference(controller, key);
+
+
+        //Specimen Details
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowSpecimen);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowTaxonAssociations);
+        loadAndPutPreference(controller, key);
+
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowCollectingAreasInGeneralSection);
+        loadAndPutPreference(controller, key);
+
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowLifeForm);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.DeterminationOnlyForFieldUnits);
+        loadAndPutPreference(controller, key);
+
+
+        //Name Details
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.NameDetailsView);
+        loadAndPutPreference(controller, key);
+
+        //Distribution Editor
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.DistributionEditorActivated);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
+        loadAndPutPreference(controller, key);
+
+        if (preferenceCache.get(key) != null){
+            if (!PreferencesUtil.getBooleanValue(IPreferenceKeys.DISTRIBUTION_STATUS_OVERRIDE) || !preferenceCache.get(key).isAllowOverride()){
+                //get terms for the uuids... and add them to the termManager as preferred terms
+                ITermService termService = CdmStore.getService(ITermService.class);
+                String[] uuidArray = preferenceCache.get(key).getValue().split(";");
+                List<UUID> uuidList = new ArrayList();
+                for (String uuidString:uuidArray){
+                    try {
+                        uuidList.add(UUID.fromString(uuidString));
+                    } catch (Exception e) {
+                        logger.warn("Preference loading failed", e);
+                    }
+                }
+
+                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
+                CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
+            }
+        }
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.DistributionEditorActivated);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.DisplayOfAreasInDistributionEditor);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.DisplayOfStatus);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.ShowRankInDistributionEditor);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.AreasSortedByIdInVocabulary);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), EditorPreferencePredicate.OwnDescriptionForDistributionEditor);
+        loadAndPutPreference(controller, key);
+
+        //common names
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CommonNameAreaVocabularies);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.CommonNameReferencesWithMarker);
+        loadAndPutPreference(controller, key);
+
+        //sources
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowIdInSource);
+        loadAndPutPreference(controller, key);
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
+        loadAndPutPreference(controller, key);
+
+        //multiple classifications / taxon navigator
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DisableMultiClassification);
+        loadAndPutPreference(controller, key);
+
+
+        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
+        loadAndPutPreference(controller, key);
+
+
+    }
+
+    private void loadAndPutPreference(ICdmRepository controller, PrefKey key) {
+        if (controller == null){
+            return ;
+        }
+        CdmPreference preference = controller.getPreferenceService().find(key);
+        if (preference != null){
+            put(preference);
+        }
+    }
+
+}
index d5f4c6786fca800aa9d84112f15de363adc89340..f6c18129ea2adfe91fa4e1e5dc5f497144973530 100644 (file)
@@ -55,25 +55,29 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     protected boolean overrideAreaDisplay;
     protected boolean allowOverrideStatusDisplay;
     protected boolean overrideStatusDisplay;
+
+    protected boolean allowOverrideStatus;
     Combo statusDisplaySelectionCombo;
     Combo areaDisplaySelectionCombo;
 
     protected String commandHandlerString;
     protected String commandHandlerStringStatus;
 
+
+
     protected CdmPreference distributionEditorPref;
     Composite child ;
     protected boolean isAllowOverride;
 
     @Override
     protected Control createContents(Composite parent) {
-
+        getValues();
         Composite composite = new Composite(parent, SWT.NULL);
         composite.setLayout(new GridLayout());
 
-
         if (isAllowOverride || isAdminPreference){
             Composite activateComp = createComposite(composite);
+
             final Button activateCheckButton = new Button(activateComp, SWT.CHECK);
             activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
             activateCheckButton.setSelection(isEditorActivated);
@@ -95,17 +99,23 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
                 }
             });
-
+            Button allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
             if (isAdminPreference){
-                Button allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
                 allowOverrideActivatedButton.setSelection(allowOverrideActivated);
-
                 allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
                         allowOverrideActivated = allowOverrideActivatedButton.getSelection();
                     }
                 });
+            }else{
+                allowOverrideActivatedButton.setSelection(overrideActivated);
+                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideActivated = allowOverrideActivatedButton.getSelection();
+                    }
+                });
             }
 
 
@@ -113,15 +123,9 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
             child.setVisible(isEditorActivated);
             Label separator= new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
-            GridData sepGrid = new GridData(GridData.FILL_HORIZONTAL);
-            if (isAdminPreference){
-                sepGrid.horizontalSpan = 2;
-            }
+            GridData sepGrid = createTextGridData();
 
-            GridData textGrid = new GridData(GridData.FILL_HORIZONTAL);
-            if (isAdminPreference){
-                textGrid.horizontalSpan = 2;
-            }
+            GridData textGrid = createTextGridData();
             textGrid.verticalSpan = 2;
             separator.setLayoutData(sepGrid);
 
@@ -132,17 +136,12 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             activateRankButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-                    if(!isAdminPreference){
-                        overrideRank = true;
-                    }
                     isShowRank = activateRankButton.getSelection();
                 }
             });
-
+            Button allowOverrideRankButton = createAllowOverrideButton(child);
             if (isAdminPreference){
-                Button allowOverrideRankButton = createAllowOverrideButton(child);
                 allowOverrideRankButton.setSelection(allowOverrideRank);
-
                 allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -150,8 +149,16 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }
                 });
             }else{
+                allowOverrideRankButton.setSelection(overrideRank);
+                allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideRank = allowOverrideRankButton.getSelection();
+                    }
+                });
                 if (!allowOverrideRank){
                     activateRankButton.setEnabled(false);
+                    allowOverrideRankButton.setEnabled(false);
                 }
             }
 
@@ -162,17 +169,12 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-                    if(!isAdminPreference){
-                        overrideOrderAreas = true;
-                    }
                     isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
                  }
             });
-
+            Button allowOverrideOrderAreasButton = createAllowOverrideButton(child);
             if (isAdminPreference){
-                Button allowOverrideOrderAreasButton = createAllowOverrideButton(child);
                 allowOverrideOrderAreasButton.setSelection(allowOverrideOrderAreas);
-
                 allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -180,29 +182,33 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }
                 });
             }else{
+                allowOverrideOrderAreasButton.setSelection(overrideOrderAreas);
+                allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideOrderAreas = allowOverrideOrderAreasButton.getSelection();
+                    }
+                });
                 if (!allowOverrideOrderAreas){
                     sortNamedAreaByVocabularyOrder.setEnabled(false);
+                    allowOverrideOrderAreasButton.setEnabled(false);
                 }
             }
 
             final Button ownDescription = new Button(child, SWT.CHECK);
             ownDescription.setText(Messages.ChecklistEditorGeneralPreference_own_Description);
-            ownDescription.setToolTipText(Messages.ChecklistEditorGeneralPreference_own_Description);
+            ownDescription.setToolTipText(Messages.ChecklistEditorGeneralPreference_own_DescriptionToolTip);
             ownDescription.setSelection(ownDescriptionForDistributionEditor);
             ownDescription.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-                    if(!isAdminPreference){
-                        overrideOwnDescriptionForDistributionEditor = true;
-                    }
+
                     ownDescriptionForDistributionEditor = ownDescription.getSelection();
                  }
             });
-
+            Button allowOverrideDescription = createAllowOverrideButton(child);
             if (isAdminPreference){
-                Button allowOverrideDescription = createAllowOverrideButton(child);
                 allowOverrideDescription.setSelection(allowOverrideOwnDescriptionForDistributionEditor);
-
                 allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -210,8 +216,16 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }
                 });
             }else{
+                allowOverrideDescription.setSelection(overrideOwnDescriptionForDistributionEditor);
+                allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideOwnDescriptionForDistributionEditor = allowOverrideDescription.getSelection();
+                    }
+                });
                 if (!allowOverrideOwnDescriptionForDistributionEditor){
                     ownDescription.setEnabled(false);
+                    allowOverrideDescription.setEnabled(false);
                 }
             }
 
@@ -253,11 +267,9 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 }
             }
             areaDisplaySelectionCombo.addSelectionListener(this);
-
+            Button allowOverrideOrderAreaDisplayButton = createAllowOverrideButton(child);
             if (isAdminPreference){
-                Button allowOverrideOrderAreaDisplayButton = createAllowOverrideButton(child);
                 allowOverrideOrderAreaDisplayButton.setSelection(allowOverrideAreaDisplay);
-
                 allowOverrideOrderAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -265,8 +277,16 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }
                 });
             }else{
+                allowOverrideOrderAreaDisplayButton.setSelection(overrideAreaDisplay);
+                allowOverrideOrderAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideAreaDisplay = allowOverrideOrderAreaDisplayButton.getSelection();
+                    }
+                });
                 if (!allowOverrideAreaDisplay){
                     areaDisplaySelectionCombo.setEnabled(false);
+                    allowOverrideOrderAreaDisplayButton.setEnabled(false);
                 }
             }
 
@@ -285,7 +305,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             index = 0;
             if (PreferencesUtil.displayStatusInChecklistEditor() != null){
                 TermDisplayEnum statusDisplay = TermDisplayEnum.valueOf(displayStatus);
-                for (String itemLabel : areaDisplaySelectionCombo.getItems()){
+                for (String itemLabel : statusDisplaySelectionCombo.getItems()){
                     if (itemLabel.equalsIgnoreCase(statusDisplay.getLabel())){
                         statusDisplaySelectionCombo.select(index);
                         break;
@@ -295,10 +315,9 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             }
 
             statusDisplaySelectionCombo.addSelectionListener(this);
+            Button allowOverrideOrderStatusDisplayButton = createAllowOverrideButton(child);
             if (isAdminPreference){
-                Button allowOverrideOrderStatusDisplayButton = createAllowOverrideButton(child);
                 allowOverrideOrderStatusDisplayButton.setSelection(allowOverrideStatusDisplay);
-
                 allowOverrideOrderStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
                     @Override
                     public void widgetSelected(SelectionEvent e) {
@@ -306,44 +325,53 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }
                 });
             }else{
+                allowOverrideOrderStatusDisplayButton.setSelection(overrideStatusDisplay);
+                allowOverrideOrderStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e) {
+                        overrideStatusDisplay = allowOverrideOrderStatusDisplayButton.getSelection();
+                    }
+                });
                 if (!allowOverrideStatusDisplay){
                     statusDisplaySelectionCombo.setEnabled(false);
+                    allowOverrideOrderStatusDisplayButton.setEnabled(false);
                 }
             }
 
-//            if (isAdminPreference){
-//                final CLabel labelStatus = new CLabel(child, SWT.NULL);
-//                labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
-//                labelStatus.setLayoutData(textGrid);
-//
-//                final CommandHandlerButton button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH,
-//                        commandHandlerStringStatus); //$NON-NLS-1$
-//
-//                button_openStatusWizard.setText(Messages.Distribution_status_selection);
-//
-//            }
+
+            final CLabel labelStatus = new CLabel(child, SWT.NULL);
+            labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
+            labelStatus.setLayoutData(textGrid);
+
+            final CommandHandlerButton button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH,
+                    commandHandlerStringStatus);
+
+            button_openStatusWizard.setText(Messages.Distribution_status_selection);
 
             final CLabel label = new CLabel(child, SWT.NULL);
             label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
             label.setLayoutData(textGrid);
+
             final CommandHandlerButton button_openSelectAreas = new CommandHandlerButton(child, SWT.PUSH,
                       commandHandlerString);
             button_openSelectAreas.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
 
-            if (isAdminPreference){
-                createAllowOverrideButton(child);
-            }else{
-                if (!allowOverrideAreaVoc){
-                    button_openSelectAreas.setEnabled(false);
-                }
-            }
-            // PreferencesUtil.recursiveSetEnabled(child, CdmStore.isActive());
+
+
 
             if(isEditorActivated){
                 child.setEnabled(true);
             }else{
                 child.setEnabled(false);
             }
+            if (!isAdminPreference){
+               if (!allowOverrideAreaVoc){
+                   button_openSelectAreas.setButtonEnabled(false);
+                }
+               if (!allowOverrideStatus){
+                   button_openStatusWizard.setButtonEnabled(false);
+               }
+            }
         }else{
            Label label = new Label(composite, SWT.NONE);
            label.setText("The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.");
@@ -355,15 +383,16 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
 
 
-    private Button createAllowOverrideButton(Composite activateComp) {
-        final Button allowOverrideCheckButton = new Button(activateComp, SWT.CHECK);
-        allowOverrideCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
-        return allowOverrideCheckButton;
-    }
+
+
+
+
+
 
     @Override
     public boolean performOk() {
         if (isAllowOverride){
+
             PreferencesUtil.setBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey(), isEditorActivated);
             PreferencesUtil.setBooleanValue(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE, overrideActivated);
             PreferencesUtil.setSortNamedAreasByOrderInVocabulary(isSortByVocabularyOrder);
@@ -378,6 +407,8 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             PreferencesUtil.setBooleanValue(IPreferenceKeys.OWN_DESCRIPTION_OVERRIDE, overrideOwnDescriptionForDistributionEditor);
 
 
+
+
         }
         return true;
     }
@@ -387,6 +418,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
      */
     @Override
     public void widgetSelected(SelectionEvent e) {
+
         if (e.getSource().equals(statusDisplaySelectionCombo)){
             String text = statusDisplaySelectionCombo.getText();
             for (TermDisplayEnum display: TermDisplayEnum.values()){
@@ -417,8 +449,12 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
     }
 
+
+    /**
+     * {@inheritDoc}
+     */
     @Override
-    public void init() {
+    protected void getValues() {
         isAdminPreference = false;
         setPreferenceStore(PreferencesUtil.getPreferenceStore());
         distributionEditorPref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
@@ -436,10 +472,13 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             isEditorActivated = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey());
             isAllowOverride = true;
         }
-        CdmPreference prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
 
+        CdmPreference prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
         allowOverrideAreaVoc = prefStatus != null?prefStatus.isAllowOverride():false;
 
+        prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
+        allowOverrideStatus = prefStatus != null?prefStatus.isAllowOverride():false;
+
         CdmPreference pref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor);
         if (pref != null){
             this.allowOverrideAreaDisplay = pref.isAllowOverride();
@@ -511,6 +550,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
         commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
         commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
+        overrideString = Messages.GeneralPreference_override;
 
     }
 }
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
new file mode 100755 (executable)
index 0000000..ec137b0
--- /dev/null
@@ -0,0 +1,244 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 29.05.2018
+ *
+ */
+public class GeneralPreferencePage extends CdmPreferencePage {
+
+
+    protected boolean isShowIOMenu;
+//    protected boolean isShowMediaView;
+    protected boolean isShowCheckListPerspective;
+    protected boolean isShowTaxonNodeWizard;
+    protected boolean isAllowOverrideShowIOMenu;
+    protected boolean isAllowOverrideShowMediaView;
+    protected boolean isAllowOverrideShowCheckListPerspective;
+    protected boolean isAllowOverrideShowTaxonNodeWizard;
+    protected boolean isOverrideShowIOMenu;
+    protected boolean isOverrideShowMediaView;
+    protected boolean isOverrideShowCheckListPerspective;
+    protected boolean isOverrideShowTaxonNodeWizard;
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+        final Composite composite = createComposite(parent);
+
+        final Button showIOMenuButton = new Button(composite, SWT.CHECK);
+        showIOMenuButton.setText(Messages.DatabasePreferncesPage_Show_IOMenu);
+        showIOMenuButton.setSelection(isShowIOMenu);
+        showIOMenuButton.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 isShowIOMenu = showIOMenuButton.getSelection();
+              }
+         });
+        Button allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
+            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideShowIOMenuButton.setSelection(isOverrideShowIOMenu);
+            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
+                }
+            });
+            if (!isAllowOverrideShowIOMenu){
+                showIOMenuButton.setEnabled(false);
+                allowOverrideShowIOMenuButton.setEnabled(false);
+            }
+        }
+
+//        final Button showMediaViewButton = new Button(composite, SWT.CHECK);
+//        showMediaViewButton.setText(Messages.DatabasePreferncesPage_Show_MediaView);
+//        showMediaViewButton.setSelection(isShowMediaView);
+//        showMediaViewButton.addSelectionListener(new SelectionAdapter(){
+//             @Override
+//             public void widgetSelected(SelectionEvent e) {
+//                 isShowMediaView = showIOMenuButton.getSelection();
+//              }
+//         });
+//
+//        Button allowOverrideShowMediaViewButton = createAllowOverrideButton(composite);
+//        if (isAdminPreference){
+//            allowOverrideShowMediaViewButton.setSelection(isAllowOverrideShowMediaView);
+//            allowOverrideShowMediaViewButton.addSelectionListener(new SelectionAdapter(){
+//                @Override
+//                public void widgetSelected(SelectionEvent e) {
+//                    isAllowOverrideShowMediaView = allowOverrideShowMediaViewButton.getSelection();
+//                }
+//            });
+//        }else{
+//            allowOverrideShowMediaViewButton.setSelection(isOverrideShowMediaView);
+//            allowOverrideShowMediaViewButton.addSelectionListener(new SelectionAdapter(){
+//                @Override
+//                public void widgetSelected(SelectionEvent e) {
+//                    isOverrideShowMediaView = allowOverrideShowMediaViewButton.getSelection();
+//                }
+//            });
+//            if (!isAllowOverrideShowMediaView){
+//                showMediaViewButton.setEnabled(false);
+//                allowOverrideShowMediaViewButton.setEnabled(false);
+//            }
+//        }
+
+        final Button showChecklistPerspectiveButton = new Button(composite, SWT.CHECK);
+        showChecklistPerspectiveButton.setText(Messages.DatabasePreferncesPage_Show_ChecklistPerspective);
+        showChecklistPerspectiveButton.setSelection(isShowCheckListPerspective);
+        showChecklistPerspectiveButton.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 isShowCheckListPerspective = showChecklistPerspectiveButton.getSelection();
+              }
+         });
+
+        Button allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
+            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideShowChecklistButton.setSelection(isOverrideShowCheckListPerspective);
+            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
+                }
+            });
+            if (!isAllowOverrideShowCheckListPerspective){
+                showChecklistPerspectiveButton.setEnabled(false);
+                allowOverrideShowChecklistButton.setEnabled(false);
+            }
+        }
+
+        final Button showTaxonNodeWizardButton = new Button(composite, SWT.CHECK);
+        showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
+        showTaxonNodeWizardButton.setSelection(isShowTaxonNodeWizard);
+        showTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
+             @Override
+             public void widgetSelected(SelectionEvent e) {
+                 isShowTaxonNodeWizard = showTaxonNodeWizardButton.getSelection();
+              }
+         });
+
+        Button allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
+            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideShowTaxonNodeWizardButton.setSelection(isOverrideShowTaxonNodeWizard);
+            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    isOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
+                }
+            });
+            if (!isAllowOverrideShowTaxonNodeWizard){
+                showTaxonNodeWizardButton.setEnabled(false);
+                allowOverrideShowTaxonNodeWizardButton.setEnabled(false);
+            }
+        }
+
+
+        return composite;
+    }
+
+    @Override
+    public void createControl(Composite parent){
+        super.createControl(parent);
+        getControl().setVisible(false);
+    }
+
+    @Override
+    public boolean performOk() {
+        if (isAllowOverrideShowCheckListPerspective){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
+        }
+        if (isAllowOverrideShowIOMenu){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
+        }
+//        if (isAllowOverrideShowMediaView){
+//            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowMediaView.getKey(), isShowMediaView);
+//        }
+        if (isAllowOverrideShowTaxonNodeWizard){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
+        }
+
+       return true;
+   }
+    @Override
+    protected void getValues(){
+        isAdminPreference = false;
+        overrideString = Messages.GeneralPreference_override;
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        isShowIOMenu = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowImportExportMenu.getKey());
+        CdmPreference pref = cache.get(EditorPreferencePredicate.ShowImportExportMenu.getKey());
+        if (pref != null){
+            isAllowOverrideShowIOMenu = pref.isAllowOverride();
+        }else{
+            isAllowOverrideShowIOMenu = true;
+        }
+//        isShowMediaView = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowMediaView.getKey());
+//        pref = cache.get(EditorPreferencePredicate.ShowMediaView.getKey());
+//        if (pref != null){
+//            isAllowOverrideShowMediaView = pref.isAllowOverride();
+//        }else{
+//            isAllowOverrideShowMediaView = true;
+//        }
+        isShowCheckListPerspective = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowChecklistPerspective.getKey());
+        pref = cache.get(EditorPreferencePredicate.ShowChecklistPerspective.getKey());
+        if (pref != null){
+            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
+        }else{
+            isAllowOverrideShowCheckListPerspective = true;
+        }
+        isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey());
+        pref = cache.get(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey());
+        if (pref != null){
+            isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
+        }else{
+            isAllowOverrideShowTaxonNodeWizard = true;
+        }
+    }
+
+}
index 86044b448bf41e1482bbe89faef73d043e3d32b5..a4fd4f8c57465aecbad15d83acc0d7123454e939 100644 (file)
@@ -258,15 +258,15 @@ public interface IPreferenceKeys {
     public static final String FILTER_COMMON_NAME_REFERENCES = "eu.etaxonomy.taxeditor.references.selection.filterCommonNameReferences";
     public static final String SHOW_IO_MENU = "eu.etaxonomy.taxeditor.menu.showIO";
 
-    public static final String SHOW_MEDIA = "eu.etaxonomy.taxeditor.view.showMedia";
-    public static final String SHOW_CHECKLIST_PERSPECTIVE = "eu.etaxonomy.taxeditor.perspective.showChecklist";
-    public static final String SHOW_TAXONNODE_WIZARD = "eu.etaxonomy.taxeditor.menu.showTaxonNodeWizard";
+   // public static final String SHOW_MEDIA = "eu.etaxonomy.taxeditor.view.showMedia";
+  //  public static final String SHOW_CHECKLIST_PERSPECTIVE = "eu.etaxonomy.taxeditor.perspective.showChecklist";
+  //  public static final String SHOW_TAXONNODE_WIZARD = "eu.etaxonomy.taxeditor.menu.showTaxonNodeWizard";
     public static final String IS_SEARCH_FOR_IDENTIFIER_AS_DEFAULT = "eu.etaxonomy.taxeditor.search.reference.defaultIdentifier"+ CdmStore.getActiveCdmSource().getName();
     public static final String SEARCH_FOR_IDENTIFIER_AND_TITLECACHE = "eu.etaxonomy.taxeditor.search.reference.identifierAndTitleCache" + CdmStore.getActiveCdmSource().getName();
-    public static final String DISABLE_MULTI_CLASSIFICATION = "eu.etaxonomy.taxeditor.classification.multi";
+//    public static final String DISABLE_MULTI_CLASSIFICATION = "eu.etaxonomy.taxeditor.classification.multi";
 
-    public static final String SHOW_ID_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.IdInSource";
-    public static final String SHOW_NAMESPACE_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.nameInSource";
+  //  public static final String SHOW_ID_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.IdInSource";
+   // public static final String SHOW_NAMESPACE_IN_SOURCE = "eu.etaxonomy.taxeditor.source.detail.nameInSource";
 
 
 
index 24ff6dbf5e723856b3ae984f54c021e0b2697074..2c2a670cbb7827c2f64bfa4e0a44f21dc343c7f9 100644 (file)
@@ -44,14 +44,12 @@ import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.common.CdmUtils;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.common.IDefinedTerm;
 import eu.etaxonomy.cdm.model.common.ISimpleTerm;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermBase;
-import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
@@ -69,7 +67,6 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.model.NomenclaturalCodeHelper;
 import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSource;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.TermStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
 import eu.etaxonomy.taxeditor.ui.dialog.DefaultLanguageDialog;
 
@@ -96,6 +93,8 @@ public class PreferencesUtil implements IPreferenceKeys {
 
 
 
+
+
        /**
         * <p>
         * getPreferenceStore
@@ -111,6 +110,10 @@ public class PreferencesUtil implements IPreferenceKeys {
            return name + "_"+  ((CdmRemoteSource)CdmStore.getActiveCdmSource()).toString();
        }
 
+       private static String prefOverrideKey(String name) {
+        return name + "_OVERRIDE_"+ ((CdmRemoteSource)CdmStore.getActiveCdmSource()).toString();
+    }
+
        /**
      * <p>
      * setStringValue
@@ -185,17 +188,31 @@ public class PreferencesUtil implements IPreferenceKeys {
      *
      **/
     public static String getStringValue(String name) {
-
-        String dbSpecific = prefKey(name);
-        if (getPreferenceStore().contains(dbSpecific)){
-            return getPreferenceStore().getString(dbSpecific);
-        }else{
-            return getPreferenceStore().
-                    getString(name);
+        String prefValue = getDBPreferenceValue(name);
+        if (prefValue == null){
+            String dbSpecific = prefKey(name);
+            if (getPreferenceStore().contains(dbSpecific)){
+                prefValue = getPreferenceStore().getString(dbSpecific);
+            }else{
+                prefValue = getPreferenceStore().
+                        getString(name);
+            }
         }
+        return prefValue;
 
     }
 
+    private static String getDBPreferenceValue(String name) {
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        if (cache.get(name) != null){
+            CdmPreference pref = cache.get(name);
+            if (!pref.isAllowOverride() || !getBooleanValue(prefOverrideKey(name))){
+                return pref.getValue();
+            }
+        }
+        return null;
+    }
+
     /**
      * <p>
      * setIntValue
@@ -204,13 +221,24 @@ public class PreferencesUtil implements IPreferenceKeys {
      *
      **/
     public static int getIntValue(String name) {
-        String dbSpecific = prefKey(name);
-        if (getPreferenceStore().contains(dbSpecific)){
-            return getPreferenceStore().getInt(dbSpecific);
-        }else{
-            return getPreferenceStore().
-                    getInt(name);
+        String prefValue = getDBPreferenceValue(name);
+        Integer result = null;
+        try{
+            result = Integer.parseInt(prefValue);
+        }catch(NumberFormatException e){
+            logger.debug("Preference value of " + name + " is not a number");
         }
+        if (result == null){
+            String dbSpecific = prefKey(name);
+            if (getPreferenceStore().contains(dbSpecific)){
+                result = getPreferenceStore().getInt(dbSpecific);
+            }else{
+                result =  getPreferenceStore().
+                        getInt(name);
+            }
+        }
+        return result;
+
 
     }
 
@@ -223,16 +251,20 @@ public class PreferencesUtil implements IPreferenceKeys {
      **/
     public static boolean getBooleanValue(String name) {
         if (CdmStore.isActive()){
-            String dbSpecific = prefKey(name);
-            if (getPreferenceStore().contains(dbSpecific)){
-                return getPreferenceStore().getBoolean(dbSpecific);
+            String prefValue = getDBPreferenceValue(name);
+            if (prefValue == null){
+                String dbSpecific = prefKey(name);
+                if (getPreferenceStore().contains(dbSpecific)){
+                    return getPreferenceStore().getBoolean(dbSpecific);
+                }else{
+                    return getPreferenceStore().
+                            getBoolean(name);
+                }
             }else{
-                return getPreferenceStore().
-                        getBoolean(name);
+                return Boolean.valueOf(prefValue);
             }
 
         }else{
-
             return getPreferenceStore().getBoolean(name);
         }
 
@@ -246,13 +278,23 @@ public class PreferencesUtil implements IPreferenceKeys {
      *
      **/
     public static double getDoubleValue(String name) {
-        String dbSpecific = prefKey(name);
-        if (getPreferenceStore().contains(dbSpecific)){
-            return getPreferenceStore().getDouble(dbSpecific);
-        }else{
-            return getPreferenceStore().
-                    getDouble(name);
+        String prefValue = getDBPreferenceValue(name);
+        Double result = null;
+        try{
+            result = Double.parseDouble(prefValue);
+        }catch(NumberFormatException e){
+            logger.debug("Preference value of " + name + " is not a number");
         }
+        if (result == null){
+            String dbSpecific = prefKey(name);
+            if (getPreferenceStore().contains(dbSpecific)){
+                result = getPreferenceStore().getDouble(dbSpecific);
+            }else{
+                result =  getPreferenceStore().
+                        getDouble(name);
+            }
+        }
+        return result;
 
     }
 
@@ -264,13 +306,23 @@ public class PreferencesUtil implements IPreferenceKeys {
      *
      **/
     public static float getFloatValue(String name) {
-        String dbSpecific = prefKey(name);
-        if (getPreferenceStore().contains(dbSpecific)){
-            return getPreferenceStore().getFloat(dbSpecific);
-        }else{
-            return getPreferenceStore().
-                    getFloat(name);
+        String prefValue = getDBPreferenceValue(name);
+        Float result = null;
+        try{
+            result = Float.parseFloat(prefValue);
+        }catch(NumberFormatException e){
+            logger.debug("Preference value of " + name + " is not a number");
+        }
+        if (result == null){
+            String dbSpecific = prefKey(name);
+            if (getPreferenceStore().contains(dbSpecific)){
+                result = getPreferenceStore().getFloat(dbSpecific);
+            }else{
+                result =  getPreferenceStore().
+                        getFloat(name);
+            }
         }
+        return result;
 
     }
 
@@ -282,13 +334,23 @@ public class PreferencesUtil implements IPreferenceKeys {
      *
      **/
     public static long getLongValue(String name) {
-        String dbSpecific = prefKey(name);
-        if (getPreferenceStore().contains(dbSpecific)){
-            return getPreferenceStore().getLong(dbSpecific);
-        }else{
-            return getPreferenceStore().
-                    getLong(name);
+        String prefValue = getDBPreferenceValue(name);
+        Long result = null;
+        try{
+            result = Long.parseLong(prefValue);
+        }catch(NumberFormatException e){
+            logger.debug("Preference value of " + name + " is not a number");
         }
+        if (result == null){
+            String dbSpecific = prefKey(name);
+            if (getPreferenceStore().contains(dbSpecific)){
+                result = getPreferenceStore().getLong(dbSpecific);
+            }else{
+                result =  getPreferenceStore().
+                        getLong(name);
+            }
+        }
+        return result;
     }
 
 
@@ -302,10 +364,10 @@ public class PreferencesUtil implements IPreferenceKeys {
         *            object.
         */
        public static CdmPreference setPreferredNomenclaturalCode(
-                       String preferenceKey, boolean local) {
+                       String preferenceValue, boolean local) {
            if (local){
                setStringValue(PREFERRED_NOMENCLATURAL_CODE_KEY,
-                       preferenceKey);
+                       preferenceValue);
            }
            else{
                ICdmRepository controller;
@@ -321,7 +383,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                }
                CdmPreference preference = null;
 
-               if (preferenceKey == null){
+               if (preferenceValue == null){
                        preference = controller.getPreferenceService().find(key);
                        if (preference == null){
                                return null;
@@ -332,7 +394,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                                return preference;
                        }
                } else{
-                       preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferenceKey);
+                       preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode, preferenceValue);
                        controller.getPreferenceService().set(preference);
 
                }
@@ -343,6 +405,35 @@ public class PreferencesUtil implements IPreferenceKeys {
 
        }
 
+       /**
+     * <p>
+     * setPreferredNomenclaturalCode
+     * </p>
+     *
+     * @param preferredCode
+     *            a {@link eu.etaxonomy.cdm.model.name.NomenclaturalCode}
+     *            object.
+     */
+    public static void setPreferredNomenclaturalCode(
+        CdmPreference preference) {
+
+        ICdmRepository controller;
+        controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return;
+        }
+        PrefKey key = null;
+        try{
+            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
+        }catch (Exception e){
+            System.out.println(e.getStackTrace());
+        }
+
+        controller.getPreferenceService().set(preference);
+
+    }
+
+
        public static NomenclaturalCode getPreferredNomenclaturalCode(){
            if (getBooleanValue(OVERRIDE_NOMENCLATURAL_CODE_KEY)) {
             return getPreferredNomenclaturalCode(true);
@@ -765,7 +856,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                getPreferenceStore().setDefault(createPreferenceString(OPENURL_IMAGE_MAX_WIDTH), "1000");
                getPreferenceStore().setDefault(createPreferenceString(OPENURL_IMAGE_MAX_HEIGHT), "1000");
                //Distribution Editor:
-               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.DistributionEditorActivated.getKey()), true);
+               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.DistributionEditorActivated.getKey()), Boolean.valueOf(EditorPreferencePredicate.DistributionEditorActivated.getDefaultValue().toString()));
                getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()), EditorPreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue().toString());
                getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.DisplayOfStatus.getKey()), EditorPreferencePredicate.DisplayOfStatus.getDefaultValue().toString());
 
@@ -796,10 +887,10 @@ public class PreferencesUtil implements IPreferenceKeys {
 
                getPreferenceStore().setDefault(createPreferenceString(FILTER_COMMON_NAME_REFERENCES), false);
                getPreferenceStore().setDefault(createPreferenceString(SHOW_SPECIMEN), true);
-               getPreferenceStore().setDefault(createPreferenceString(SHOW_TAXONNODE_WIZARD), true);
-               getPreferenceStore().setDefault(createPreferenceString(SHOW_NAMESPACE_IN_SOURCE), true);
-               getPreferenceStore().setDefault(createPreferenceString(SHOW_ID_IN_SOURCE), true);
-               getPreferenceStore().setDefault(createPreferenceString(DISABLE_MULTI_CLASSIFICATION), false);
+               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.ShowTaxonNodeWizard.getKey()), Boolean.valueOf(EditorPreferencePredicate.ShowTaxonNodeWizard.getDefaultValue().toString()));
+               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.ShowNamespaceInSource.getKey()), Boolean.valueOf(EditorPreferencePredicate.ShowNamespaceInSource.getDefaultValue().toString()));
+               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.ShowIdInSource.getKey()), Boolean.valueOf(EditorPreferencePredicate.ShowIdInSource.getDefaultValue().toString()));
+               getPreferenceStore().setDefault(createPreferenceString(EditorPreferencePredicate.DisableMultiClassification.getKey()), Boolean.valueOf(EditorPreferencePredicate.DisableMultiClassification.getDefaultValue().toString()));
                getPreferenceStore().setDefault(createPreferenceString(DISABLE_SEC), false);
                getPreferenceStore().setDefault(createPreferenceString(SHOW_SEC_DETAILS), true);
        }
@@ -1307,11 +1398,11 @@ public class PreferencesUtil implements IPreferenceKeys {
      */
     public static NameDetailsConfigurator getPreferredNameDetailsConfiguration( boolean local) {
         NameDetailsConfigurator config = new NameDetailsConfigurator(true);
-
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
         CdmPreference preference = null;
 
         if (!local) {
-            preference = getPreferenceFromDB(PreferencePredicate.NameDetailsView);
+            preference = cache.get(PreferencePredicate.NameDetailsView.getKey());
             if (preference == null){
                 return null;
             }
@@ -1557,21 +1648,10 @@ public class PreferencesUtil implements IPreferenceKeys {
 
 
     public static void updateAbcdImportConfigurationPreference() {
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        CdmPreference pref = cache.get(EditorPreferencePredicate.AbcdImportConfig.getKey());
 
-        Abcd206ImportConfigurator config = Abcd206ImportConfigurator.NewInstance(null,null);
-        ICdmRepository controller;
-        controller = CdmStore.getCurrentApplicationConfiguration();
-        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AbcdImportConfig);
-        CdmPreference preference = null;
-        if (controller == null){
-            return ;
-        }
-        preference = controller.getPreferenceService().find(key);
-        boolean allowOverride = true;
-        if (preference != null && !preference.isAllowOverride()){
-            allowOverride = false;
-        }
-        if (!getBooleanValue(IPreferenceKeys.ABCD_IMPORT_OVERRIDE) || !allowOverride){
+        if (!getBooleanValue(IPreferenceKeys.ABCD_IMPORT_OVERRIDE) || !pref.isAllowOverride()){
             resetToDBPreferenceAbcdCOnfigurator();
 
         }
@@ -1834,73 +1914,74 @@ public static boolean getFilterCommonNameReferences(){
  */
 public static void updateDBPreferences() {
     CdmPreference preference = null;
-    IPreferenceStore prefStore = getPreferenceStore();
+    CdmPreferenceCache cache = CdmPreferenceCache.instance();
+    cache.getAllTaxEditorDBPreferences();
 
     //ABCD Configurator
 
     updateAbcdImportConfigurationPreference();
 
-    preference = getPreferenceFromDB(PreferencePredicate.ShowImportExportMenu);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_IO_MENU) ||  !preference.isAllowOverride()){
-           setBooleanValue(SHOW_IO_MENU, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_IO_MENU, true);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.ShowMediaView);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_MEDIA) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_MEDIA, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_MEDIA, true);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.ShowChecklistPerspective);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_CHECKLIST_PERSPECTIVE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_CHECKLIST_PERSPECTIVE, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_CHECKLIST_PERSPECTIVE, false);
-    }
-
-    //Specimen Details
-    preference = getPreferenceFromDB(PreferencePredicate.ShowSpecimen);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_SPECIMEN) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_SPECIMEN, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_SPECIMEN, true);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_TAXON_ASSOCIATIONS_OVERRIDE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_TAXON_ASSOCIATIONS, Boolean.valueOf(preference.getValue()));
-        }
-    }
-    preference = getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_OVERRIDE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION, Boolean.valueOf(preference.getValue()));
-        }
-    }
-    preference = getPreferenceFromDB(PreferencePredicate.ShowLifeForm);
-    if (preference != null){
-        if(!getBooleanValue(SHOW_LIFE_FORM_OVERRIDE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_LIFE_FORM, Boolean.valueOf(preference.getValue()));
-        }
-    }
-    preference = getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits);
-    if (preference != null){
-        if(!getBooleanValue(DETERMINATION_ONLY_FOR_FIELD_UNITS_OVERRIDE) ||  !preference.isAllowOverride()){
-            setBooleanValue(DETERMINATION_ONLY_FOR_FIELD_UNITS, Boolean.valueOf(preference.getValue()));
-        }
-    }
+//    preference = cache.get(EditorPreferencePredicate.ShowImportExportMenu.getKey());
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_IO_MENU) ||  !preference.isAllowOverride()){
+//           setBooleanValue(SHOW_IO_MENU, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_IO_MENU, true);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowMediaView);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_MEDIA) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_MEDIA, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_MEDIA, true);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowChecklistPerspective);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_CHECKLIST_PERSPECTIVE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_CHECKLIST_PERSPECTIVE, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_CHECKLIST_PERSPECTIVE, false);
+//    }
+//
+//    //Specimen Details
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowSpecimen);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_SPECIMEN) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_SPECIMEN, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_SPECIMEN, true);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowTaxonAssociations);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_TAXON_ASSOCIATIONS_OVERRIDE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_TAXON_ASSOCIATIONS, Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowCollectingAreasInGeneralSection);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_OVERRIDE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION, Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowLifeForm);
+//    if (preference != null){
+//        if(!getBooleanValue(SHOW_LIFE_FORM_OVERRIDE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_LIFE_FORM, Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//    preference = getPreferenceFromDB(PreferencePredicate.DeterminationOnlyForFieldUnits);
+//    if (preference != null){
+//        if(!getBooleanValue(DETERMINATION_ONLY_FOR_FIELD_UNITS_OVERRIDE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(DETERMINATION_ONLY_FOR_FIELD_UNITS, Boolean.valueOf(preference.getValue()));
+//        }
+//    }
 
 
     //Name Details
@@ -1912,150 +1993,150 @@ public static void updateDBPreferences() {
     }
 
     //Distribution Editor
-    preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_VOCABULARIES_OVERRIDE) ||  !preference.isAllowOverride()){
-            setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), preference.getValue());
-            setBooleanValue(DISTRIBUTION_VOCABULARIES_ALLOW_OVERRIDE, preference.isAllowOverride());
-        }
-    }else{
-        setBooleanValue(DISTRIBUTION_VOCABULARIES_ALLOW_OVERRIDE,true);
-        setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), "");
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
-    if (preference != null){
-        boolean test = getBooleanValue(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE);
-        if (!getBooleanValue(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE) || !preference.isAllowOverride()){
-            setBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey(), Boolean.valueOf(preference.getValue()));
-        }else{
-            test = getBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey());
-            System.err.println(test);
-        }
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_STATUS_OVERRIDE) || !preference.isAllowOverride()){
-            //get terms for the uuids... and add them to the termManager as preferred terms
-            ITermService termService = CdmStore.getService(ITermService.class);
-            String[] uuidArray = preference.getValue().split(";");
-            List<UUID> uuidList = new ArrayList();
-            for (String uuidString:uuidArray){
-                try {
-                    uuidList.add(UUID.fromString(uuidString));
-                } catch (Exception e) {
-                    logger.warn("Preference loading failed", e);
-                }
-            }
-
-            List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-            CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_DESCRIPTION_OVERRIDE) || !preference.isAllowOverride()){
-            setBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey(), Boolean.valueOf(preference.getValue()));
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_DISPLAY_AREA_OVERRIDE) || !preference.isAllowOverride()){
-            setStringValue(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor.getKey(), preference.getValue());
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.DisplayOfStatus);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_DISPLAY_STATUS_OVERRIDE) || !preference.isAllowOverride()){
-            setStringValue(EditorPreferencePredicate.DisplayOfStatus.getKey(), preference.getValue());
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.ShowRankInDistributionEditor);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_SHOW_RANK_OVERRIDE) || !preference.isAllowOverride()){
-            setBooleanValue(EditorPreferencePredicate.ShowRankInDistributionEditor.getKey(), Boolean.valueOf(preference.getValue()));
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.AreasSortedByIdInVocabulary);
-    if (preference != null){
-        if (!getBooleanValue(DISTRIBUTION_AREAS_SORTED_BY_IDINVOC_OVERRIDE) || !preference.isAllowOverride()){
-            setBooleanValue(EditorPreferencePredicate.AreasSortedByIdInVocabulary.getKey(), Boolean.valueOf(preference.getValue()));
-        }
-    }
-
-    preference = getPreferenceFromDB(EditorPreferencePredicate.OwnDescriptionForDistributionEditor);
-    if (preference != null){
-        if (!getBooleanValue(OWN_DESCRIPTION_OVERRIDE) || !preference.isAllowOverride()){
-            setBooleanValue(EditorPreferencePredicate.OwnDescriptionForDistributionEditor.getKey(), Boolean.valueOf(preference.getValue()));
-        }
-    }
-
-    //common names
-    preference = getPreferenceFromDB(PreferencePredicate.CommonNameAreaVocabularies);
-    if (preference != null){
-        if (!getBooleanValue(COMMON_NAME_AREA_VOCABULARIES) ||  !preference.isAllowOverride()){
-            setStringValue(COMMON_NAME_AREA_VOCABULARIES, preference.getValue());
-            setBooleanValue(COMMON_NAME_AREA_VOCABULARIES_ALLOW_OVERRIDE, preference.isAllowOverride());
-        }
-    }else{
-        setStringValue(COMMON_NAME_AREA_VOCABULARIES, "");
-        setBooleanValue(COMMON_NAME_AREA_VOCABULARIES_ALLOW_OVERRIDE, true);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
-    if (preference != null){
-        if (!getBooleanValue(FILTER_COMMON_NAME_REFERENCES) ||  !preference.isAllowOverride()){
-            setBooleanValue(FILTER_COMMON_NAME_REFERENCES, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(FILTER_COMMON_NAME_REFERENCES, false);
-    }
+//    preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_VOCABULARIES_OVERRIDE) ||  !preference.isAllowOverride()){
+//            setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), preference.getValue());
+//            setBooleanValue(DISTRIBUTION_VOCABULARIES_ALLOW_OVERRIDE, preference.isAllowOverride());
+//        }
+//    }else{
+//        setBooleanValue(DISTRIBUTION_VOCABULARIES_ALLOW_OVERRIDE,true);
+//        setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), "");
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
+//    if (preference != null){
+//        boolean test = getBooleanValue(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE);
+//        if (!getBooleanValue(DISTRIBUTION_AREA_PREFRENCES_ACTIVE_OVERRIDE) || !preference.isAllowOverride()){
+//            setBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey(), Boolean.valueOf(preference.getValue()));
+//        }else{
+//            test = getBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey());
+//            System.err.println(test);
+//        }
+//    }
+
+//    preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_STATUS_OVERRIDE) || !preference.isAllowOverride()){
+//            //get terms for the uuids... and add them to the termManager as preferred terms
+//            ITermService termService = CdmStore.getService(ITermService.class);
+//            String[] uuidArray = preference.getValue().split(";");
+//            List<UUID> uuidList = new ArrayList();
+//            for (String uuidString:uuidArray){
+//                try {
+//                    uuidList.add(UUID.fromString(uuidString));
+//                } catch (Exception e) {
+//                    logger.warn("Preference loading failed", e);
+//                }
+//            }
+//
+//            List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
+//            CdmStore.getTermManager().setPreferredTerms(definedTermBases, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_DESCRIPTION_OVERRIDE) || !preference.isAllowOverride()){
+//            setBooleanValue(EditorPreferencePredicate.DistributionEditorActivated.getKey(), Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_DISPLAY_AREA_OVERRIDE) || !preference.isAllowOverride()){
+//            setStringValue(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor.getKey(), preference.getValue());
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.DisplayOfStatus);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_DISPLAY_STATUS_OVERRIDE) || !preference.isAllowOverride()){
+//            setStringValue(EditorPreferencePredicate.DisplayOfStatus.getKey(), preference.getValue());
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.ShowRankInDistributionEditor);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_SHOW_RANK_OVERRIDE) || !preference.isAllowOverride()){
+//            setBooleanValue(EditorPreferencePredicate.ShowRankInDistributionEditor.getKey(), Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.AreasSortedByIdInVocabulary);
+//    if (preference != null){
+//        if (!getBooleanValue(DISTRIBUTION_AREAS_SORTED_BY_IDINVOC_OVERRIDE) || !preference.isAllowOverride()){
+//            setBooleanValue(EditorPreferencePredicate.AreasSortedByIdInVocabulary.getKey(), Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//
+//    preference = getPreferenceFromDB(EditorPreferencePredicate.OwnDescriptionForDistributionEditor);
+//    if (preference != null){
+//        if (!getBooleanValue(OWN_DESCRIPTION_OVERRIDE) || !preference.isAllowOverride()){
+//            setBooleanValue(EditorPreferencePredicate.OwnDescriptionForDistributionEditor.getKey(), Boolean.valueOf(preference.getValue()));
+//        }
+//    }
+//
+//    //common names
+//    preference = getPreferenceFromDB(PreferencePredicate.CommonNameAreaVocabularies);
+//    if (preference != null){
+//        if (!getBooleanValue(COMMON_NAME_AREA_VOCABULARIES) ||  !preference.isAllowOverride()){
+//            setStringValue(COMMON_NAME_AREA_VOCABULARIES, preference.getValue());
+//            setBooleanValue(COMMON_NAME_AREA_VOCABULARIES_ALLOW_OVERRIDE, preference.isAllowOverride());
+//        }
+//    }else{
+//        setStringValue(COMMON_NAME_AREA_VOCABULARIES, "");
+//        setBooleanValue(COMMON_NAME_AREA_VOCABULARIES_ALLOW_OVERRIDE, true);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
+//    if (preference != null){
+//        if (!getBooleanValue(FILTER_COMMON_NAME_REFERENCES) ||  !preference.isAllowOverride()){
+//            setBooleanValue(FILTER_COMMON_NAME_REFERENCES, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(FILTER_COMMON_NAME_REFERENCES, false);
+//    }
 
 
 
 
     //sources
-    preference = getPreferenceFromDB(PreferencePredicate.ShowIdInSource);
-    if (preference != null){
-        if (!getBooleanValue(SHOW_ID_IN_SOURCE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_ID_IN_SOURCE, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_ID_IN_SOURCE, true);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.ShowNamespaceInSource);
-    if (preference != null){
-        if (!getBooleanValue(SHOW_NAMESPACE_IN_SOURCE) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_NAMESPACE_IN_SOURCE, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_NAMESPACE_IN_SOURCE, true);
-    }
-    //multiple classifications / taxon navigator
-    preference = getPreferenceFromDB(PreferencePredicate.DisableMultiClassification);
-    if (preference != null){
-        if (!getBooleanValue(DISABLE_MULTI_CLASSIFICATION) ||  !preference.isAllowOverride()){
-            setBooleanValue(DISABLE_MULTI_CLASSIFICATION, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(DISABLE_MULTI_CLASSIFICATION, false);
-    }
-
-    preference = getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);
-    if (preference != null){
-        if (!getBooleanValue(SHOW_TAXONNODE_WIZARD) ||  !preference.isAllowOverride()){
-            setBooleanValue(SHOW_TAXONNODE_WIZARD, Boolean.valueOf(preference.getValue()));
-        }
-    }else{
-        setBooleanValue(SHOW_TAXONNODE_WIZARD, true);
-    }
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowIdInSource);
+//    if (preference != null){
+//        if (!getBooleanValue(SHOW_ID_IN_SOURCE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_ID_IN_SOURCE, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_ID_IN_SOURCE, true);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowNamespaceInSource);
+//    if (preference != null){
+//        if (!getBooleanValue(SHOW_NAMESPACE_IN_SOURCE) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_NAMESPACE_IN_SOURCE, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_NAMESPACE_IN_SOURCE, true);
+//    }
+//    //multiple classifications / taxon navigator
+//    preference = getPreferenceFromDB(PreferencePredicate.DisableMultiClassification);
+//    if (preference != null){
+//        if (!getBooleanValue(DISABLE_MULTI_CLASSIFICATION) ||  !preference.isAllowOverride()){
+//            setBooleanValue(DISABLE_MULTI_CLASSIFICATION, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(DISABLE_MULTI_CLASSIFICATION, false);
+//    }
+//
+//    preference = getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);
+//    if (preference != null){
+//        if (!getBooleanValue(SHOW_TAXONNODE_WIZARD) ||  !preference.isAllowOverride()){
+//            setBooleanValue(SHOW_TAXONNODE_WIZARD, Boolean.valueOf(preference.getValue()));
+//        }
+//    }else{
+//        setBooleanValue(SHOW_TAXONNODE_WIZARD, true);
+//    }
 
 }
 
index 0daf740f43951cd21bcfd267bb99b4c913bdeccd..323aa8153c991be48235380b77cd57f5e00558d4 100644 (file)
@@ -8,18 +8,18 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
-import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
-import eu.etaxonomy.cdm.api.application.ICdmRepository;
-import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
-import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
-import eu.etaxonomy.taxeditor.preference.menu.FieldEditorPreferencePageE4;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -27,20 +27,27 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @date 13.02.2014
  *
  */
-public class SpecimenOrObservationPreferences extends FieldEditorPreferencePageE4 {
+public class SpecimenOrObservationPreferences extends CdmPreferencePage {
 
     private static final String LOCAL_SETTINGS_NOT_ALLOWED = "The CDM settings don't allow to set the preferences for the display of specimen and obeservations locally. If you need to make local settings, please ask an administrator.";
     private static final String DESCRIPTION = "Set the preferences for the display of specimen and observations.";
 
-    public SpecimenOrObservationPreferences(){
-        super();
-
-        if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_SPECIMEN_ALLOW_OVERRIDE)){
-            setDescription(DESCRIPTION);
-        }else{
-            setDescription(LOCAL_SETTINGS_NOT_ALLOWED);
-        }
-    }
+    protected boolean isShowSpecimenRelatedIssues;
+    protected boolean allowOverrideShowSpecimenRelatedIssues;
+    protected boolean overrideShowSpecimenRelatedIssues;
+    protected boolean isShowCollectingAreaInGeneralSection;
+    protected boolean allowOverrideShowCollectingAreaInGeneralSection;
+    protected boolean overrideShowCollectionAreaInGeneralSection;
+    protected boolean isDeterminationOnlyForFieldUnits;
+    protected boolean allowOverrideDeterminationOnlyForFieldUnits;
+    protected boolean overrideDeterminationOnlyForFieldUnits;
+    protected boolean isShowTaxonAssociation;
+    protected boolean allowOverrideShowTaxonAssociation;
+    protected boolean overrideShowTaxonAssociation;
+    protected boolean isShowLifeForm;
+    protected boolean allowOverrideShowLifeForm;
+    protected boolean overrideShowLifeForm;
+    Composite composite;
 
 
     @Override
@@ -50,60 +57,269 @@ public class SpecimenOrObservationPreferences extends FieldEditorPreferencePageE
         if(!CdmStore.isActive()){
             return;
         }
-        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
-        if (controller != null){
-            IPreferenceService service = controller.getPreferenceService();
-            PrefKey keyTaxonAssociation = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonAssociations);
-            CdmPreference prefTaxonAssociation = service.find(keyTaxonAssociation);
-            PreferencesUtil.setBooleanValue(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS_ALLOW_OVERRIDE, prefTaxonAssociation == null? true : prefTaxonAssociation.isAllowOverride());
-
-            PrefKey keyDeterminationFieldUnit = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
-            CdmPreference prefDeterminationFieldUnit = service.find(keyDeterminationFieldUnit);
-            PreferencesUtil.setBooleanValue(IPreferenceKeys.DETERMINATIONS_ONLY_FOR_FIELDUNITS_ALLOW_OVERRIDE, prefDeterminationFieldUnit == null? true : prefDeterminationFieldUnit.isAllowOverride());
-
-            PrefKey keyCollectingAreas = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
-            CdmPreference prefCollectingAreas = service.find(keyCollectingAreas);
-            PreferencesUtil.setBooleanValue(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION_ALLOW_OVERRIDE, prefCollectingAreas == null? true : prefCollectingAreas.isAllowOverride());
-
-            PrefKey keyShowLifeForm = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowLifeForm);
-            CdmPreference prefShowLifeForm = service.find(keyShowLifeForm);
-            PreferencesUtil.setBooleanValue(IPreferenceKeys.SHOW_LIFE_FORM_ALLOW_OVERRIDE, prefShowLifeForm == null? true : prefShowLifeForm.isAllowOverride());
-         }
-        if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS_OVERRIDE)) {
-            setDescription(DESCRIPTION);
+
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+
+        boolean isEditingAllowed = true;
+        if(!isAdminPreference){
+            CdmPreferenceCache cache = CdmPreferenceCache.instance();
+            CdmPreference showSpecimenPref = cache.get(EditorPreferencePredicate.ShowSpecimen.getKey());
+            if (showSpecimenPref != null){
+                if (!showSpecimenPref.isAllowOverride() ){
+                    Label label = new Label(parent, SWT.NONE);
+                    label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
+                    isEditingAllowed = false;
+
+                }
+            }
+        }
+
+        Label label = new Label(parent, SWT.NONE);
+        label.setText(DESCRIPTION);
+        Composite titleComp = createComposite(parent);
+
+        final Button showSpecimenButton = new Button(titleComp, 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);
+                 }
+              }
+         });
+        Button allowOverrideIsShowSpecimenRelatedIssuesButton = createAllowOverrideButton(titleComp);
+        if (isAdminPreference){
+            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
+            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(overrideShowSpecimenRelatedIssues);
+            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    overrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
+                }
+            });
+            if (!allowOverrideShowSpecimenRelatedIssues){
+                showSpecimenButton.setEnabled(false);
+                allowOverrideIsShowSpecimenRelatedIssuesButton.setEnabled(false);
+            }
+        }
+        composite = createComposite(parent);
+        composite.setEnabled(isShowSpecimenRelatedIssues);
+        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();
+
+              }
+         });
+        Button allowOverrideShowCollectingAreaButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
+            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideShowCollectingAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideShowCollectingAreaButton.setSelection(overrideShowCollectionAreaInGeneralSection);
+            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    overrideShowCollectionAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
+                }
+            });
+            if (!allowOverrideShowCollectingAreaInGeneralSection){
+                showCollectingAreaInGeneralSectionButton.setEnabled(false);
+                allowOverrideShowCollectingAreaButton.setEnabled(false);
+            }
+        }
+
+        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();
+             }
+         });
+
+        Button allowOverridesDeterminationOnlyForFieldUnitsButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
+            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
+                }
+            });
+        }else{
+            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(overrideDeterminationOnlyForFieldUnits);
+            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    overrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
+                }
+            });
+            if (!allowOverrideDeterminationOnlyForFieldUnits){
+                determinationOnlyForFieldUnitsButton.setEnabled(false);
+                allowOverridesDeterminationOnlyForFieldUnitsButton.setEnabled(false);
+            }
+        }
+
+        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();
+
+              }
+         });
+        Button allowOverrideIsShowTaxonAssociationButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
+            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
+                }
+            });
         }else{
-            setDescription(LOCAL_SETTINGS_NOT_ALLOWED);
+            allowOverrideIsShowTaxonAssociationButton.setSelection(overrideShowTaxonAssociation);
+            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    overrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
+                }
+            });
+            if (!allowOverrideShowTaxonAssociation){
+                showTaxonAssociationButton.setEnabled(false);
+                allowOverrideIsShowTaxonAssociationButton.setEnabled(false);
+            }
+        }
+
+        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();
+
+              }
+         });
+
+        Button allowOverrideShowLifeFormButton = createAllowOverrideButton(composite);
+        if (isAdminPreference){
+            allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
+            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    allowOverrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
+                }
+            });
+        }else{
+            allowOverrideShowLifeFormButton.setSelection(overrideShowLifeForm);
+            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    overrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
+                }
+            });
+            if (!allowOverrideShowLifeForm){
+                showLifeFormButton.setEnabled(false);
+                allowOverrideShowLifeFormButton.setEnabled(false);
+            }
+        }
 
+        if (!isEditingAllowed){
+            PreferencesUtil.recursiveSetEnabled(composite, false);
         }
+        return composite;
     }
 
+
+    /**
+     * {@inheritDoc}
+     */
     @Override
-    protected void createFieldEditors() {
-        if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_SPECIMEN_ALLOW_OVERRIDE)) {
-            addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.DETERMINATION_ONLY_FOR_FIELD_UNITS),
-                    "Taxon determination only on FieldUnit level",
-                    getFieldEditorParent()));
-            addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_COLLECTING_AREAS_IN_GENERAL_SECTION),
-                    "Show \"Collecting Areas\" in \"General\" section of details view",
-                    getFieldEditorParent()));
-            addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_TAXON_ASSOCIATIONS),
-                    "Show taxon associations of a specimen in the details view",
-                    getFieldEditorParent()));
-            addField(new BooleanFieldEditor(PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_LIFE_FORM),
-                    "Show life form of a specimen in the details view",
-                    getFieldEditorParent()));
-            Label label = new Label(getFieldEditorParent(), SWT.NONE);
-
-            label.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 1, 1));
-
-            addField(new BooleanFieldEditor(
-                    PreferencesUtil.createPreferenceString(IPreferenceKeys.SHOW_SPECIMEN_OVERRIDE),
-                    "Use local specimen preferences",
-                    getFieldEditorParent()));
+    protected void getValues() {
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
 
+        isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowSpecimen.getKey());
+        allowOverrideShowSpecimenRelatedIssues = cache.get(EditorPreferencePredicate.ShowSpecimen.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowSpecimen.getKey()).isAllowOverride():true;
 
-        }
+        isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey());
+        allowOverrideShowCollectingAreaInGeneralSection = cache.get(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()).isAllowOverride():true;
+
+        isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey());
+        allowOverrideDeterminationOnlyForFieldUnits = cache.get(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey())!= null ? cache.get(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey()).isAllowOverride():true;
+
+        isShowTaxonAssociation = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowTaxonAssociations.getKey());
+        allowOverrideShowTaxonAssociation = cache.get(EditorPreferencePredicate.ShowTaxonAssociations.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowTaxonAssociations.getKey()).isAllowOverride():true;
+
+        isShowLifeForm = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowLifeForm.getKey());
+        allowOverrideShowLifeForm = cache.get(EditorPreferencePredicate.ShowLifeForm.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowLifeForm.getKey()).isAllowOverride():true;
+        overrideString = Messages.GeneralPreference_override;
+
+    }
 
+    @Override
+    public boolean performOk() {
+        if (allowOverrideShowSpecimenRelatedIssues){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues);
+        }
+        if (allowOverrideShowCollectingAreaInGeneralSection){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection);
+        }
+        if (allowOverrideDeterminationOnlyForFieldUnits){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits);
+        }
+        if (allowOverrideShowTaxonAssociation){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation);
+        }
+        if (allowOverrideShowLifeForm){
+            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm);
+        }
+        return true;
     }
 
 
index e49003f41124536346bbe658ec0891104be47d3e..852138447c72d2bc693308150ea181cdd929966f 100644 (file)
@@ -13,8 +13,10 @@ import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
+import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.IE4PreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
@@ -28,6 +30,7 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
     private boolean isApply;
 
     protected boolean isAdminPreference = false;
+    protected String overrideString = Messages.GeneralPreference_allowOverride;
 
     public CdmPreferencePage() {
         this(null, null);
@@ -70,15 +73,35 @@ public abstract class CdmPreferencePage extends PreferencePage implements IE4Pre
     protected Composite createComposite(Composite composite) {
         Composite activateComp = new Composite(composite, SWT.NULL);
         GridLayout layout = new GridLayout();
-        if (isAdminPreference){
-            layout.numColumns = 2;
-        }
+        layout.numColumns = 2;
         activateComp.setLayout(layout);
         GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
+
         activateComp.setLayoutData(gridData);
         return activateComp;
     }
 
 
+    protected GridData createTextGridData() {
+        GridData sepGrid = new GridData(GridData.FILL_HORIZONTAL);
+        sepGrid.horizontalSpan = 2;
+        return sepGrid;
+    }
+
+    protected void getValues(){
+
+    }
+
+
+    protected Button createAllowOverrideButton(Composite activateComp) {
+        final Button allowOverrideCheckButton = new Button(activateComp, SWT.CHECK);
+        allowOverrideCheckButton.setText(overrideString);
+        GridData grid = new GridData();
+        grid.horizontalAlignment = SWT.END;
+        allowOverrideCheckButton.setLayoutData(grid);
+        return allowOverrideCheckButton;
+    }
+
+
 
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAdminTermSelectionWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AbstractAdminTermSelectionWizardPage.java
new file mode 100755 (executable)
index 0000000..2fc4b29
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+* Copyright (C) 2018 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.preference.wizard;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+
+/**
+ * @author k.luther
+ * @since 22.11.2018
+ *
+ */
+public abstract class AbstractAdminTermSelectionWizardPage extends AbstractTermSelectionWizardPage
+        implements ICdmEntitySessionEnabled {
+
+    /**
+     * @param pageName
+     * @param type
+     */
+    protected AbstractAdminTermSelectionWizardPage(String pageName, TermType type, CdmPreference pref) {
+        super(pageName, type);
+        this.pref = pref;
+        this.allowOverride = pref.isAllowOverride();
+    }
+
+    CdmPreference pref;
+    boolean allowOverride;
+
+    /**
+     * {@inheritDoc}
+     */
+
+    protected void createAllowOverrideButton(Composite parent) {
+        final Button activateCheckButton = new Button(parent, SWT.CHECK);
+        activateCheckButton.setText("Allow Override");
+        activateCheckButton.setSelection(pref.isAllowOverride());
+        activateCheckButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    pref.setAllowOverride(activateCheckButton.getSelection());
+                }
+            });
+    }
+
+    public CdmPreference getPreference(){
+        return pref;
+    }
+
+
+
+}
index be271b1c002552f5458f0ff414b376831317e385..68e86ee87fa1eed22c13590c4048098ba2dc87cb 100755 (executable)
@@ -127,12 +127,8 @@ public abstract class AbstractTermSelectionWizardPage extends WizardPage {
             getVocabularies().clear();
         }
         List<TermVocabularyDto> vocs = new ArrayList<>();
-        if (localPref){
-            vocs = getVocabulariesFromPreference();
+        vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
 
-        }else{
-            vocs = CdmStore.getService(IVocabularyService.class).findVocabularyDtoByTermType(type);
-        }
         setVocabularies(vocs);
     }
 
index 1ce27b391bfaec28caffec055f5256c547fd0347..473c7eda13703d7651c25fa57522bc14de5ffff7 100755 (executable)
@@ -17,10 +17,6 @@ import java.util.Set;
 import java.util.UUID;
 
 import org.apache.commons.lang.StringUtils;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.api.service.IVocabularyService;
@@ -42,16 +38,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 04.06.2018
  *
  */
-public class AvailableAreaVocabulariesPage  extends AbstractTermSelectionWizardPage implements ICdmEntitySessionEnabled{
+public class AvailableAreaVocabulariesPage  extends AbstractAdminTermSelectionWizardPage implements ICdmEntitySessionEnabled{
 
-    CdmPreference pref;
     String featureTitle;
-    boolean allowOverride;
+
 
     public AvailableAreaVocabulariesPage(String pageName, boolean localPref, CdmPreference pref, String featureTitle) {
-        super(pageName, TermType.NamedArea);
+        super(pageName, TermType.NamedArea, pref);
         this.localPref = localPref;
-        this.pref = pref;
         this.featureTitle = featureTitle;
 
     }
@@ -63,21 +57,15 @@ public class AvailableAreaVocabulariesPage  extends AbstractTermSelectionWizardP
         setDescription(String.format(Messages.AvailableAreaVocabulariesPage_PAGE_DESCRIPTION, featureTitle));
         if (!localPref){
 
-            final Button activateCheckButton = new Button(parent, SWT.CHECK);
-            activateCheckButton.setText("Allow Override");
-            activateCheckButton.setSelection(pref.isAllowOverride());
-            activateCheckButton.addSelectionListener(new SelectionAdapter(){
-                    @Override
-                    public void widgetSelected(SelectionEvent e) {
-                        pref.setAllowOverride(activateCheckButton.getSelection());
-                    }
-                });
+            createAllowOverrideButton(parent);
         }
         super.createControl(parent);
 
         treeComposite.getViewer().setContentProvider(new RootElementsOnlyTreeContentProvider());
     }
 
+
+
     @Override
     protected String getCheckedValuesFromPreferences() {
         String vocString = null;
@@ -89,6 +77,10 @@ public class AvailableAreaVocabulariesPage  extends AbstractTermSelectionWizardP
         return vocString;
     }
 
+    protected CdmPreference getPreferences() {
+        return pref;
+    }
+
     @Override
     public ICdmEntitySession getCdmEntitySession() {
         return null;
index 8c631dbd83058ef4525c3cffd7a9af27cee4a8f4..dd5bf62aa00fb6950afec9e927e9a9aba2af8f01 100755 (executable)
@@ -43,7 +43,7 @@ public class AvailableDistributionStatusAdminWizard extends Wizard implements IC
         setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
         // TODO if preferenceStore has elements checked load elements in wizard
         pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref);
+        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref, false);
     }
 
     @Override
@@ -84,6 +84,7 @@ public class AvailableDistributionStatusAdminWizard extends Wizard implements IC
     @Override
     public boolean performFinish() {
         Object[] checkedElements = aPage.getViewer().getCheckedElements();
+        pref = aPage.getPreference();
 
         List<UUID> listUIIDChecked = new ArrayList<>();
         List<DefinedTermBase> preferredTerms = new ArrayList<>();
@@ -95,9 +96,9 @@ public class AvailableDistributionStatusAdminWizard extends Wizard implements IC
             }
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
-        pref.setAllowOverride(false);
-        PreferencesUtil.setPreferenceToDB(pref);
+        CdmPreference savePref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
+        savePref.setAllowOverride(pref.isAllowOverride());
+        PreferencesUtil.setPreferenceToDB(savePref);
         Collection<DefinedTermBase> terms = new ArrayList<>();
         aPage.getVocabularies().get(0).getTerms()
         .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
index aabf22c0f99bd73dcd93b1953dbaae0464c10dc5..8d23e18ca6ed58167ed11fdf3a443fa5a2e353ae 100755 (executable)
@@ -15,41 +15,55 @@ import java.util.Map;
 import org.eclipse.swt.widgets.Composite;
 
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author k.luther
  * @since 05.10.2018
  *
  */
-public class AvailableDistributionStatusPage extends AbstractTermSelectionWizardPage implements ICdmEntitySessionEnabled{
+public class AvailableDistributionStatusPage extends AbstractAdminTermSelectionWizardPage implements ICdmEntitySessionEnabled{
 
-    private CdmPreference pref;
 
-    public AvailableDistributionStatusPage(String pageName, CdmPreference pref) {
-        super(pageName, TermType.PresenceAbsenceTerm);
-        this.pref = pref;
 
+    public AvailableDistributionStatusPage(String pageName, CdmPreference pref, boolean localPref) {
+        super(pageName, TermType.PresenceAbsenceTerm, pref);
+        this.localPref = localPref;
     }
 
     @Override
     public void createControl(Composite parent) {
         setTitle(Messages.AvailableDistributionStatusPage_PAGE_TITLE);
         setDescription(Messages.AvailableDistributionStatusPage_PAGE_DESCRIPTION);
-
+        if (!localPref){
+            createAllowOverrideButton(parent);
+        }
         super.createControl(parent);
 
     }
 
     @Override
     protected String getCheckedValuesFromPreferences() {
-        String checkedValues = null;
-        if (pref != null){
+       String checkedValues = null;
+        if (localPref || pref == null){
+            List<DefinedTermBase> terms = CdmStore.getTermManager().getPreferredTerms(TermType.PresenceAbsenceTerm);
+            checkedValues = "";
+            int i = terms.size();
+            for (DefinedTermBase term: terms){
+                if (i != terms.size()){
+                    checkedValues+=",";
+                }
+                checkedValues+=term.getUuid().toString();
+                i--;
+            }
+        }else {
             checkedValues = pref.getValue();
         }
         return checkedValues;
index 6867204178b3058971de9209be21d635e06502da..f250baced9b94d8f76a282e3b92bd46e3093aac2 100755 (executable)
@@ -43,7 +43,7 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
         // TODO if preferenceStore has elements checked load elements in wizard
         pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref);
+        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref, true);
     }
 
     @Override
@@ -95,13 +95,15 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
             }
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
 
-        PreferencesUtil.setPreferenceToDB(pref);
         Collection<DefinedTermBase> terms = new ArrayList<>();
-        aPage.getVocabularies().get(0).getTerms()
-        .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
+
+        terms.addAll(CdmStore.getService(ITermService.class).listByTermType(this.aPage.type, null, 0, null, null));
+
+//        aPage.getVocabularies().get(0).getTerms()
+//        .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
         CdmStore.getTermManager().setPreferredTerms(preferredTerms, terms);
+        CdmStore.getTermManager().clearTermMapForTermType(this.aPage.type);
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
     }
index d026f73ba37225788261ae3b08973d787461bd3f..c2430416fc3fd36dfa6da15c6f41616141f3eb3b 100755 (executable)
@@ -23,7 +23,6 @@ import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
 import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -93,6 +92,7 @@ public class AvailableVocabularyWizard extends Wizard implements IConversationEn
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
         String predicate = null;
+        pref = aPage.getPreferences();
         if (pref != null){
             predicate = pref.getPredicate();
         }
index e6795e93ee81147978653e583a3ed71a5ce6c721..dea4f1cbd032af0dc1c0b8b1ea851aa2d2e3bd0d 100644 (file)
@@ -109,4 +109,8 @@ public class CommandHandlerButton extends Composite implements Observer {
        public void setText(String string) {
                button.setText(string);
        }
+
+       public void setButtonEnabled(boolean enabled){
+           button.setEnabled(enabled);
+       }
 }
index 8364c6905c8ed68086229716e9d51e17aa1fd889..7dd8d5dc7368d8f5e167c24949fb9be450afa113 100644 (file)
@@ -15,7 +15,7 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
 import eu.etaxonomy.cdm.model.name.TaxonName;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
+import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
@@ -61,10 +61,10 @@ public class DescriptionElementSourceElement extends
        @Override
        public void setEntity(DescriptionElementSource entity) {
                super.setEntity(entity);
-               if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_ID_IN_SOURCE)){
+               if (PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowIdInSource.getKey())){
                    text_idInSource.setText(entity.getIdInSource());
                }
-               if (PreferencesUtil.getBooleanValue(IPreferenceKeys.SHOW_NAMESPACE_IN_SOURCE)){
+               if (PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowNamespaceInSource.getKey())){
                    text_idNamespace.setText(entity.getIdNamespace());
                }