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.UserManager; 31 import org.apache.roller.model.WeblogManager; 32 import org.apache.roller.pojos.Template; 33 import org.apache.roller.pojos.UserData; 34 import org.apache.roller.pojos.WeblogEntryData; 35 import org.apache.roller.pojos.WebsiteData; 36 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper; 37 38 39 42 public class WeblogEntriesListPager extends AbstractPager { 43 44 private static Log log = LogFactory.getLog(WeblogEntriesListPager.class); 45 46 private String locale = null; 47 private int sinceDays = -1; 48 private int length = 0; 49 50 private WebsiteData queryWeblog = null; 51 private UserData queryUser = null; 52 private String queryCat = null; 53 54 private List entries; 56 57 private boolean more = false; 59 60 61 public WeblogEntriesListPager( 62 String baseUrl, 63 WebsiteData queryWeblog, 64 UserData queryUser, 65 String queryCat, 66 String locale, 67 int sinceDays, 68 int pageNum, 69 int length) { 70 71 super(baseUrl, pageNum); 72 73 this.queryWeblog = queryWeblog; 75 this.queryUser = queryUser; 76 this.queryCat = queryCat; 77 this.locale = locale; 78 this.sinceDays = sinceDays; 79 this.length = length; 80 81 getItems(); 83 } 84 85 86 public List getItems() { 87 88 if (entries == null) { 89 int offset = getPage() * length; 91 92 List results = new ArrayList (); 93 Calendar cal = Calendar.getInstance(); 94 cal.setTime(new Date ()); 95 cal.add(Calendar.DATE, -1 * sinceDays); 96 Date startDate = cal.getTime(); 97 try { 98 Roller roller = RollerFactory.getRoller(); 99 WeblogManager wmgr = roller.getWeblogManager(); 100 UserManager umgr = roller.getUserManager(); 101 List rawEntries = wmgr.getWeblogEntries( 102 queryWeblog, 103 queryUser, 104 startDate, 105 new Date (), 106 queryCat, 107 WeblogEntryData.PUBLISHED, 108 "pubTime", 109 locale, 110 offset, 111 length + 1); 112 113 if(rawEntries.size() > length) { 115 more = true; 116 rawEntries.remove(rawEntries.size() - 1); 117 } 118 119 for (Iterator it = rawEntries.iterator(); it.hasNext();) { 121 WeblogEntryData entry = (WeblogEntryData) it.next(); 122 results.add(WeblogEntryDataWrapper.wrap(entry)); 123 } 124 125 } catch (Exception e) { 126 log.error("ERROR: fetching weblog entries list", e); 127 } 128 129 entries = results; 130 } 131 132 return entries; 133 } 134 135 136 public boolean hasMoreItems() { 137 return more; 138 } 139 140 } 141 | Popular Tags |