ref #8256: add table of all status preferences in preference page
authorKatja Luther <k.luther@bgbm.org>
Thu, 4 Jul 2019 13:14:54 +0000 (15:14 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 4 Jul 2019 13:14:54 +0000 (15:14 +0200)
19 files changed:
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle.properties
eu.etaxonomy.taxeditor.store/OSGI-INF/l10n/bundle_de.properties
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/DistributionStatusAndNamedAreaVocabulariesAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SupplementalDataAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/event/WorkbenchEventConstants.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/CdmPreferenceCache.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ChecklistEditorGeneralPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionGeneralPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusAndNamedAreaVocabularies.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SupplementalDataPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/wizard/AvailableDistributionPerAreaStatusWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/description/detail/DistributionDetailElement.java

index d7fa0b0a214ea75bdded97b1fbf44957393f918d..a0a49baa038dca88dc6c4ccfcceadf04de211352 100644 (file)
@@ -279,4 +279,7 @@ command.commandname.21 = OWL Term Export
 command.commandname.22 = Create Structure Tree
 command.commandname.23 = Create Property Tree
 handledmenuitem.label.22 = OWL Term Export
-handledmenuitem.label.23 = Owl Import
+handledmenuitem.label.23 = Owl Import\r
+\r
+page.name.104 = Distribution Data\r
+page.name.105 = Vocabularies and Status
index 7f078795599bb6fbd79a80cd2283a098434bc215..d05a5b901ff147a5ed1babaf6f88fc95d6122aef 100644 (file)
@@ -279,4 +279,7 @@ command.commandname.21 = OWL-Term-Export
 command.commandname.22 = Strukturbaum erstellen
 command.commandname.23 = Propertybaum erstellen
 handledmenuitem.label.22 = OWL Term Export
-handledmenuitem.label.23 = Owl Import
\ No newline at end of file
+handledmenuitem.label.23 = Owl Import
+
+page.name.104 = Verbreitungsdaten
+page.name.105 = Vokabulare und Status
\ No newline at end of file
index 154d01b92444850313a989ca263c45db44cfd943..b803453dcc48c1787140afee575ef615df7f24ba 100755 (executable)
          id="eu.etaxonomy.taxeditor.preference.MediaPreferences"
          name="%page.name.27">
    </page>
-   <page
+    <page
          category="eu.etaxonomy.taxeditor.preference.UIPreferences"
+         class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         id="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         name="%page.name.104">
+   </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
          class="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference"
          id="eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreferencePage"
          name="%page.name.28">
+   </page>
+    <page
+         category="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         class="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies"
+         id="eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabulariesPage"
+         name="%page.name.105">
    </page>
    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
    </page>-->
     <page 
          category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.preference.DistributionGeneralPreference"
+         id="eu.etaxonomy.taxeditor.store.Distribution"
+         name="%page.name.104">
+   </page>
+   <page 
+         category="eu.etaxonomy.taxeditor.store.Distribution"
          class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.ChecklistEditorGeneralAdminPreference"
          id="eu.etaxonomy.taxeditor.store.checklist"
          name="%page.name.21">
    </page>
+   <page 
+         category="eu.etaxonomy.taxeditor.store.Distribution"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.DistributionStatusAndNamedAreaVocabulariesAdminPreference"
+         id="eu.etaxonomy.taxeditor.store.distributionVocabulariesAndStatus"
+         name="%page.name.105">
+   </page>
    <page
          category="eu.etaxonomy.taxeditor.store.abcdImportPreference"
          class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.AbcdImportProvider"
index 6ac2b7bee9ee9ad0a288c320b9dad6401a8de3c3..f34201b7c19fa523af968c7a134c899bd112d6cf 100755 (executable)
@@ -97,12 +97,7 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
             pref.setAllowOverride(prefStatusDisplayInCombo.isAllowOverride());
             service.set(pref);
         }
-//        if (statusPref != null){
-//            service.set(statusPref);
-//        }
-//        if (areaVocPref != null){
-//            service.set(areaVocPref);
-//        }
+
         PreferencesUtil.updateDBPreferences();
 
         return true;
@@ -166,8 +161,7 @@ public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGenera
             this.ownDescriptionForDistributionEditor = Boolean.valueOf(PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString());
         }
 
-        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
-        commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler";
+
 
         setValid(false);
     }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionStatusAndNamedAreaVocabulariesAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/DistributionStatusAndNamedAreaVocabulariesAdminPreference.java
