1 package org.roller.presentation.weblog.tags; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 import org.roller.RollerException; 6 import org.roller.model.WeblogManager; 7 import org.roller.pojos.WeblogEntryData; 8 import org.roller.presentation.RollerContext; 9 import org.roller.presentation.RollerRequest; 10 import org.roller.util.DateUtil; 11 12 import java.text.SimpleDateFormat ; 13 import java.util.Date ; 14 import java.util.HashMap ; 15 import java.util.List ; 16 17 import javax.servlet.http.HttpServletResponse ; 18 19 23 public class BigWeblogCalendarModel extends WeblogCalendarModel 24 { 25 private static Log mLogger = 26 LogFactory.getFactory().getInstance(BigWeblogCalendarModel.class); 27 28 protected static final SimpleDateFormat mStarDateFormat = 29 DateUtil.get8charDateFormat(); 30 31 protected static final SimpleDateFormat mSingleDayFormat = 32 new SimpleDateFormat ("dd"); 33 34 40 public BigWeblogCalendarModel(RollerRequest rreq, HttpServletResponse res, 41 String url, String cat) 42 { 43 super(rreq, res, url, cat); 44 } 45 46 50 protected void loadWeblogEntries(Date startDate, Date endDate, String catName) 51 { 52 try 53 { 54 WeblogManager mgr = mRollerReq.getRoller().getWeblogManager(); 55 mMonthMap = mgr.getWeblogEntryObjectMap( 56 mRollerReq.getWebsite(), startDate, endDate, catName, WeblogManager.PUB_ONLY, null 62 ); 63 } 64 catch (RollerException e) 65 { 66 mLogger.error(e); 67 mMonthMap = new HashMap (); 68 } 69 } 70 71 77 public String computeUrl(Date day, boolean valid) 78 { 79 String url = null; 80 try 81 { 82 if ( day == null ) 83 { 84 url = mRes.encodeURL(mSelfUrl + mCatName); 85 } 86 else 87 { 88 String dateString = null; 91 List entries = 92 (List )mMonthMap.get( day ); 93 if ( entries != null && day != null ) 94 { 95 WeblogEntryData entry = (WeblogEntryData)entries.get(0); 96 dateString = 97 mStarDateFormat.format(entry.getPubTime()); 98 99 url = mRes.encodeURL(mSelfUrl+"/"+dateString+mCatName); 101 } 102 else if ( entries != null ) 103 { 104 url = mRes.encodeURL(mSelfUrl+"/"+mCatName); 105 } 106 else if ( valid ) 107 { 108 dateString = mStarDateFormat.format( day ); 110 url = mRes.encodeURL(mSelfUrl+"/"+dateString+mCatName); 111 } 112 } 113 } 114 catch (Exception e) 115 { 116 RollerRequest.getRollerRequest(mReq) 117 .getServletContext().log("ERROR: creating URL",e); 118 } 119 return url; 120 } 121 122 125 public String getContent(Date day) 126 { 127 String content = null; 128 try 129 { 130 RollerRequest rreq = RollerRequest.getRollerRequest(mReq); 131 RollerContext rctx = 132 RollerContext.getRollerContext(rreq.getServletContext()); 133 StringBuffer sb = new StringBuffer (); 134 135 String dateString = null; 138 List entries = (List )mMonthMap.get(day); 139 if ( entries != null ) 140 { 141 dateString = mStarDateFormat.format( 142 ((WeblogEntryData)entries.get(0)).getPubTime()); 143 144 String dayUrl = mRes.encodeURL(mSelfUrl+"/"+ dateString+mCatName ); 146 147 sb.append("<div class=\"hCalendarDayTitleBig\">"); 148 sb.append("<a HREF=\""); 149 sb.append( dayUrl ); 150 sb.append("\">"); 151 sb.append( mSingleDayFormat.format( day ) ); 152 sb.append("</a></div>"); 153 154 for ( int i=0; i<entries.size(); i++ ) 155 { 156 sb.append("<div class=\"bCalendarDayContentBig\">"); 157 sb.append("<a HREF=\""); 158 sb.append(rctx.createEntryPermalink( 159 (WeblogEntryData)entries.get(i),mReq,false)); 160 sb.append("\">"); 161 162 String title = ((WeblogEntryData)entries.get(i)).getTitle().trim(); 163 if ( title.length()==0 ) 164 { 165 title = ((WeblogEntryData)entries.get(i)).getAnchor(); 166 } 167 if ( title.length() > 20 ) 168 { 169 title = title.substring(0,20)+"..."; 170 } 171 172 sb.append( title ); 173 sb.append("</a></div>"); 174 } 175 176 } 177 else 178 { 179 sb.append("<div class=\"hCalendarDayTitleBig\">"); 180 sb.append( mSingleDayFormat.format( day ) ); 181 sb.append("</div>"); 182 sb.append("<div class=\"bCalendarDayContentBig\"/>"); 183 } 184 content = sb.toString(); 185 } 186 catch (Exception e) 187 { 188 RollerRequest.getRollerRequest(mReq) 189 .getServletContext().log("ERROR: creating URL",e); 190 } 191 return content; 192 } 193 } 194 | Popular Tags |