1 18 19 package org.apache.roller.ui.rendering.pagers; 20 21 import java.text.ParsePosition ; 22 import java.text.SimpleDateFormat ; 23 import java.util.ArrayList ; 24 import java.util.Calendar ; 25 import java.util.Date ; 26 import java.util.Iterator ; 27 import java.util.List ; 28 import java.util.Map ; 29 import java.util.TreeMap ; 30 import org.apache.commons.collections.comparators.ReverseComparator; 31 import org.apache.commons.lang.StringUtils; 32 import org.apache.commons.logging.Log; 33 import org.apache.commons.logging.LogFactory; 34 import org.apache.roller.model.Roller; 35 import org.apache.roller.model.RollerFactory; 36 import org.apache.roller.model.WeblogManager; 37 import org.apache.roller.pojos.WeblogCategoryData; 38 import org.apache.roller.pojos.WeblogEntryData; 39 import org.apache.roller.pojos.WeblogTemplate; 40 import org.apache.roller.pojos.WebsiteData; 41 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper; 42 import org.apache.roller.util.DateUtil; 43 import org.apache.roller.util.MessageUtilities; 44 import org.apache.roller.util.URLUtilities; 45 46 47 50 public abstract class AbstractWeblogEntriesPager implements WeblogEntriesPager { 51 52 private static Log log = LogFactory.getLog(AbstractWeblogEntriesPager.class); 53 54 WebsiteData weblog = null; 55 String locale = null; 56 String pageLink = null; 57 String entryAnchor = null; 58 String dateString = null; 59 String catPath = null; 60 int offset = 0; 61 int page = 0; 62 int length = 0; 63 64 65 public AbstractWeblogEntriesPager( 66 WebsiteData weblog, 67 String locale, 68 String pageLink, 69 String entryAnchor, 70 String dateString, 71 String catPath, 72 int page) { 73 74 this.weblog = weblog; 75 this.locale = locale; 76 this.pageLink = pageLink; 77 this.entryAnchor = entryAnchor; 78 this.dateString = dateString; 79 this.catPath = catPath; 80 81 length = weblog.getEntryDisplayCount(); 83 if(page > 0) { 84 this.page = page; 85 } 86 this.offset = length * page; 87 } 88 89 90 public boolean hasMoreEntries() { 91 return false; 92 } 93 94 95 public String getHomeLink() { 96 return createURL(0, 0, weblog, locale, pageLink, entryAnchor, dateString, catPath); 97 } 98 99 100 public String getHomeName() { 101 return MessageUtilities.getString("weblogEntriesPager.latest.home"); 102 } 103 104 105 public String getNextLink() { 106 if (hasMoreEntries()) { 107 return createURL(page, 1, weblog, locale, pageLink, entryAnchor, dateString, catPath); 108 } 109 return null; 110 } 111 112 113 public String getNextName() { 114 if (hasMoreEntries()) { 115 return MessageUtilities.getString("weblogEntriesPager.latest.next"); 116 } 117 return null; 118 } 119 120 121 public String getPrevLink() { 122 if (page > 0) { 123 return createURL(page, -1, weblog, locale, pageLink, entryAnchor, dateString, catPath); 124 } 125 return null; 126 } 127 128 129 public String getPrevName() { 130 if (page > 0) { 131 return MessageUtilities.getString("weblogEntriesPager.latest.prev"); 132 } 133 return null; 134 } 135 136 137 public String getNextCollectionLink() { 138 return null; 139 } 140 141 142 public String getNextCollectionName() { 143 return null; 144 } 145 146 147 public String getPrevCollectionLink() { 148 return null; 149 } 150 151 152 public String getPrevCollectionName() { 153 return null; 154 } 155 156 157 160 protected Date parseDate(String dateString) { 161 Date ret = null; 162 SimpleDateFormat char8DateFormat = DateUtil.get8charDateFormat(); 163 SimpleDateFormat char6DateFormat = DateUtil.get6charDateFormat(); 164 if ( dateString!=null 165 && dateString.length()==8 166 && StringUtils.isNumeric(dateString) ) { 167 ParsePosition pos = new ParsePosition (0); 168 ret = char8DateFormat.parse( dateString, pos ); 169 170 Date today = getToday(); 172 if (ret.after(today)) ret = today; 173 } 174 if ( dateString!=null 175 && dateString.length()==6 176 && StringUtils.isNumeric(dateString) ) { 177 ParsePosition pos = new ParsePosition (0); 178 ret = char6DateFormat.parse( dateString, pos ); 179 180 Date today = getToday(); 182 if (ret.after(today)) ret = today; 183 } 184 return ret; 185 } 186 187 188 191 protected Date getToday() { 192 Calendar todayCal = Calendar.getInstance(); 193 todayCal = Calendar.getInstance( 194 weblog.getTimeZoneInstance(), weblog.getLocaleInstance()); 195 todayCal.setTime(new Date ()); 196 return todayCal.getTime(); 197 } 198 199 200 204 protected String createURL( 205 int page, 206 int pageAdd, 207 WebsiteData website, 208 String locale, 209 String pageLink, 210 String entryAnchor, 211 String dateString, 212 String catPath) { 213 214 int pageNum = page + pageAdd; 215 216 if (pageLink != null) { 217 return URLUtilities.getWeblogPageURL(website, locale, pageLink, entryAnchor, catPath, dateString, pageNum, false); 218 } else if (entryAnchor != null) { 219 return URLUtilities.getWeblogEntryURL(website, locale, entryAnchor, true); 220 } 221 222 return URLUtilities.getWeblogCollectionURL(website, locale, catPath, dateString, pageNum, false); 223 } 224 225 } 226 | Popular Tags |