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