ref #8350: searchfield for namedArea is configurable
authorKatja Luther <k.luther@bgbm.org>
Thu, 12 Sep 2019 11:53:46 +0000 (13:53 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 12 Sep 2019 11:54:40 +0000 (13:54 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/SearchDialogAdminPreferences.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/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/SearchDialogPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/selection/NamedAreaSelectionDialog.java

index 2ce896e13175e0588645f59bc0bbc55cb6643da5..afa775ad4240aef4d8098953d447b606b805f0a9 100755 (executable)
@@ -11,7 +11,9 @@ package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 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.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.SearchDialogPreferences;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -58,6 +60,13 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
             filterCommonNameReferences = null;
             filterCommonNameReferencesPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, null);
         }
+        if (this.searchNamedAreasByAbbrevPref != null){
+            searchNamedAreasByAbbrev = searchNamedAreasByAbbrevPref.getValue() != null? NamedAreaSearchField.byKey(searchNamedAreasByAbbrevPref.getValue()): null;
+        }else{
+            searchNamedAreasByAbbrev = null;
+            searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+        }
+
     }
 
     @Override
@@ -104,8 +113,6 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
                 service.remove(sortTaxaByRankAndNamePref.getKey());
             }
 
-
-
             if(filterCommonNameReferences != null || !filterCommonNameReferencesPref.isAllowOverride()){
                 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.CommonNameReferencesWithMarker, filterCommonNameReferences!= null? filterCommonNameReferences.toString():null);
                 pref.setAllowOverride(filterCommonNameReferencesPref.isAllowOverride());
@@ -113,8 +120,16 @@ public class SearchDialogAdminPreferences extends SearchDialogPreferences implem
             }else{
                 service.remove(filterCommonNameReferencesPref.getKey());
             }
-        }
 
+            if(searchNamedAreasByAbbrev != null || !searchNamedAreasByAbbrevPref.isAllowOverride()){
+                pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, searchNamedAreasByAbbrev!= null? searchNamedAreasByAbbrev.getKey():null);
+                pref.setAllowOverride(searchNamedAreasByAbbrevPref.isAllowOverride());
+                service.set(pref);
+            }else{
+                service.remove(searchNamedAreasByAbbrevPref.getKey());
+            }
+        }
+        PreferencesUtil.updateDBPreferences();
         return true;
     }
 
