1 18 19 package org.apache.roller.ui.rendering.model; 20 21 import java.util.Map ; 22 import org.apache.commons.lang.StringUtils; 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.apache.roller.RollerException; 26 import org.apache.roller.pojos.WebsiteData; 27 import org.apache.roller.pojos.wrapper.TemplateWrapper; 28 import org.apache.roller.pojos.wrapper.WeblogCategoryDataWrapper; 29 import org.apache.roller.pojos.wrapper.WeblogEntryDataWrapper; 30 import org.apache.roller.pojos.wrapper.WebsiteDataWrapper; 31 import org.apache.roller.ui.rendering.pagers.WeblogEntriesDayPager; 32 import org.apache.roller.ui.rendering.pagers.WeblogEntriesLatestPager; 33 import org.apache.roller.ui.rendering.pagers.WeblogEntriesMonthPager; 34 import org.apache.roller.ui.rendering.pagers.WeblogEntriesPager; 35 import org.apache.roller.ui.rendering.pagers.WeblogEntriesPermalinkPager; 36 import org.apache.roller.ui.rendering.util.WeblogEntryCommentForm; 37 import org.apache.roller.ui.rendering.util.WeblogPageRequest; 38 import org.apache.roller.ui.rendering.util.WeblogRequest; 39 40 41 44 public class PageModel implements Model { 45 46 private static Log log = LogFactory.getLog(PageModel.class); 47 48 private WeblogPageRequest pageRequest = null; 49 private WeblogEntryCommentForm commentForm = null; 50 private Map requestParameters = null; 51 private WebsiteData weblog = null; 52 53 54 58 public PageModel() {} 59 60 61 64 public String getModelName() { 65 return "model"; 66 } 67 68 69 72 public void init(Map initData) throws RollerException { 73 74 WeblogRequest weblogRequest = (WeblogRequest) initData.get("weblogRequest"); 76 if(weblogRequest == null) { 77 throw new RollerException("expected weblogRequest from init data"); 78 } 79 80 if(weblogRequest instanceof WeblogPageRequest) { 83 this.pageRequest = (WeblogPageRequest) weblogRequest; 84 } else { 85 throw new RollerException("weblogRequest is not a WeblogPageRequest."+ 86 " PageModel only supports page requests."); 87 } 88 89 this.commentForm = (WeblogEntryCommentForm) initData.get("commentForm"); 91 92 this.requestParameters = (Map )initData.get("requestParameters"); 94 95 weblog = pageRequest.getWeblog(); 97 } 98 99 100 103 public String getLocale() { 104 return pageRequest.getLocale(); 105 } 106 107 108 111 public WebsiteDataWrapper getWeblog() { 112 return WebsiteDataWrapper.wrap(weblog); 113 } 114 115 116 119 public boolean isPermalink() { 120 return (pageRequest.getWeblogAnchor() != null); 121 } 122 123 124 127 public boolean isSearchResults() { 128 return false; 130 } 131 132 133 136 public WeblogEntryDataWrapper getWeblogEntry() { 137 if(pageRequest.getWeblogEntry() != null) { 138 return WeblogEntryDataWrapper.wrap(pageRequest.getWeblogEntry()); 139 } 140 return null; 141 } 142 143 144 147 public TemplateWrapper getWeblogPage() { 148 if(pageRequest.getWeblogPageName() != null) { 149 return TemplateWrapper.wrap(pageRequest.getWeblogPage()); 150 } else { 151 try { 152 return TemplateWrapper.wrap(weblog.getDefaultPage()); 153 } catch (RollerException ex) { 154 log.error("Error getting default page", ex); 155 } 156 } 157 return null; 158 } 159 160 161 165 public WeblogCategoryDataWrapper getWeblogCategory() { 166 if(pageRequest.getWeblogCategory() != null) { 167 return WeblogCategoryDataWrapper.wrap(pageRequest.getWeblogCategory()); 168 } 169 return null; 170 } 171 172 173 179 public WeblogEntriesPager getWeblogEntriesPager(String catArgument) { 180 181 String cat = pageRequest.getWeblogCategoryName(); 183 if(catArgument != null && !StringUtils.isEmpty(catArgument) && 184 !"nil".equals(catArgument)) { 185 cat = catArgument; 186 } 187 188 String dateString = pageRequest.getWeblogDate(); 189 190 if (pageRequest.getWeblogAnchor() != null) { 192 return new WeblogEntriesPermalinkPager( 193 weblog, 194 pageRequest.getLocale(), 195 pageRequest.getWeblogPageName(), 196 pageRequest.getWeblogAnchor(), 197 pageRequest.getWeblogDate(), 198 cat, 199 pageRequest.getPageNum()); 200 } else if (dateString != null && dateString.length() == 8) { 201 return new WeblogEntriesDayPager( 202 weblog, 203 pageRequest.getLocale(), 204 pageRequest.getWeblogPageName(), 205 pageRequest.getWeblogAnchor(), 206 pageRequest.getWeblogDate(), 207 cat, 208 pageRequest.getPageNum()); 209 } else if (dateString != null && dateString.length() == 6) { 210 return new WeblogEntriesMonthPager( 211 weblog, 212 pageRequest.getLocale(), 213 pageRequest.getWeblogPageName(), 214 pageRequest.getWeblogAnchor(), 215 pageRequest.getWeblogDate(), 216 cat, 217 pageRequest.getPageNum()); 218 } else { 219 return new WeblogEntriesLatestPager( 220 weblog, 221 pageRequest.getLocale(), 222 pageRequest.getWeblogPageName(), 223 pageRequest.getWeblogAnchor(), 224 pageRequest.getWeblogDate(), 225 cat, 226 pageRequest.getPageNum()); 227 } 228 } 229 230 231 236 public WeblogEntriesPager getWeblogEntriesPager() { 237 return getWeblogEntriesPager(null); 238 } 239 240 241 246 public WeblogEntryCommentForm getCommentForm() { 247 248 if(commentForm == null) { 249 commentForm = new WeblogEntryCommentForm(); 250 } 251 return commentForm; 252 } 253 254 257 public String getRequestParameter(String paramName) { 258 String [] values = (String [])requestParameters.get(paramName); 259 if (values != null && values.length > 0) { 260 return values[0]; 261 } 262 return null; 263 } 264 } 265 | Popular Tags |