new file mode 100755 (executable)
index 0000000..769111e
--- /dev/null
@@ -0,0 +1,30 @@
+/**
+* Copyright (C) 2019 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.databaseAdmin.preferencePage;
+
+import eu.etaxonomy.taxeditor.preference.DistributionStatusAndNamedAreaVocabularies;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionStatusAndNamedAreaVocabulariesAdminPreference
+        extends DistributionStatusAndNamedAreaVocabularies {
+
+
+    @Override
+    public void getValues() {
+        super.getValues();
+        isAdminPreference = true;
+        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
+        commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionPerAreaStatusWizardHandler";
+    }
+
+}
index eb1418a377e7f058ba67eb9a224d5ad97e032d71..f7514a9a72624410bd70be8836d980e7a751fa12 100755 (executable)
@@ -39,12 +39,12 @@ public class SupplementalDataAdminPreference extends SupplementalDataPreferences
         pref.setAllowOverride(isAllowOverrideShowIDNamspace);
         PreferencesUtil.setPreferencesToDB(pref, setToDefault);
 
-        if (isShowNamespace == null){
+        if (isShowIDSource == null){
             setToDefault = true;
-            isShowNamespace = true;
+            isShowIDSource = true;
          }
-        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, Boolean.toString(this.isShowNamespace));
-        pref.setAllowOverride(isAllowOverrideShowNamspace);
+        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, Boolean.toString(this.isShowIDSource));
+        pref.setAllowOverride(isAllowOverrideShowIDSource);
         PreferencesUtil.setPreferencesToDB(pref, setToDefault);
 
         PreferencesUtil.updateDBPreferences();
@@ -72,7 +72,7 @@ public class SupplementalDataAdminPreference extends SupplementalDataPreferences
             prefShowNamespace = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowNamespaceInSource, null);
             prefShowNamespace.setAllowOverride(true);
         }
-        isShowNamespace = prefShowNamespace.getValue()!= null? Boolean.parseBoolean(prefShowNamespace.getValue()): null;
-        isAllowOverrideShowNamspace = prefShowNamespace.isAllowOverride();
+        isShowIDSource = prefShowNamespace.getValue()!= null? Boolean.parseBoolean(prefShowNamespace.getValue()): null;
+        isAllowOverrideShowIDSource = prefShowNamespace.isAllowOverride();
     }
 }
index 6daec08604923280d2cfb9c51fa25af92507a11c..cf88698fd435773bae661a25cbc6198ac59557db 100644 (file)
@@ -41,4 +41,6 @@ public interface WorkbenchEventConstants {
 
     public static final String REMOVE_USER = "UPDATE/GROUP/REMOVEUSER";
 
+    public static final String REFRESH_DISTRIBUTION_PREFERENCES = "REFRESH/DISTRIBUTION/PREFERENCE";
+
 }
index db4014e8e57cd8c820ae8e96fed8c22f360f3085..647f2b0ac50b4c7fd49a04e1befada98523eee36 100644 (file)
@@ -570,6 +570,7 @@ public class Messages extends NLS {
 
     public static String Distribution_status_selection;
     public static String DistributionAdminPreferences_SELECT_STATUS;
+    public static String DistributionAdminPreferences_PER_AREA_STATUS;
 
     public static String DatabasePreferncesPage_Show_MediaView;
     public static String DatabasePreferncesPage_Show_ChecklistPerspective;
index 791a1fd1f308bd1d5f55c072f26e589b77a525af..4135b4ea210d156458dccad5fd025489236791d2 100644 (file)
@@ -462,6 +462,7 @@ DatabasePreferncesPage_Show_TaxonNodeWizard=Taxon Nodes can be edited in Wizard
 
 Distribution_status_selection=Status Selection
 DistributionAdminPreferences_SELECT_STATUS=List of available distribution status
+DistributionAdminPreferences_PER_AREA_STATUS=List of preferences defining available status per area.\nIn this list you can define whether the preference can be overwritten or delete it.
 
 MarkerTypeMenuPreferences_display=Choose available markers
 MeasurementUnitMenuPreferences_edit=Edit displayed measurement units
index 6b45f75b472f8bdda23a6f4bad77deb55d6322d6..c3d582f2b7295e58692b11050424f7b339fbbfd0 100644 (file)
@@ -463,6 +463,7 @@ DatabasePreferncesPage_Show_TaxonNodeWizard=Wizard zum Editieren der Taxon Knote
 
 Distribution_status_selection=Status Auswahl
 DistributionAdminPreferences_SELECT_STATUS=Liste der verfügbaren Verbreitungs-Status
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Preferenzen\nSie können in der Liste definieren, ob das lokale Überschreiben erlaubt sein soll und die Preferenz löschen
 
 MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
 MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
index 2d79a8a9cba304ae7a55d10314e962f5807e7bbe..04625e0135f056f8909186fd585c77431355f181 100755 (executable)
@@ -102,6 +102,21 @@ public class CdmPreferenceCache {
 
     }
 
+    public boolean remove(CdmPreference pref){
+        if (preferenceCache.containsKey(pref.getPredicate())){
+            List<CdmPreference> cachedPreferences = preferenceCache.get(pref.getPredicate());
+            CdmPreference prefToRemove = null;
+            for (CdmPreference cachedPref:cachedPreferences){
+                if (pref.getKey().equals(cachedPref.getKey())){
+                    prefToRemove = cachedPref;
+                }
+            }
+            cachedPreferences.remove(prefToRemove);
+        }
+        return true;
+
+    }
+
     public void getAllTaxEditorDBPreferences(){
         ICdmRepository controller;
         controller = CdmStore.getCurrentApplicationConfiguration();
index 7628c1dc9a9b463910186649cb4c1eabf8e6fc30..19054ba158e0877069dd22ffa4044cdfdc9a920c 100644 (file)
@@ -9,7 +9,6 @@
 package eu.etaxonomy.taxeditor.preference;\r
 \r
 import org.eclipse.swt.SWT;\r
-import org.eclipse.swt.custom.CLabel;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
@@ -19,9 +18,7 @@ import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Event;\r
 import org.eclipse.swt.widgets.Label;\r
-import org.eclipse.swt.widgets.Listener;\r
 \r
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
@@ -30,7 +27,6 @@ import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
 import eu.etaxonomy.cdm.model.metadata.TermOrder;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;\r
 \r
 /**\r
  * @author a.oppermann\r
@@ -68,14 +64,13 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     protected Button allowOverrideStatusDisplayInComboButton;\r
     protected Combo areaDisplaySelectionCombo;\r
     protected Button allowOverrideAreaDisplayButton;\r
-    protected String commandHandlerString;\r
-    protected String commandHandlerStringStatus;\r
+\r
 \r
     protected CdmPreference distributionEditorPref;\r
-    protected CdmPreference prefStatus;\r
-    protected CdmPreference prefAreaVoc;\r
-    protected CdmPreference prefAreaDisplay;\r
+\r
     protected CdmPreference prefStatusDisplay;\r
+    protected CdmPreference prefAreaDisplay;\r
+\r
     protected CdmPreference prefStatusDisplayInCombo;\r
     protected CdmPreference prefAreaSort;\r
     protected CdmPreference prefRank;\r
@@ -92,11 +87,8 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
     final String SHOW_RANK = "Show Rank";\r
     final String NO_RANK = "No Rank";\r
 \r
-    protected CdmPreference areaVocPref = null;\r
-    protected CdmPreference statusPref = null;\r
-    private CommandHandlerButton button_openSelectAreaVocabularies;\r
 \r
-    private CommandHandlerButton button_openStatusWizard;\r
+\r
 \r
     @Override\r
     protected Control createContents(Composite parent) {\r
@@ -200,10 +192,6 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     }\r
                 });\r
             }\r
-\r
-            GridData gridData = new GridData();\r
-            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);\r
-\r
             areaOrderSelectionCombo = createCombo(child, TermOrder.values(), PreferencePredicate.AreasSortedInDistributionEditor, Messages.ChecklistEditorGeneralPreference_Configure_area_order, isAdminPreference);\r
 \r
             index = 0;\r
@@ -379,31 +367,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             }\r
 \r
 \r
-            final CLabel labelStatus = new CLabel(child, SWT.NULL);\r
-            labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);\r
-            labelStatus.setLayoutData(textGrid);\r
-\r
-            button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH, commandHandlerStringStatus);\r
-\r
-            button_openStatusWizard.setText(Messages.Distribution_status_selection);\r
-            button_openStatusWizard.addListener(SWT.Selection, new Listener() {\r
-                @Override\r
-                public void handleEvent(Event e) {\r
-                    switch (e.type) {\r
-                    case SWT.Selection:\r
-                        setApply(true);\r
-                        break;\r
-                    }\r
-                }\r
-            });\r
 \r
-            final CLabel label = new CLabel(child, SWT.NULL);\r
-            label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);\r
-            label.setLayoutData(textGrid);\r
-\r
-            button_openSelectAreaVocabularies = new CommandHandlerButton(child, SWT.PUSH, commandHandlerString);\r
-            button_openSelectAreaVocabularies\r
-                    .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);\r
 \r
             if (!isAdminPreference) {\r
 \r
@@ -412,12 +376,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                     activateComp.setEnabled(false);\r
                 }\r
 \r
-                if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {\r
-                    button_openSelectAreaVocabularies.setButtonEnabled(false);\r
-                }\r
-                if (prefStatus != null && !prefStatus.isAllowOverride()) {\r
-                    button_openStatusWizard.setButtonEnabled(false);\r
-                }\r
+\r
                 if (prefRank != null && !prefRank.isAllowOverride()) {\r
                     activateRankCombo.setEnabled(false);\r
                 }\r
@@ -678,16 +637,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             distributionEditorPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DistributionEditorActivated, PreferencePredicate.DistributionEditorActivated.getDefaultValue() != null ?  PreferencePredicate.DistributionEditorActivated.getDefaultValue().toString(): null);\r
         }\r
 \r
-        prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);\r
-        if (prefAreaVoc == null){\r
-            prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);\r
-        }\r
-\r
 \r
-        prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);\r
-        if (prefStatus == null){\r
-            prefStatus = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);\r
-        }\r
 \r
 \r
         prefAreaDisplay = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfAreasInDistributionEditor);\r
@@ -830,8 +780,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
             //prefOwnDescription = CdmPreference.NewTaxEditorInstance(PreferencePredicate.OwnDescriptionForDistributionEditor, PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue() != null ?  PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString(): null);\r
         }\r
 \r
-        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";\r
-        commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";\r
+\r
     }\r
 \r
     @Override\r
@@ -956,18 +905,11 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 \r
         overrideOwnDescriptionForDistributionEditor = true;\r
 \r
-        this.statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);\r
-        this.areaVocPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies,\r
-                null);\r
+\r
         if (!isAdminPreference) {\r
             PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);\r
 \r
-            if (!prefAreaVoc.isAllowOverride()) {\r
-                button_openSelectAreaVocabularies.setButtonEnabled(false);\r
-            }\r
-            if (!prefStatus.isAllowOverride()) {\r
-                button_openStatusWizard.setButtonEnabled(false);\r
-            }\r
+\r
             if (!prefRank.isAllowOverride()) {\r
                 activateRankCombo.setEnabled(false);\r
 \r
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionGeneralPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionGeneralPreference.java
new file mode 100755 (executable)
index 0000000..04e57f6
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+* Copyright (C) 2019 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.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionGeneralPreference extends CdmPreferencePage {
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        noDefaultAndApplyButton();
+        return null;
+    }
+
+}
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusAndNamedAreaVocabularies.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DistributionStatusAndNamedAreaVocabularies.java
new file mode 100755 (executable)
index 0000000..a492d4e
--- /dev/null
@@ -0,0 +1,345 @@
+/**
+* Copyright (C) 2019 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.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.inject.Inject;
+
+import org.eclipse.e4.core.di.annotations.Optional;
+import org.eclipse.e4.ui.di.UIEventTopic;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+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 org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+
+import eu.etaxonomy.cdm.model.location.NamedArea;
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.ImageResources;
+import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
+
+/**
+ * @author k.luther
+ * @since 02.07.2019
+ *
+ */
+public class DistributionStatusAndNamedAreaVocabularies extends CdmPreferencePage {
+
+    protected String commandHandlerString;
+    protected String commandHandlerStringStatus;
+
+    protected List<CdmPreference> prefStatus;
+    protected List<CdmPreference> prefStatusToDelete = new ArrayList<>();
+
+    protected CdmPreference prefAreaVoc;
+
+    private CommandHandlerButton button_openSelectAreaVocabularies;
+
+    private CommandHandlerButton button_openStatusWizard;
+
+    private Map<UUID, NamedArea> namedAreaUUIDMap = new HashMap();
+
+    private Table table;
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected Control createContents(Composite parent) {
+        getValues();
+        Composite composite = new Composite(parent, SWT.NULL);
+        composite.setLayout(new GridLayout());
+        GridData textGrid = createTextGridData();
+        textGrid.verticalSpan = 2;
+
+
+        if (isAdminPreference){
+            final CLabel labelPerAreaStatus = new CLabel(composite, SWT.NULL);
+            labelPerAreaStatus.setText(Messages.DistributionAdminPreferences_PER_AREA_STATUS);
+            labelPerAreaStatus.setLayoutData(textGrid);
+            createTable(composite);
+        }
+
+        final CLabel labelStatus = new CLabel(composite, SWT.NULL);
+        labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
+        labelStatus.setLayoutData(textGrid);
+        composite.pack ();
+        button_openStatusWizard = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerStringStatus);
+
+        button_openStatusWizard.setText(Messages.Distribution_status_selection);
+        button_openStatusWizard.addListener(SWT.Selection, new Listener() {
+            @Override
+            public void handleEvent(Event e) {
+                switch (e.type) {
+                case SWT.Selection:
+                    setApply(true);
+                    break;
+                }
+            }
+        });
+
+        final CLabel label = new CLabel(composite, SWT.NULL);
+        label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
+        label.setLayoutData(textGrid);
+
+        button_openSelectAreaVocabularies = new CommandHandlerButton(composite, SWT.PUSH, commandHandlerString);
+        button_openSelectAreaVocabularies
+                .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
+
+        if (!isAdminPreference){
+            if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {
+                button_openSelectAreaVocabularies.setButtonEnabled(false);
+            }
+//            if (prefStatus != null && !prefStatus.isAllowOverride()) {
+//                button_openStatusWizard.setButtonEnabled(false);
+//            }
+        }
+        return composite;
+    }
+
+    public void createTable(Composite composite) {
+        table = new Table(
+                composite, SWT.BORDER /*| SWT.CHECK */| SWT.FULL_SELECTION | SWT.SINGLE
+        );
+
+        table.setLinesVisible(true);
+        table.setHeaderVisible(true);
+        GridData tableGrid = createTextGridData();
+        table.setLayoutData(tableGrid);
+        Iterator<CdmPreference> prefIterator = prefStatus.iterator();
+        CdmPreference pref;
+        TableColumn column = new TableColumn(table, SWT.NONE);
+        column.setText("Predicate/Subject");
+        column.setWidth(500);
+        column = new TableColumn(table, SWT.NONE);
+        if (isAdminPreference){
+            column.setText("Allow Override");
+        }else{
+            column.setText("Use Default");
+        }
+        column.setWidth(100);
+        column = new TableColumn(table, SWT.NONE);
+        column.setText("Delete");
+        column.setWidth(100);
+
+
+
+        while (prefIterator.hasNext()){
+            pref = prefIterator.next();
+            createTableRow(pref);
+
+        }
+    }
+
+    public void createTableRow(CdmPreference pref) {
+        TableItem item = new TableItem(table, SWT.NONE);
+        for (int col = 0; col < 3; col ++) {
+            String namedAreaString = null;
+            if (col == 0){
+               String uuidString = getUUIDFromSubject(pref);
+               if (uuidString != null){
+                   try{
+                   UUID uuid = UUID.fromString(uuidString);
+                   namedAreaString = namedAreaUUIDMap.get(UUID.fromString(uuidString)).getLabel();
+                   }catch(IllegalArgumentException e){
+                       // no UUID
+                   }
+               }
+               if (namedAreaString != null){
+                   String subjectString = pref.getSubjectString().replace(pref.getSubject().getLastPart(), namedAreaString);
+                   item.setText(col, pref.getPredicate() +subjectString);
+               }else{
+                   item.setText(col, pref.getPredicate() +pref.getSubjectString());
+               }
+
+            }else if (col == 1) {
+                Button allowOverrideButton = new Button(table, SWT.CHECK);
+                allowOverrideButton.setData(pref);
+                TableEditor editor = new TableEditor(table);
+                editor.horizontalAlignment = SWT.LEFT;
+                editor.grabHorizontal = true;
+                editor.setEditor(allowOverrideButton, item, col);
+                allowOverrideButton.setSelection(pref.isAllowOverride());
+                allowOverrideButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e){
+                        setApply(true);
+                        Button thisButton= (Button) e.widget;
+                        CdmPreference preference=(CdmPreference)thisButton.getData();
+                        preference = PreferenceResolver.resolve(prefStatus, preference.getKey());
+                        if (isAdminPreference){
+                            preference.setAllowOverride(!preference.isAllowOverride());
+                        }else{
+
+                        }
+                    }
+                  });
+            } else if (col == 2){
+                Button delButton = new Button(table, SWT.PUSH);
+                delButton.setImage(ImageResources
+                        .getImage(ImageResources.TRASH_ICON));
+                delButton.setData(pref);
+                delButton.pack();
+                delButton.addSelectionListener(new SelectionAdapter(){
+                    @Override
+                    public void widgetSelected(SelectionEvent e){
+                        Button thisButton= (Button) e.widget;
+                        CdmPreference preference=(CdmPreference)thisButton.getData();
+                        int index = prefStatus.indexOf(preference);
+                        table.getItem(index).setText("Deleted");
+                        //prefStatus.remove(preference);
+                        prefStatusToDelete.add(preference);
+                        setApply(true);
+
+                    }
+                  });
+                TableEditor editor = new TableEditor(table);
+                editor.horizontalAlignment = SWT.LEFT;
+                editor.grabHorizontal = true;
+                editor.setEditor(delButton, item, col);
+
+            }
+        }
+    }
+
+    @Override
+    public void getValues() {
+        isAdminPreference = false;
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        cache.getAllTaxEditorDBPreferences();
+        prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
+        if (prefAreaVoc == null){
+            prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);
+        }
+
+
+        prefStatus = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
+        if (prefStatus == null){
+            prefStatus = new ArrayList();
+            CdmPreference statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);
+            prefStatus.add(statusPref);
+        }
+        createNamedAreaUUIDMap();
+
+        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
+        commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
+        setApply(true);
+    }
+
+    /**
+     *
+     */
+    private void createNamedAreaUUIDMap() {
+        List<UUID> uuids = new ArrayList();
+        for (CdmPreference pref: prefStatus){
+            try{
+                String lastPart = getUUIDFromSubject(pref);
+                UUID uuid = UUID.fromString(lastPart);
+                uuids.add(uuid);
+            }catch (IllegalArgumentException e){
+                // no uuid in subject
+            }
+
+        }
+        if (!uuids.isEmpty()){
+            List<NamedArea> areas =CdmStore.getTermManager().getTerms(uuids, NamedArea.class);
+            for (NamedArea area: areas){
+                namedAreaUUIDMap.put(area.getUuid(), area);
+            }
+        }
+
+    }
+
+    public String getUUIDFromSubject(CdmPreference pref) {
+        String lastPart = pref.getSubject().getLastPart();
+        lastPart = lastPart.replace("NamedArea[", "");
+        lastPart = lastPart.replace("]", "");
+        return lastPart;
+    }
+
+    @Override
+    protected void performDefaults() {
+        if (!isAdminPreference){
+            if (!prefAreaVoc.isAllowOverride()) {
+                button_openSelectAreaVocabularies.setButtonEnabled(false);
+            }
+
+        }
+        prefStatus = new ArrayList();
+        CdmPreference statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ?  PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);
+        prefStatus.add(statusPref);
+        prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies,
+                null);
+        refresh();
+    }
+
+    @Override
+    public boolean performOk(){
+        if (!isApply()){
+            return true;
+        }
+        List<CdmPreference> toDelete = new ArrayList<>();
+        for (CdmPreference pref:prefStatusToDelete){
+            CdmPreference prefToDelete = CdmPreference.NewInstance(pref.getKey(), null);
+            toDelete.add(prefToDelete);
+        }
+        prefStatus.addAll(toDelete);
+        PreferencesUtil.setPreferencesToDB(prefStatus);
+        return true;
+    }
+
+
+    @Inject
+    @Optional
+    public void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_DATASOURCE)boolean refresh){
+        if(refresh){
+            refresh();
+        }
+    }
+
+    /**
+     *
+     */
+    private void refresh() {
+        getValues();
+        table.removeAll();
+        Iterator<CdmPreference> prefIterator = prefStatus.iterator();
+        CdmPreference pref;
+        while (prefIterator.hasNext()){
+            pref = prefIterator.next();
+            createTableRow(pref);
+
+        }
+        table.redraw();
+        table.pack();
+
+    }
+}
index 7ffc1d1f40e8945e84f58dcb0c288c0e7c4dacce..3b5d2e516ae7e3997589b6ffea58ba0565e35278 100644 (file)
@@ -1723,21 +1723,25 @@ public class PreferencesUtil implements IPreferenceKeys {
     public static void setPreferencesToDB(List<CdmPreference> preferences) {
 
         ICdmRepository controller;
-        try{
+        //try{
             if(CdmStore.isActive()){
                 controller = CdmStore.getCurrentApplicationConfiguration();
                 for (CdmPreference preference: preferences){
                     if (preference.getValue() == null && preference.isAllowOverride()){
                         controller.getPreferenceService().remove(preference.getKey());
+
                     }else{
                         controller.getPreferenceService().set(preference);
+
                     }
-                    CdmPreferenceCache.instance().put(preference);
+
                 }
+                CdmPreferenceCache.instance().getAllTaxEditorDBPreferences();
+
             }
-        }catch(Exception e){
+        /*}catch(Exception e){
             e.printStackTrace();
-        }
+        }*/
     }
 
     /**
index 4ade914d4d1e0a30fb4cebe0855077cc5085ed6d..8087df501268aa389fc1780af1ede73abada5189 100755 (executable)
@@ -35,19 +35,19 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
 
 
     protected Boolean isShowIDNamspace;
-    protected Boolean isShowNamespace;
+    protected Boolean isShowIDSource;
 
     protected boolean isAllowOverrideShowIDNamspace;
-    protected boolean isAllowOverrideShowNamspace;
+    protected boolean isAllowOverrideShowIDSource;
 
     protected boolean isOverrideShowIDNamspace;
-    protected boolean isOverrideShowNamspace;
+    protected boolean isOverrideShowIDSource;
 
 
     protected Combo showIDNamspaceButton;
     protected Button allowOverrideShowIDNamspaceButton;
-    protected Combo showNamspaceButton;
-    protected Button allowOverrideNamspaceButton;
+    protected Combo showIDSourceButton;
+    protected Button allowOverrideIDSourceButton;
 
     final String SHOW = Messages.GeneralPreference_yes;
     final String DO_NOT_SHOW = Messages.GeneralPreference_no;
@@ -91,25 +91,25 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
         }
 
 
-        showNamspaceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show Namespace in Source",
+        showIDSourceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show ID in Source",
                 isAdminPreference);
 
-        showNamspaceButton.addSelectionListener(this);
-        if (isShowNamespace == null || (!isOverrideShowNamspace && !isAdminPreference)){
-            showNamspaceButton.select(0);
-        }else if (isShowNamespace){
-            showNamspaceButton.select(1);
+        showIDSourceButton.addSelectionListener(this);
+        if (isShowIDSource == null || (!isOverrideShowIDSource && !isAdminPreference)){
+            showIDSourceButton.select(0);
+        }else if (isShowIDSource){
+            showIDSourceButton.select(1);
         }else{
-            showNamspaceButton.select(2);
+            showIDSourceButton.select(2);
         }
 
         if (isAdminPreference){
-            allowOverrideNamspaceButton = createAllowOverrideButton(composite);
-            allowOverrideNamspaceButton.setSelection(isAllowOverrideShowNamspace);
-            allowOverrideNamspaceButton.addSelectionListener(new SelectionAdapter(){
+            allowOverrideIDSourceButton = createAllowOverrideButton(composite);
+            allowOverrideIDSourceButton.setSelection(isAllowOverrideShowIDSource);
+            allowOverrideIDSourceButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-                    isAllowOverrideShowNamspace = allowOverrideNamspaceButton.getSelection();
+                    isAllowOverrideShowIDSource = allowOverrideIDSourceButton.getSelection();
                     setApply(true);
                 }
             });
@@ -117,8 +117,8 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
         if (!isAllowOverrideShowIDNamspace && !isAdminPreference){
             showIDNamspaceButton.setEnabled(false);
         }
-        if (!isAllowOverrideShowNamspace && !isAdminPreference){
-            showNamspaceButton.setEnabled(false);
+        if (!isAllowOverrideShowIDSource && !isAdminPreference){
+            showIDSourceButton.setEnabled(false);
         }
 
 
@@ -133,9 +133,9 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
             PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), isOverrideShowIDNamspace);
             PreferencesUtil.setBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), isShowIDNamspace);
         }
-        if (isAllowOverrideShowNamspace){
-            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowNamespace);
-            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowNamspace);
+        if (isAllowOverrideShowIDSource){
+            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowIDSource);
+            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowIDSource);
         }
 
 
@@ -156,14 +156,14 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
             isAllowOverrideShowIDNamspace = true;
         }
 
-        isShowNamespace = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
-        isOverrideShowNamspace = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
+        isShowIDSource = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
+        isOverrideShowIDSource = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
         key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
         pref = cache.findBestMatching(key);
         if (pref != null){
-            isAllowOverrideShowNamspace = pref.isAllowOverride();
+            isAllowOverrideShowIDSource = pref.isAllowOverride();
         }else{
-            isAllowOverrideShowNamspace = true;
+            isAllowOverrideShowIDSource = true;
         }
 
 
@@ -191,17 +191,17 @@ public class SupplementalDataPreferences extends CdmPreferencePage implements Se
                 isShowIDNamspace = false;
             }
         }
-        if (e.getSource().equals(this.showNamspaceButton)) {
-            String text = showNamspaceButton.getText();
+        if (e.getSource().equals(this.showIDSourceButton)) {
+            String text = showIDSourceButton.getText();
             if (text.equals(Messages.Preference_Use_Default)){
-                isOverrideShowNamspace = false;
+                isOverrideShowIDSource = false;
             }else{
-                isOverrideShowNamspace = true;
+                isOverrideShowIDSource = true;
             }
             if (text.equals(SHOW)){
-                isShowNamespace = true;
+                isShowIDSource = true;
             }else{
-                isShowNamespace = false;
+                isShowIDSource = false;
             }
         }
 
index f8695b9ec309619aa47d39683f140d7aa0e91d24..e952e6d323632bc26ae627ec8effb63b60b8eefd 100755 (executable)
@@ -150,36 +150,43 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
             }
 
         });
-        btnRemove = new Button(toolbar, SWT.NONE);
-        btnRemove.addSelectionListener(new SelectionListener(){
-
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-
-                PrefKey key = newAreaSpecificStatusPreference();
-                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-                actualPref = CdmPreference.NewInstance(key, null);
-
-                perAreaPreferences.add(actualPref);
-                status.setText("Preference for area " + actualArea.getLabel() + " removed.");
-                status.setVisible(true);
-
-                actualArea = null;
-
-                areaText.setText("");
-                rememberCheckedValues(getCheckedValuesFromPreferences());
-
-            }
-
-            @Override
-            public void widgetDefaultSelected(SelectionEvent e) {
-                // TODO Auto-generated method stub
-
-            }
-
-        });
-        btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
-        btnRemove.setToolTipText("");
+//        btnRemove = new Button(toolbar, SWT.NONE);
+//        btnRemove.addSelectionListener(new SelectionListener(){
+//
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//
+//                PrefKey key = newAreaSpecificStatusPreference();
+//                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
+//                actualPref = CdmPreference.NewInstance(key, null);
+//                if (actualPref.getKey().equals(pref.getKey())){
+//                    pref = actualPref;
+//                }
+//
+//                perAreaPreferences.add(actualPref);
+//                if (actualArea != null){
+//                    status.setText("Preference for area " + actualArea.getLabel() + " removed. Now the status defined for all areas are displayed");
+//                }else{
+//                    status.setText("Preference for all areas is removed. Now all status will be displayed");
+//                }
+//                status.setVisible(true);
+//
+//                actualArea = null;
+//
+//                areaText.setText("");
+//                rememberCheckedValues(getCheckedValuesFromPreferences());
+//
+//            }
+//
+//            @Override
+//            public void widgetDefaultSelected(SelectionEvent e) {
+//                // TODO Auto-generated method stub
+//
+//            }
+//
+//        });
+//        btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
+//        btnRemove.setToolTipText("");
         status = new Label(toolbar, SWT.NONE);
         status.setVisible(false);
     }
@@ -271,7 +278,12 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
     }
 
     private PrefKey newAreaSpecificStatusPreference(){
-        PrefKey prefKey = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
+        PrefKey prefKey;
+        if (actualArea != null){
+            prefKey  = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
+        }else{
+            prefKey = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
+        }
         return prefKey;
     }
 
index 0e2c68d50a86b3216fdec4b002b846a6d93bc112..ccb9c4b72ac63fa26594459995525f2ec6a2b3ca 100755 (executable)
@@ -19,6 +19,8 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -95,6 +97,7 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
 
        // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
         PreferencesUtil.firePreferencesChanged(this.getClass());
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DISTRIBUTION_PREFERENCES, true);
         return true;
     }
 
index 879dad83f8d59d74e90a763be895c3e47f4fa63f..4f7597f942f3c46acbb747aa5454e5eeb4e6cafa 100644 (file)
@@ -90,7 +90,7 @@ public class DistributionDetailElement extends
                }
         CdmPreference pref = CdmPreferenceCache.instance().get(key);
         // if there is no preference for the area, look for the general
-        if (pref == null){
+        if (pref == null || pref.isAllowOverride()){
             pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey()));
         }