index edfd35fcd4bfb7f1abc4928ccf8fc708cbd6e48d..2d47940c75d0b02c1b162e0a9c6b9e8e5600124d 100644 (file)
@@ -677,6 +677,9 @@ public class Messages extends NLS {
     public static String OrderPreferencePage_NotAllowed;
 
 
+    public static String DatabasePreferncesPage_NamedAreaSearchField;
+
+
 
 
 
index 63ae15bed33623b07388fa222d891bcabc50f68f..317e9bf3a034990b62814b25b16e70054cc23179 100644 (file)
@@ -471,10 +471,11 @@ DatabasePreferncesPage_Search_for_identifier_as_default=Use identifier search as
 DatabasePreferncesPage_search_for_identifier_and_titleCache=Search also for title cache if identifier search is activated
 DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sort taxa by rank and name
 DatabasePreferncesPage_CommonNameFilter=Filter common name references
+DatabasePreferncesPage_NamedAreaSearchField=Searchfield for named areas
 
 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.
+DistributionAdminPreferences_PER_AREA_STATUS=List of preferences defining available status per area.\nWith the mostright button you can edit the selected area specific status preference.\nFor defining new area specific status preference please use the button below the table
 
 MarkerTypeMenuPreferences_display=Choose available markers
 MeasurementUnitMenuPreferences_edit=Edit displayed measurement units
index d8e4b94b8afaa1f4b58e85bb893a663e2c8ccb47..4d89f70adb17fbfdb1f77ce2130b0bb6a548b923 100644 (file)
@@ -396,7 +396,7 @@ CheckBoxTreeComposite_SELECT_DIRECT_CHILDREN=Alle direkten Kinder (de-)selektier
 ChecklistEditorGeneralPreference_0=Die Datenbank Präferenzen erlauben kein lokales Bearbeiten der Verbreitungseditor Präferenzen. \nWenn Sie dennoch Änderungen an den Präferenzen vornehmen müssen, wenden Sie sich bitte an einen Administrator.
 ChecklistEditorGeneralPreference_enable=Verbreitungs-Editor aktivieren
 ChecklistEditorGeneralPreference_open_distribution_selection=Gebiets Vokabulare Auswählen
-ChecklistEditorGeneralPreference_open_wizard=Liste der verwendbaren Areal-Vokabulare
+ChecklistEditorGeneralPreference_open_wizard=Liste der verwendbaren Areal-Vokabulare, zum Editieren verwenden Sie bitte den unten stehenden Button
 ChecklistEditorGeneralPreference_show_rank=Rang Spalte anzeigen
 ChecklistEditorGeneralPreference_sort_areas=Areale gemäß Vokabular sortieren
 GeneralPreference_allowOverride=Erlaube Überschreiben
@@ -471,10 +471,11 @@ DatabasePreferncesPage_Search_for_identifier_as_default=Nutze Identifier Suche a
 DatabasePreferncesPage_search_for_identifier_and_titleCache=Suche nach Identifier und Title Cache, wenn Identifier Suche aktiviert ist
 DatabasePreferncesPage_Sort_Taxa_By_Name_And_Rank=Sortiere Taxa nach Rang und Namen
 DatabasePreferncesPage_CommonNameFilter=Filtere Referenzen, die als Referenzen für Trivialnamen markiert sind
+DatabasePreferncesPage_NamedAreaSearchField=Suchfeld für Gebietssuche
 
 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
+DistributionAdminPreferences_PER_AREA_STATUS=Liste der pro Area definierten Status Preferenzen\nMit dem Button auf der rechten Seite können Sie die Präferenz für das Gebiet editieren.\nWenn Sie neue gebietsspezifische Statusangaben definieren wollen, müssen Sie den Button unter der Tabelle verwenden,
 
 MarkerTypeMenuPreferences_display=Auswahl der zur Verf\u00FCgung stehenden Marker
 MeasurementUnitMenuPreferences_edit=Angezeigte Maßeinheiten
@@ -482,7 +483,7 @@ MediaDetailElement_LOAD_IMAGE=Lade Bild
 MediaDetailElement_Media_URI=Media URI
 MediaDetailElement_NO_FILE_FOUND=Keine Datei gefunden
 MediaDetailElement_NO_PREVIEW=Keine Vorschau für diesen Dateityp vorhanden
-MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representatio parts"
+MediaDetailElement_TOGGLE_NOT_POSSIBLE_MESSAGE=Media besteht aus mehreren "representations" oder "representation parts"
 MediaDetailElement_TOGGLE_NOT_POSSIBLE_TITLE=Umschalten nicht möglich
 MediaPreferences_advanced=Erweiterten Media Details View anzeigen
 MediaPreferences_preview=Vorschau anzeigen
index 48434b427275da67b0bb3c0a4bce5a94b89bb295..23229ef05acb437d207ef8badaca8f8c2f949a96 100644 (file)
@@ -56,6 +56,7 @@ import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
+import eu.etaxonomy.cdm.model.metadata.IKeyLabel;
 import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
@@ -239,6 +240,20 @@ public class PreferencesUtil implements IPreferenceKeys {
                         getString(name);
             }
        }else if (pref != null){
+           if (pref.getValue() == null){
+               Object result = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
+               if (result instanceof String){
+                   return (String)result;
+               }else{
+                   if (result == null){
+                       return null;
+                   }
+                   if (result instanceof IKeyLabel){
+                       return ((IKeyLabel)result).getKey();
+                   }
+                   return result.toString();
+               }
+           }
            prefValue = pref.getValue();
        }
         return prefValue;
@@ -330,7 +345,7 @@ public class PreferencesUtil implements IPreferenceKeys {
                      if (result instanceof Boolean){
                          return (Boolean)result;
                      }else{
-                         Boolean.valueOf(result.toString());
+                         return Boolean.valueOf(result.toString());
                      }
                  }
                 return Boolean.valueOf(pref.getValue());
