You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2006/07/15 00:30:27 UTC

svn commit: r422078 - in /incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model: SearchResultsModel.java SearchResultsPager.java

Author: agilliland
Date: Fri Jul 14 15:30:26 2006
New Revision: 422078

URL: http://svn.apache.org/viewvc?rev=422078&view=rev
Log:
finishing touches to search results model to return a pager appropriate for 3.0 rendering.



Added:
    incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsPager.java
Modified:
    incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsModel.java

Modified: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsModel.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsModel.java?rev=422078&r1=422077&r2=422078&view=diff
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsModel.java (original)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsModel.java Fri Jul 14 15:30:26 2006
@@ -64,6 +64,9 @@
     // the actual search results mapped by Day -> Set of entries
     private TreeMap results = new TreeMap(new ReverseComparator());
     
+    // the pager used by the 3.0+ rendering system
+    private SearchResultsPager pager = null;
+    
     private int hits = 0;
     private int offset = 0;
     private int limit = 0;
@@ -119,9 +122,15 @@
             // Convert the Hits into WeblogEntryData instances.
             convertHitsToEntries(hits);
         }
+        
+        // search completed, setup pager based on results
+        pager = new SearchResultsPager(searchRequest, results, (hits > (offset+limit)));
     }
     
-    // TODO 3.0: need to override page model methods here
+    // override page model and return search results pager
+    public WeblogEntriesPager getWeblogEntriesPager() {
+        return pager;
+    }
     
     private void convertHitsToEntries(Hits hits) throws RollerException {
         

Added: incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsPager.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsPager.java?rev=422078&view=auto
==============================================================================
--- incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsPager.java (added)
+++ incubator/roller/branches/roller_3.0/src/org/apache/roller/ui/rendering/model/SearchResultsPager.java Fri Jul 14 15:30:26 2006
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+
+package org.apache.roller.ui.rendering.model;
+
+import java.util.Map;
+import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.ui.rendering.util.WeblogSearchRequest;
+
+
+/**
+ * Pager for navigating through search results.
+ */
+public class SearchResultsPager implements WeblogEntriesPager {
+    
+    private Map entries = null;
+    
+    private WebsiteData weblog = null;
+    private String locale = null;
+    private String query = null;
+    private String category = null;
+    private int page = 0;
+    private boolean moreResults = false;
+    
+    
+    public SearchResultsPager() {}
+    
+    public SearchResultsPager(WeblogSearchRequest searchRequest, Map entries, boolean more) {
+        
+        // store search results
+        this.entries = entries;
+        
+        // data from search request
+        this.weblog = searchRequest.getWeblog();
+        this.query = searchRequest.getQuery();
+        this.category = searchRequest.getWeblogCategoryName();
+        this.locale = searchRequest.getLocale();
+        this.page = searchRequest.getPageNum();
+        
+        // does this pager have more results?
+        this.moreResults = more;
+    }
+    
+    
+    public Map getEntries() {
+        return entries;
+    }
+    
+    
+    public String getHomeLink() {
+        // TODO 3.0: url construction logic
+        return weblog.getURL();
+    }
+
+    public String getHomeName() {
+        return "Main"; // TODO: I18N
+    }
+
+    
+    public String getNextLink() {
+        if(moreResults) {
+            // TODO 3.0: url construction logic
+            return weblog.getURL()+"/search?q="+query+"&page="+page++;
+        }
+        return null;
+    }
+
+    public String getNextName() {
+        if (getNextLink() != null) {
+            return "Next"; // TODO: I18N
+        }
+        return null;
+    }
+
+    public String getPrevLink() {
+        if(page > 0) {
+            // TODO 3.0: url construction logic
+            return weblog.getURL()+"/search?q="+query+"&page="+page--;
+        }
+        return null;
+    }
+
+    public String getPrevName() {
+        if (getNextLink() != null) {
+            return "Prev"; // TODO: I18N
+        }
+        return null;
+    }
+
+    
+    public String getNextCollectionLink() {
+        return null;
+    }
+
+    public String getNextCollectionName() {
+        return null;
+    }
+
+    public String getPrevCollectionLink() {
+        return null;
+    }
+
+    public String getPrevCollectionName() {
+        return null;
+    }
+    
+}