KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > roller > presentation > weblog > tags > EditWeblogCalendarModel


1
2 package org.roller.presentation.weblog.tags;
3
4 import org.roller.model.WeblogManager;
5 import org.roller.presentation.RollerRequest;
6 import org.roller.presentation.tags.menu.RollerMenuModel;
7 import org.roller.util.DateUtil;
8
9 import java.util.Calendar JavaDoc;
10 import java.util.Date JavaDoc;
11
12 import javax.servlet.http.HttpServletResponse JavaDoc;
13
14 /**
15  * Calendar model for calendar intended for use on edit-weblog page.
16  */

17 public class EditWeblogCalendarModel extends WeblogCalendarModel
18 {
19     protected String JavaDoc mQueryString = null;
20
21     /**
22      * @param req
23      * @param resp
24      * @param selfUrl
25      * @param queryString */

26     public EditWeblogCalendarModel(
27         RollerRequest rreq, HttpServletResponse JavaDoc res, String JavaDoc url)
28     {
29         super( rreq, res, url, null );
30     }
31     
32     /**
33      * Create URL for use on edit-weblog page, preserves the request
34      * parameters used by the tabbed-menu tag for navigation.
35      *
36      * @param day Day for URL
37      * @param valid Always return a URL, never return null
38      * @return URL for day, or null if no weblog entry on that day
39      */

40     public String JavaDoc computeUrl( java.util.Date JavaDoc day, boolean valid )
41     {
42         String JavaDoc url = null;
43         try
44         {
45             boolean haveWeblogEntry = true;
46
47             if ( day == null )
48             {
49                 url = mRes.encodeURL(mSelfUrl + mCatName);
50             }
51             else
52             {
53                 // get the 8 char YYYYMMDD datestring for day, returns null
54
// if no weblog entry on that day
55
String JavaDoc dateString = (String JavaDoc)mMonthMap.get( day );
56
57                 if ( dateString == null )
58                 {
59                     haveWeblogEntry = false;
60
61                     // no weblog entry and no date, so use today as the date
62
dateString = DateUtil.format8chars( day );
63                 }
64
65                 if ( haveWeblogEntry || valid )
66                 {
67                     // create URL with params for day, menu, and menu item
68
StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
69                     sb.append( mSelfUrl );
70
71                     sb.append( '&' );
72                     sb.append( RollerRequest.WEBLOGDAY_KEY);
73                     sb.append( '=' );
74                     sb.append( dateString );
75                 
76                     //sb.append( "&method=edit" );
77

78                     if (mReq.getParameter(RollerMenuModel.MENU_KEY) != null )
79                     {
80                         sb.append( '&' );
81                         sb.append( RollerMenuModel.MENU_KEY );
82                         sb.append( '=' );
83                         sb.append(mReq.getParameter(RollerMenuModel.MENU_KEY));
84                     }
85                     if (mReq.getParameter(RollerMenuModel.MENU_ITEM_KEY)!=null)
86                     {
87                         sb.append( '&' );
88                         sb.append( RollerMenuModel.MENU_ITEM_KEY );
89                         sb.append( '=' );
90                         sb.append(
91                             mReq.getParameter(RollerMenuModel.MENU_ITEM_KEY));
92                     }
93                     url = mRes.encodeURL( sb.toString() );
94                 }
95             }
96         }
97         catch (Exception JavaDoc e)
98         {
99             RollerRequest.getRollerRequest(mReq).getServletContext().log("ERROR: creating URL",e);
100         }
101         return url;
102    }
103 }
104
105
Popular Tags