@@ -350,6 +365,15 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
         Double result = null;
         try{
+            if (pref.getValue() == null){
+                Object defaultValue = PreferencePredicate.getByKey(pref.getPredicate()).getDefaultValue();
+                if (defaultValue instanceof Double){
+                    return (Double)defaultValue;
+                }else{
+                    return Double.valueOf(defaultValue.toString());
+                }
+            }
+
             result = Double.parseDouble(prefValue);
         }catch(NumberFormatException e){
             logger.debug("Preference value of " + name + " is not a number");
@@ -930,6 +954,10 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.DisableMultiClassification.getKey()), Boolean.valueOf(PreferencePredicate.DisableMultiClassification.getDefaultValue().toString()));
         getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.ShowImportExportMenu.getKey()), Boolean.valueOf(PreferencePredicate.ShowImportExportMenu.getDefaultValue().toString()));
         getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.ShowSpecimen.getKey()), Boolean.valueOf(PreferencePredicate.ShowSpecimen.getDefaultValue().toString()));
+        getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey()), Boolean.valueOf(PreferencePredicate.SearchForIdentifierAndTitleCache.getDefaultValue().toString()));
+        getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey())), false);
+        getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.SearchForIdentifierAsDefault.getKey()), Boolean.valueOf(PreferencePredicate.SearchForIdentifierAsDefault.getDefaultValue().toString()));
+        getPreferenceStore().setDefault(createPreferenceString(prefOverrideKey(PreferencePredicate.SearchForIdentifierAsDefault.getKey())), false);
 
     }
 
@@ -1704,14 +1732,19 @@ public class PreferencesUtil implements IPreferenceKeys {
         }
     }
 
-    public static List<UUID> createUUIDListFromStringPref(String prefKey) {
+    public static List<UUID> createUUIDListFromStringPref(String prefKey, boolean local) {
         if (prefKey == null){
             return null;
         }
-        String prefValue = PreferencesUtil.getStringValue(prefKey);
+        String prefValue = PreferencesUtil.getStringValue(prefKey, local);
         if (prefValue == null){
             return null;
         }
+        List<UUID> uuidList = createUuidList(prefValue);
+        return uuidList;
+    }
+
+    public static List<UUID> createUuidList(String prefValue) {
         String[] stringArray = prefValue.split(";");
         List<UUID> uuidList = new ArrayList();
         for (String uuid: stringArray){
@@ -1802,7 +1835,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         List<Feature> terms = new ArrayList();
         boolean override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NameFeatures.getKey()));
 
-        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.NameFeatures.getKey());
+        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.NameFeatures.getKey(), false);
         if (uuids != null && !uuids.isEmpty()){
             terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
         }
@@ -1858,7 +1891,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         CdmPreference pref = cache.get(PreferencePredicate.TaxonFeatures.getKey());
         List<Feature> terms;
         boolean override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonFeatures.getKey()));
-        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.TaxonFeatures.getKey());
+        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(PreferencePredicate.TaxonFeatures.getKey(), false);
         terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
         if (terms == null || terms.isEmpty()){
             terms= CdmStore.getTermManager().getPreferredTerms(TermType.Feature);
index 491edee78ac25d843693622f4a636e418a3a88df..d17a83dfaee94c37f8146fa8d0741c6fdc86d0ff 100755 (executable)
@@ -20,6 +20,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
@@ -36,6 +37,7 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected CdmPreference searchForIdentifierAndTitleCachePref;
     protected CdmPreference sortTaxaByRankAndNamePref;
     protected CdmPreference filterCommonNameReferencesPref;
+    protected CdmPreference searchNamedAreasByAbbrevPref;
 
 
     protected Boolean showIdInSelectionDialog;
@@ -43,12 +45,14 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Boolean searchForIdentifierAndTitleCache;
     protected Boolean sortTaxaByRankAndName;
     protected Boolean filterCommonNameReferences;
+    protected NamedAreaSearchField searchNamedAreasByAbbrev;
 
     private boolean overrideShowIdInSelectionDialog = true;
     private boolean overrideSearchForIdentifierAsDefault = true;
     private boolean overrideSearchForIdentifierAndTitleCache = true;
     private boolean overrideSortTaxaByRankAndName = true;
     private boolean overrideFilterCommonNameReferences = true;
+    private boolean overrideSearchNamedAreasByAbbrev = true;
 
     protected Combo showIdInSelectionDialogButton;
     protected Button allowOverrideIsShowIdInSelectionDialogButton;
@@ -60,6 +64,8 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
     protected Button allowOverrideIsSortTaxaByRankAndNameButton;
     protected Combo filterCommonNameReferenceButton;
     protected Button allowOverrideFilterCommonNameReferencesButton;
+    protected Combo searchNamedAreasByAbbrevButton;
+    protected Button allowOverridesearchNamedAreasByAbbrevButton;
 
 
 
@@ -71,12 +77,15 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         searchForIdentifierAndTitleCachePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SearchForIdentifierAndTitleCache);
         sortTaxaByRankAndNamePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.SortTaxaByRankAndName);
         filterCommonNameReferencesPref =  PreferencesUtil.getPreferenceFromDB(PreferencePredicate.CommonNameReferencesWithMarker);
+        searchNamedAreasByAbbrevPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NamedAreaSearchForAbbrev);
 
         overrideShowIdInSelectionDialog = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowIdInSelectionDialog.getKey()));
         overrideSearchForIdentifierAsDefault = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.SearchForIdentifierAsDefault.getKey()));
         overrideSearchForIdentifierAndTitleCache = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.SearchForIdentifierAndTitleCache.getKey()));
         overrideSortTaxaByRankAndName = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.SortTaxaByRankAndName.getKey()));
         overrideFilterCommonNameReferences = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.CommonNameReferencesWithMarker.getKey()));
+        overrideSearchNamedAreasByAbbrev = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NamedAreaSearchForAbbrev.getKey()));
+
         if(overrideShowIdInSelectionDialog){
             showIdInSelectionDialog = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSelectionDialog.getKey(), true);
         }
@@ -92,6 +101,11 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
         if(overrideFilterCommonNameReferences){
             filterCommonNameReferences = PreferencesUtil.getBooleanValue(PreferencePredicate.CommonNameReferencesWithMarker.getKey(), true);
         }
+        if(overrideSearchNamedAreasByAbbrev){
+            String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), true);
+            searchNamedAreasByAbbrev = stringValue != null? NamedAreaSearchField.byKey(stringValue):null;
+        }
+
 
 
     }
@@ -171,6 +185,17 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             }
         }
 
+        if (e.getSource().equals(this.searchNamedAreasByAbbrevButton)) {
+            String text = searchNamedAreasByAbbrevButton.getText();
+            if(text.startsWith(Messages.Preference_Use_Default)){
+                searchNamedAreasByAbbrev = null;
+                return;
+            }
+            searchNamedAreasByAbbrev = (NamedAreaSearchField) searchNamedAreasByAbbrevButton.getData(text);
+
+        }
+
+
 
     }
 
@@ -311,6 +336,29 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             });
         }
 
+        searchNamedAreasByAbbrevButton = createCombo(composite, NamedAreaSearchField.values(), PreferencePredicate.NamedAreaSearchForAbbrev, Messages.DatabasePreferncesPage_NamedAreaSearchField, isAdminPreference);
+        searchNamedAreasByAbbrevButton.addSelectionListener(this);
+
+
+        if (!isAdminPreference && searchNamedAreasByAbbrevPref != null){
+            searchNamedAreasByAbbrevButton.setEnabled(searchNamedAreasByAbbrevPref.isAllowOverride());
+        }
+
+        if (isAdminPreference){
+            allowOverridesearchNamedAreasByAbbrevButton = createAllowOverrideButton(composite);
+            allowOverridesearchNamedAreasByAbbrevButton.setSelection(searchNamedAreasByAbbrevPref != null? searchNamedAreasByAbbrevPref.isAllowOverride():true);
+            allowOverridesearchNamedAreasByAbbrevButton.addSelectionListener(new SelectionAdapter(){
+                @Override
+                public void widgetSelected(SelectionEvent e) {
+                    setApply(true);
+                    if (searchNamedAreasByAbbrevPref == null && !allowOverridesearchNamedAreasByAbbrevButton.getSelection()){
+                        searchNamedAreasByAbbrevPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NamedAreaSearchForAbbrev, null);
+                    }
+                    searchNamedAreasByAbbrevPref.setAllowOverride(allowOverridesearchNamedAreasByAbbrevButton.getSelection());
+                }
+            });
+        }
+
         setSelections();
 
         return composite;
