Update of 
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
In directory james.mmbase.org:/tmp/cvs-serv5991

Modified Files:
        ContentSearchAction.java 
Log Message:
CMSC-1089,change Assets display in two ways. list and thumbnails.contentSearch 
to make title and keywords to combination


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
See also: http://www.mmbase.org/jira/browse/CMSC-1089


Index: ContentSearchAction.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ContentSearchAction.java    13 Nov 2008 09:52:27 -0000      1.1
+++ ContentSearchAction.java    19 Nov 2008 06:06:06 -0000      1.2
@@ -46,9 +46,9 @@
      */
     private static final Logger log = 
Logging.getLoggerInstance(ContentSearchAction.class.getName());
 
-
     @Override
-    public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response, Cloud cloud) throws 
Exception {
+   public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request,
+         HttpServletResponse response, Cloud cloud) throws Exception {
 
         log.debug("Starting the search:");
 
@@ -58,10 +58,9 @@
         String deleteContentRequest = 
request.getParameter("deleteContentRequest");
 
         if (StringUtils.isNotEmpty(deleteContentRequest)) {
-           if(deleteContentRequest.startsWith("massDelete:")) {
+         if (deleteContentRequest.startsWith("massDelete:")) {
               massDeleteContent(deleteContentRequest.substring(11));
-           }
-           else {
+         } else {
             deleteContent(deleteContentRequest);
            }
 
@@ -91,7 +90,7 @@
 
         NodeManager nodeManager = 
cloud.getNodeManager(searchForm.getContenttypes());
         QueryStringComposer queryStringComposer = new QueryStringComposer();
-        if(StringUtils.isNotEmpty(request.getParameter(MODE))) {
+      if (StringUtils.isNotEmpty(request.getParameter(MODE))) {
                queryStringComposer.addParameter(MODE, 
request.getParameter(MODE));
         }
         NodeQuery query = cloud.createNodeQuery();
@@ -107,8 +106,7 @@
             theStep = query.addRelationStep(nodeManager, 
RepositoryUtil.CONTENTREL, "DESTINATION").getNext();
             query.setNodeStep(theStep);
             queryStringComposer.addParameter(PARENTCHANNEL, 
searchForm.getParentchannel());
-        }
-        else {
+      } else {
             theStep = query.addStep(nodeManager);
             query.setNodeStep(theStep);
         }
@@ -174,29 +172,17 @@
             SearchUtil.addConstraint(query, titleConstraint);
         }
 
-        // And some keyword searching
-        if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
-            queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD, 
searchForm.getKeywords());
-            Field keywordField = 
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
-            List<String> keywords = 
KeywordUtil.getKeywords(searchForm.getKeywords());
-            for (String keyword : keywords) {
-                Constraint keywordConstraint = 
SearchUtil.createLikeConstraint(query, keywordField, keyword);
-                SearchUtil.addORConstraint(query, keywordConstraint);
-            }
-        }
-
+      searchKey(request, searchForm, nodeManager, queryStringComposer, query);
         // Set the objectid constraint
         if (StringUtils.isNotEmpty(searchForm.getObjectid())) {
                String stringObjectId = searchForm.getObjectid().trim();
             Integer objectId = null;
             if (stringObjectId.matches("^\\d+$")) {
                 objectId = Integer.valueOf(stringObjectId);
-            }
-            else {
+         } else {
                 if (cloud.hasNode(stringObjectId)) {
                     objectId = 
Integer.valueOf(cloud.getNode(stringObjectId).getNumber());
-                }
-                else {
+            } else {
                     objectId = Integer.valueOf(-1);
                 }
             }
@@ -227,8 +213,7 @@
         String resultsPerPage = 
PropertiesUtil.getProperty(REPOSITORY_SEARCH_RESULTS_PER_PAGE);
         if (resultsPerPage == null || !resultsPerPage.matches("\\d+")) {
             query.setMaxNumber(25);
-        }
-        else {
+      } else {
             query.setMaxNumber(Integer.parseInt(resultsPerPage));
         }
 
@@ -247,14 +232,39 @@
         searchForm.setResultCount(resultCount);
         searchForm.setResults(results);
         request.setAttribute(GETURL, queryStringComposer.getQueryString());
-
         return super.execute(mapping, form, request, response, cloud);
     }
 
+   private void searchKey(HttpServletRequest request, SearchForm searchForm, 
NodeManager nodeManager,
+         QueryStringComposer queryStringComposer, NodeQuery query) {
+      List<String> keywords = null;
+      String mode = request.getParameter(MODE);
+      if (StringUtils.isNotEmpty(mode) && ("basic").equals(mode)) {
+         keywords = KeywordUtil.getKeywords(searchForm.getTitle());
+      }
+      // And some keyword searching
+      if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
+         keywords = KeywordUtil.getKeywords(searchForm.getKeywords());
+      }
+      if (null != keywords) {
+         addKeyConstraint(searchForm, nodeManager, queryStringComposer, query, 
keywords);
+      }
+   }
+
+   private void addKeyConstraint(SearchForm searchForm, NodeManager 
nodeManager,
+         QueryStringComposer queryStringComposer, NodeQuery query, 
List<String> keywords) {
+      queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD, 
searchForm.getKeywords());
+      Field keywordField = 
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
+      for (String keyword : keywords) {
+         Constraint keywordConstraint = SearchUtil.createLikeConstraint(query, 
keywordField, keyword);
+         SearchUtil.addORConstraint(query, keywordConstraint);
+      }
+   }
+
     private void massDeleteContent(String deleteContent) {
-       if(StringUtils.isNotBlank(deleteContent)){
+      if (StringUtils.isNotBlank(deleteContent)) {
           String[] deleteContents = deleteContent.split(",");
-          for(String content : deleteContents) {
+         for (String content : deleteContents) {
              deleteContent(content);
           }
        }
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to