1 18 19 package org.apache.roller.ui.rendering.pagers; 20 21 import java.util.ArrayList ; 22 import java.util.Date ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 import java.util.Map ; 26 import java.util.TreeMap ; 27 import org.apache.commons.collections.comparators.ReverseComparator; 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.apache.roller.model.Roller; 31 import org.apache.roller.model.RollerFactory; 32 import org.apache.roller.model.WeblogManager; 33 import org.apache.roller.pojos.WeblogCategoryData; 34 import org.apache.roller.pojos.WeblogEntryData; 35 import org.apache.roller.pojos.WeblogTemplate; 36 import org.apache.roller.pojos.WebsiteData; 37 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper; 38 39 40 43 public class WeblogEntriesLatestPager extends AbstractWeblogEntriesPager { 44 45 private static Log log = LogFactory.getLog(WeblogEntriesLatestPager.class); 46 47 private Map entries = null; 49 50 private boolean more = false; 52 53 54 public WeblogEntriesLatestPager( 55 WebsiteData weblog, 56 String locale, 57 String pageLink, 58 String entryAnchor, 59 String dateString, 60 String catPath, 61 int page) { 62 63 super(weblog, locale, pageLink, entryAnchor, dateString, catPath, page); 64 65 getEntries(); 67 } 68 69 70 public Map getEntries() { 71 72 if (entries == null) { 73 entries = new TreeMap (new ReverseComparator()); 74 try { 75 Roller roller = RollerFactory.getRoller(); 76 WeblogManager wmgr = roller.getWeblogManager(); 77 Map mmap = RollerFactory.getRoller().getWeblogManager().getWeblogEntryObjectMap( 78 weblog, 79 null, 80 new Date (), 81 catPath, 82 WeblogEntryData.PUBLISHED, 83 locale, 84 offset, 85 length + 1); 86 87 int count = 0; 89 java.util.Date key = null; 90 Iterator days = mmap.keySet().iterator(); 91 while(days.hasNext()) { 92 key = (java.util.Date )days.next(); 93 94 List wrapped = new ArrayList (); 96 List unwrapped= (List ) mmap.get(key); 97 for(int i=0; i < unwrapped.size(); i++) { 98 if (count++ < length) { 99 wrapped.add(i, 100 WeblogEntryDataWrapper.wrap((WeblogEntryData)unwrapped.get(i))); 101 } else { 102 more = true; 103 } 104 } 105 106 if(wrapped.size() > 0) { 108 entries.put(key, wrapped); 109 } 110 } 111 } catch (Exception e) { 112 log.error("ERROR: getting entry month map", e); 113 } 114 } 115 116 return entries; 117 } 118 119 120 public boolean hasMoreEntries() { 121 return more; 122 } 123 124 } 125 | Popular Tags |