ref #9575: add possibility to search with authors
authorKatja Luther <k.luther@bgbm.org>
Wed, 28 Apr 2021 11:52:49 +0000 (13:52 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 28 Apr 2021 11:53:53 +0000 (13:53 +0200)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchBar.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/SearchOption.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/search/e4/SearchResultViewE4.java
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

index 82ac11db9258b430a43a8544e31fe99b6c14fbd6..05182ca3a487d6ee2b8aa13711f7d754ea904801 100644 (file)
@@ -340,6 +340,9 @@ public class SearchBar implements IContextListener{
             case UNPUBLISHED:
                 configurator.setIncludeUnpublished(configurator.isIncludeUnpublished() ? false : true);
                 break;
+            case WITH_AUTHOR:
+                configurator.setDoIncludeAuthors(configurator.isDoIncludeAuthors() ? false : true);
+                break;
             default:
                 break;
                        }
index 3d0994c8d82854202dee979f2ddcff261da243b6..05fbc4d877aabef1fa77eaa4da3cb152d16dd369 100644 (file)
@@ -22,7 +22,8 @@ public enum SearchOption {
     SYNONYM(Messages.SearchBar_7),
     NAME(Messages.SearchBar_8),
     COMMON_NAME(Messages.SearchBar_9),
-    UNPUBLISHED(Messages.SearchBar_10);
+    UNPUBLISHED(Messages.SearchBar_10),
+    WITH_AUTHOR(Messages.SearchBar_11);
 
     private final String label;
 
@@ -58,6 +59,9 @@ public enum SearchOption {
         case UNPUBLISHED:
             return PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
                     IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true;
+        case WITH_AUTHOR:
+            return PreferencesUtil.getPreferenceStore().getBoolean(
+                    IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS);
 
         }
 
index 9810460aa59187b25d9e598a3f784c83c9f7257c..1775bc50bc14aa53f3e40042304dd823d15dd82e 100644 (file)
@@ -220,6 +220,9 @@ public class SearchResultViewE4 implements IConversationEnabled{
                if(configurator.isDoTaxaByCommonNames()){
                        includedEntities.add(SearchOption.COMMON_NAME.getLabel());
                }
+               if(configurator.isDoIncludeAuthors()){
+            includedEntities.add(SearchOption.WITH_AUTHOR.getLabel());
+        }
                configurator.setMatchMode(MatchMode.LIKE);
 
                String includedEntitiesString = ""; //$NON-NLS-1$
index 084568b9ce79c03b7aa75011a001a9640eafe224..05e3d0016f17a07b0bcbd4690b78bacfbe204f5f 100644 (file)
@@ -40,6 +40,7 @@ public interface IPreferenceKeys {
 
        public static final String TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doUnpublishedTaxa";
 
+       public static final String TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS =  "eu.etaxonomy.taxeditor.taxonServiceConfigurator.doWithAuthors";
        /**
         * Whether to show UUID and database id in the supplemental data view.
         */
index 5d69cf37f794617d15c4469f24719f2bead883d2..128dce3e7bf7a5954604cab58d1d7aa8f598066e 100644 (file)
@@ -747,6 +747,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_NAMES): true);
         configurator.setDoTaxaByCommonNames(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES)? PreferencesUtil.getPreferenceStore().getBoolean(
                 IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES): true);
+        configurator.setDoIncludeAuthors(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS): true);
+        configurator.setIncludeUnpublished(PreferencesUtil.getPreferenceStore().contains(IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED)? PreferencesUtil.getPreferenceStore().getBoolean(
+                IPreferenceKeys.TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED): true);
         //configurator.setMatchMode(eu.etaxonomy.cdm.persistence.query.MatchMode.valueOf(getStringValue(TAXON_SERVICE_CONFIGURATOR_MATCH_MODE)));
 
         return configurator;
@@ -766,7 +770,8 @@ public class PreferencesUtil implements IPreferenceKeys {
         configurator.setDoSynonyms(true);
         configurator.setDoNamesWithoutTaxa(true);
         configurator.setDoTaxaByCommonNames(true);
-
+        configurator.setIncludeUnpublished(true);
+        configurator.setDoIncludeAuthors(false);
         configurator.setTaxonPropertyPath(Arrays.asList("$", "titleCache",
                 "name", "name.$", "relationsFromThisTaxon.$"));
 
@@ -804,6 +809,10 @@ public class PreferencesUtil implements IPreferenceKeys {
                 configurator.isDoNamesWithoutTaxa());
         getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES,
                 configurator.isDoTaxaByCommonNames());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS,
+                configurator.isDoIncludeAuthors());
+        getPreferenceStore().setValue(TAXON_SERVICE_CONFIGURATOR_UNPUBLISHED,
+                configurator.isIncludeUnpublished());
     }
 
     public static void firePreferencesChanged(Class clazz) {
@@ -840,6 +849,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_SYNONYMS, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_NAMES, true);
         getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_COMMON_NAMES, true);
+        getPreferenceStore().setDefault(TAXON_SERVICE_CONFIGURATOR_WITH_AUTHORS, false);
 
         //Name Details
        // getPreferenceStore().setDefault(createPreferenceString(PreferencePredicate.NameDetailsView.getKey()), new NameDetailsConfigurator(false).toString());
@@ -1430,12 +1440,16 @@ public class PreferencesUtil implements IPreferenceKeys {
                  }else if (keyString.equals("getSiblings")){
                      config.setGetSiblings(Boolean.valueOf(valueString));
                  }else if (keyString.equals("classificationUUID")){
-                     config.setClassificationUuid(UUID.fromString(valueString));
+                     if (valueString != null){
+                         config.setClassificationUuid(UUID.fromString(valueString));
+                     }
                  }else if (keyString.equals("classificationName")){
                      config.setClassificationName(valueString);
                  }else if (keyString.equals("dnaSource")){
                      try{
-                         config.setDnaSoure(URI.create(valueString));
+                         if (StringUtils.isNotBlank(valueString)){
+                             config.setDnaSoure(URI.create(valueString));
+                         }
                      }catch(Exception e){
                          config.setDnaSoure(null);
                      }