Author: ssmiweve
Date: 2008-11-14 21:50:47 +0100 (Fri, 14 Nov 2008)
New Revision: 6933

Modified:
   
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
   
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
   
trunk/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
   trunk/view-config-spi/pom.xml
   
trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
   
trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
Log:
Issue SKER4785:  (Make AbstractSearchCommand work with offset id's other than 
"offset") 
thanks to magne for this patch


Modified: 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
===================================================================
--- 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
        2008-11-14 18:24:41 UTC (rev 6932)
+++ 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/CommandConfig.java
        2008-11-14 20:50:47 UTC (rev 6933)
@@ -86,6 +86,7 @@
     private boolean runBlank = false;
     private boolean asynchronous = false;
     private String statisticalName = "";
+    private String pagingParameter = DEFAULT_PAGING_PARAMETER;
 
     /**
      * Holds value of property fieldFilters.
@@ -301,6 +302,20 @@
         this.initialQueryTransformer = initialQueryTransformer;
     }
 
+    public String getPagingParameter() {
+        return pagingParameter;
+    }
+
+    /** @see #getPagingParameter()
+     *
+     * @param pagingParameter the paginParameter
+     */
+    public void setPagingParameter(final String pagingParameter) {
+        this.pagingParameter = pagingParameter;
+    }
+
+
+
     // Protected --------------------------------------------------------
 
 

Modified: 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
===================================================================
--- 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
  2008-11-14 18:24:41 UTC (rev 6932)
+++ 
trunk/search-command-config-spi/src/main/java/no/sesat/search/mode/config/SearchConfiguration.java
  2008-11-14 20:50:47 UTC (rev 6933)
@@ -31,6 +31,11 @@
 public interface SearchConfiguration extends Serializable {
 
     /**
+     * Default value associated with getPagingParameter()
+     */
+    public static final String DEFAULT_PAGING_PARAMETER = "offset";
+
+    /**
      * @param resultField
      */
     void addResultField(String... resultField);
@@ -78,6 +83,16 @@
      */
     String getStatisticalName();
 
+    /** Return the parameter key that any associated 
ResultPagingNavigationController
+     * should use to fetch the offset value.
+     * Defaults to "offset".
+     *
+     * Typically used when multiple ResultPagingNavigationControllers are to 
be configured on the one mode.
+     *
+     * @return
+     */
+    String getPagingParameter();
+
     /**
      * @return true if the command should always run.
      */

Modified: 
trunk/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
===================================================================
--- 
trunk/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2008-11-14 18:24:41 UTC (rev 6932)
+++ 
trunk/search-command-control-spi/src/main/java/no/sesat/search/mode/command/AbstractSearchCommand.java
      2008-11-14 20:50:47 UTC (rev 6933)
@@ -58,7 +58,6 @@
 import no.sesat.search.site.config.BytecodeLoader;
 import no.sesat.search.view.config.SearchTab;
 import static no.sesat.search.view.navigation.NavigationConfig.USER_SORT_KEY;
-import static 
no.sesat.search.view.navigation.ResultPagingNavigationConfig.OFFSET_KEY;
 import org.apache.commons.lang.time.StopWatch;
 import org.apache.log4j.Logger;
 import org.apache.log4j.MDC;
@@ -553,7 +552,8 @@
         int offset = 0;
 
         if(isPaginated()){
-            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(OFFSET_KEY);
+            final String offsetKey = 
getSearchConfiguration().getPagingParameter();
+            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(offsetKey);
             if( null != offsetString ){
                 offset = Integer.parseInt(offsetString.getUtf8UrlEncoded());
             }
@@ -566,8 +566,10 @@
         final boolean navMapExists = null != 
context.getDataModel().getNavigation()
                 && null != 
context.getDataModel().getNavigation().getConfiguration();
 
+        final String offsetKey = getSearchConfiguration().getPagingParameter();
+
         final Nav offsetNav = navMapExists
-                ? 
context.getDataModel().getNavigation().getConfiguration().getNavMap().get(OFFSET_KEY)
+                ? 
context.getDataModel().getNavigation().getConfiguration().getNavMap().get(offsetKey)
                 : null;
 
         return null != offsetNav && 
getSearchConfiguration().getId().equals(offsetNav.getCommandName());

Modified: trunk/view-config-spi/pom.xml
===================================================================
--- trunk/view-config-spi/pom.xml       2008-11-14 18:24:41 UTC (rev 6932)
+++ trunk/view-config-spi/pom.xml       2008-11-14 20:50:47 UTC (rev 6933)
@@ -23,6 +23,11 @@
             <artifactId>sesat-site-spi</artifactId>
             <version>${sesat.version}</version>
         </dependency>
+        <dependency>
+            <groupId>sesat</groupId>
+            <artifactId>sesat-search-command-config-spi</artifactId>
+            <version>${sesat.version}</version>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file

Modified: 
trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
===================================================================
--- 
trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
       2008-11-14 18:24:41 UTC (rev 6932)
+++ 
trunk/view-config-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationConfig.java
       2008-11-14 20:50:47 UTC (rev 6933)
@@ -18,6 +18,7 @@
  */
 package no.sesat.search.view.navigation;
 
+import no.sesat.search.mode.config.SearchConfiguration;
 import static 
no.sesat.search.site.config.AbstractDocumentFactory.fillBeanProperty;
 import static no.sesat.search.site.config.AbstractDocumentFactory.ParseType;
 import no.sesat.search.view.navigation.NavigationConfig.Nav.ControllerFactory;
@@ -31,7 +32,7 @@
 public final class ResultPagingNavigationConfig extends NavigationConfig.Nav {
 
     /** Used for both the id of the configuration AND the parameter name. **/
-    public static final String OFFSET_KEY = "offset";
+    public static final String OFFSET_KEY = 
SearchConfiguration.DEFAULT_PAGING_PARAMETER;
 
     private int pageSize;
     private int numberOfPages;

Modified: 
trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
===================================================================
--- 
trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
  2008-11-14 18:24:41 UTC (rev 6932)
+++ 
trunk/view-control-spi/src/main/java/no/sesat/search/view/navigation/ResultPagingNavigationController.java
  2008-11-14 20:50:47 UTC (rev 6933)
@@ -60,6 +60,7 @@
     public NavigationItem getNavigationItems(final Context context) {
 
         final SearchDataObject search = 
context.getDataModel().getSearch(config.getCommandName());
+        final String offsetId = null != config.getId() && 
config.getId().length() > 0 ? config.getId() : OFFSET_KEY;
         NavigationItem item = null;
 
         if (search == null) {
@@ -75,7 +76,7 @@
             }else {
                 hitCount = searchResult.getHitCount();
             }
-            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(OFFSET_KEY);
+            final StringDataObject offsetString = 
context.getDataModel().getParameters().getValue(offsetId);
             final int offset = offsetString == null ? 0 : 
Integer.parseInt(offsetString.getUtf8UrlEncoded());
 
             item = new BasicNavigationItem();

_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits

Reply via email to