1 18 19 package org.apache.roller.ui.rendering.pagers; 20 21 import java.util.ArrayList ; 22 import java.util.Calendar ; 23 import java.util.Date ; 24 import java.util.Iterator ; 25 import java.util.List ; 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 import org.apache.roller.model.Roller; 29 import org.apache.roller.model.RollerFactory; 30 import org.apache.roller.model.WeblogManager; 31 import org.apache.roller.pojos.CommentData; 32 import org.apache.roller.pojos.Template; 33 import org.apache.roller.pojos.WebsiteData; 34 import org.apache.roller.pojos.wrapper.CommentDataWrapper; 35 36 37 40 public class CommentsPager extends AbstractPager { 41 42 private static Log log = LogFactory.getLog(CommentsPager.class); 43 44 private String locale = null; 45 private int sinceDays = -1; 46 private int length = 0; 47 48 private List comments = null; 50 51 private boolean more = false; 53 54 55 public CommentsPager( 56 String baseUrl, 57 String locale, 58 int sinceDays, 59 int page, 60 int length) { 61 62 super(baseUrl, page); 63 64 this.locale = locale; 65 this.sinceDays = sinceDays; 66 this.length = length; 67 68 getItems(); 70 } 71 72 73 public List getItems() { 74 75 if (comments == null) { 76 int offset = getPage() * length; 78 79 List results = new ArrayList (); 80 Calendar cal = Calendar.getInstance(); 81 cal.setTime(new Date ()); 82 cal.add(Calendar.DATE, -1 * sinceDays); 83 Date startDate = cal.getTime(); 84 try { 85 Roller roller = RollerFactory.getRoller(); 86 WeblogManager wmgr = roller.getWeblogManager(); 87 List entries = wmgr.getComments( 88 null, null, null, startDate, new Date (), 89 Boolean.FALSE, Boolean.TRUE, Boolean.FALSE, true, offset, length + 1); 90 91 if(entries.size() > length) { 93 more = true; 94 entries.remove(entries.size() - 1); 95 } 96 97 for (Iterator it = entries.iterator(); it.hasNext();) { 99 CommentData comment = (CommentData) it.next(); 100 results.add(CommentDataWrapper.wrap(comment)); 101 } 102 103 } catch (Exception e) { 104 log.error("ERROR: fetching comment list", e); 105 } 106 107 comments = results; 108 } 109 110 return comments; 111 } 112 113 114 public boolean hasMoreItems() { 115 return more; 116 } 117 118 } 119 | Popular Tags |