svn commit: r641070 - in /lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene: ImageQueryStringModule.java QueryStringModule.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Tue Mar 25 16:06:32 2008
New Revision: 641070

URL: http://svn.apache.org/viewvc?rev=641070&view=rev
Log:
Show all images as search results if search term is empty. Might be used for 'insert image' usecase.

Modified:
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/ImageQueryStringModule.java
    lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/QueryStringModule.java

Modified: lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/ImageQueryStringModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/ImageQueryStringModule.java?rev=641070&r1=641069&r2=641070&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/ImageQueryStringModule.java (original)
+++ lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/ImageQueryStringModule.java Tue Mar 25 16:06:32 2008
@@ -16,6 +16,10 @@
  */
 package org.apache.lenya.modules.lucene;
 
+import java.util.Map;
+
+import org.apache.cocoon.environment.ObjectModelHelper;
+import org.apache.cocoon.environment.Request;
 import org.apache.lenya.cms.metadata.MetaDataRegistry;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.BooleanQuery;
@@ -23,13 +27,31 @@
 
 /**
  * Same as {@link QueryStringModule}, but searches only for images.
+ * If the <em>queryString</em> request parameter is empty, all images are shown.
  */
 public class ImageQueryStringModule extends QueryStringModule {
     
     protected static final String DOCUMENT_METADATA_NAMESPACE = "http://apache.org/lenya/metadata/document/1.0";
 
+    protected String getQueryString(Map objectModel) {
+        Request request = ObjectModelHelper.getRequest(objectModel);
+        String searchTerm = request.getParameter(PARAM_QUERY_STRING);
+        
+        if (searchTerm != null && searchTerm.indexOf(' ') > -1) {
+            searchTerm = "(" + searchTerm + ")";
+        }
+
+        BooleanQuery query = getQuery(searchTerm);
+        return query.toString();
+    }
+
     protected BooleanQuery getQuery(String searchTerm) {
-        BooleanQuery query = super.getQuery(searchTerm);
+        
+        BooleanQuery query = new BooleanQuery();
+        
+        if (!isEmpty(searchTerm)) {
+            query.add(super.getQuery(searchTerm), true, false);
+        }
         
         MetaDataRegistry registry = null;
         MetaDataFieldRegistry fieldRegistry = null;

Modified: lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/QueryStringModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/QueryStringModule.java?rev=641070&r1=641069&r2=641070&view=diff
==============================================================================
--- lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/QueryStringModule.java (original)
+++ lenya/trunk/src/modules/lucene/java/src/org/apache/lenya/modules/lucene/QueryStringModule.java Tue Mar 25 16:06:32 2008
@@ -65,7 +65,7 @@
         Request request = ObjectModelHelper.getRequest(objectModel);
         String searchTerm = request.getParameter(PARAM_QUERY_STRING);
         
-        if (searchTerm == null || searchTerm.trim().equals("")) {
+        if (isEmpty(searchTerm)) {
             return "";
         }
         
@@ -75,6 +75,10 @@
 
         BooleanQuery query = getQuery(searchTerm);
         return query.toString();
+    }
+
+    protected boolean isEmpty(String searchTerm) {
+        return searchTerm == null || searchTerm.trim().equals("");
     }
 
     protected BooleanQuery getQuery(String searchTerm) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.