@@ -348,6 +396,12 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             allowOverrideFilterCommonNameReferencesButton.setSelection(true);
             filterCommonNameReferencesPref.setAllowOverride(true);
         }
+        searchNamedAreasByAbbrevButton.select(0);
+        searchNamedAreasByAbbrev = null;
+        if (isAdminPreference){
+            allowOverridesearchNamedAreasByAbbrevButton.setSelection(true);
+            searchNamedAreasByAbbrevPref.setAllowOverride(true);
+        }
         setApply(true);
     }
 
@@ -404,6 +458,16 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
                 override);
         override = false;
 
+        if(searchNamedAreasByAbbrev != null){
+            override = true;
+            PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey(), searchNamedAreasByAbbrev.getKey());
+        }
+        PreferencesUtil.setBooleanValue(
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaSearchForAbbrev.getKey()),
+                override);
+
+
+
         return true;
     }
 
@@ -493,6 +557,21 @@ public class SearchDialogPreferences extends CdmPreferencePage implements Select
             }
             index++;
         }
+        index = 0;
+        for (String itemLabel: searchNamedAreasByAbbrevButton.getItems()) {
+            if ((searchNamedAreasByAbbrev == null || (!overrideSearchNamedAreasByAbbrev && !isAdminPreference)) && itemLabel.startsWith(Messages.Preference_Use_Default)) {
+                searchNamedAreasByAbbrevButton.select(index);
+                break;
+            }
+
+
+            if (searchNamedAreasByAbbrev != null && itemLabel.equals(searchNamedAreasByAbbrev.getLabel())){
+                searchNamedAreasByAbbrevButton.select(index);
+                break;
+            }
+
+            index++;
+        }
     }
 
 
index b1808a5b27e34088819949a230cb4daf4ab01858..32f83764530b07a5139edc1339a4900e371d2dcb 100644 (file)
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 import java.util.List;\r
 import java.util.UUID;\r
 \r
+import org.apache.commons.lang.StringUtils;\r
 import org.eclipse.jface.action.Action;\r
 import org.eclipse.jface.action.IAction;\r
 import org.eclipse.jface.dialogs.Dialog;\r
@@ -26,6 +27,8 @@ import org.eclipse.swt.widgets.Shell;
 import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
+import eu.etaxonomy.cdm.model.metadata.NamedAreaSearchField;\r
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
 import eu.etaxonomy.cdm.model.term.DefinedTermBase;\r
 import eu.etaxonomy.cdm.model.term.TermType;\r
 import eu.etaxonomy.cdm.model.term.TermVocabulary;\r
@@ -239,10 +242,21 @@ public class NamedAreaSelectionDialog extends
      */\r
     @Override\r
     void callService(String pattern) {\r
+        String abbrevTypeString = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaSearchForAbbrev.getKey());\r
+        NamedAreaSearchField abbrevType = StringUtils.isNotBlank(abbrevTypeString)? NamedAreaSearchField.byKey(abbrevTypeString): null;\r
         if (selectedVocabularies == null || selectedVocabularies.size() == 0){\r
-            model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
+            if (abbrevType != null && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
+            }else{\r
+                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(vocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
+            }\r
         }else{\r
-            model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
+            if (abbrevType != null  && !abbrevType.equals(NamedAreaSearchField.NoAbbrev)){\r
+                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedAreaByAbbrev(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage(), abbrevType);\r
+            }else{\r
+                model = CdmStore.getService(ITermService.class).getUuidAndTitleCacheNamedArea(selectedVocabularies, limitOfInitialElements, pattern, PreferencesUtil.getGlobalLanguage());\r
+            }\r
+\r
         }\r
     }\r
 \r