Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/roller/presentation/weblog/tags/WeblogCategoryChooserTag.java


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.apache.struts.util.RequestUtils;
6   import org.roller.model.WeblogManager;
7   import org.roller.pojos.UserData;
8   import org.roller.pojos.WeblogCategoryData;
9   import org.roller.presentation.RollerRequest;
10  
11  import java.io.PrintWriter;
12  import java.util.Hashtable;
13  import java.util.Iterator;
14  import java.util.List;
15  
16  import javax.servlet.http.HttpServletRequest;
17  import javax.servlet.jsp.JspException;
18  import javax.servlet.jsp.tagext.Tag;
19  
20  
21  /**
22   * @jsp.tag name="WeblogCatagoryChooser"
23   */
24  public class WeblogCategoryChooserTag 
25    extends org.roller.presentation.tags.HybridTag
26  {
27      private static Log mLogger = 
28         LogFactory.getFactory().getInstance(WeblogCategoryChooserTag.class);
29  
30      //------------------------------------------------------------- 
31      /**
32       * Process start tag.
33       * @return EVAL_SKIP_BODY
34       */
35      public int doStartTag( PrintWriter pw ) throws JspException 
36    {
37      try
38      {
39        HttpServletRequest req = 
40          (HttpServletRequest)pageContext.getRequest();
41        RollerRequest rreq = RollerRequest.getRollerRequest(
42                  (HttpServletRequest)pageContext.getRequest());
43  
44        WeblogManager weblogMgr = 
45          rreq.getRoller().getWeblogManager(); 
46  
47        UserData user = rreq.getUser();
48        List weblogCats = 
49          weblogMgr.getWeblogCategories( user.getUserName());
50  
51        String rawUrl = req.getContextPath()+"/page/"+user.getUserName();
52  
53        pw.println("<div class=\"rWeblogCategoryChooser\">");
54  
55        Hashtable params = new Hashtable();
56        params.put( RollerRequest.USERNAME_KEY, user.getUserName() );
57        String weblog = RequestUtils.computeURL( 
58          pageContext, 
59          null,   // forward 
60          rawUrl, // href
61          null,   // page
62          null,
63          params, // params
64          null,   // anchor
65          false); // redirect
66              String catClass = "rUnchosenCategory";
67              String chosenCat = 
68                      req.getParameter(RollerRequest.WEBLOGCATEGORYNAME_KEY);
69              if ( chosenCat != null )
70              {
71                  pw.println(
72                      "<a href=\""+weblog+"\" class=\""+catClass+"\">"
73                          + "All" +
74                      "</a>");
75              }
76              else
77              {
78                  catClass = "rChosenCategory";
79                  pw.println(
80                      "<span class=\""+catClass+"\">"
81                          + "All" +
82                      "</span>");
83              }
84  
85        for (Iterator wbcItr = weblogCats.iterator();
86          wbcItr.hasNext(); ) {
87          
88          WeblogCategoryData category = (WeblogCategoryData) wbcItr.next();
89          String catName = category.getName();
90          
91          params = new Hashtable();
92  
93          String pid = pageContext.getRequest().getParameter(
94            RollerRequest.PAGEID_KEY );
95          if (pid != null) params.put( RollerRequest.PAGEID_KEY,pid);
96  
97          //params.put( RollerRequest.USERNAME_KEY, user.getUserName() );
98          params.put( RollerRequest.WEBLOGCATEGORYNAME_KEY,
99            catName);
100 
101         pw.println(" | ");
102         weblog = RequestUtils.computeURL(   
103           pageContext, 
104           null,   // forward 
105           rawUrl, // href
106           null,   // page
107           null,
108           params, // params
109           null,   // anchor
110           false); // redirect
111     
112         catClass = "rUnchosenCategory";
113         chosenCat = 
114           req.getParameter(RollerRequest.WEBLOGCATEGORYNAME_KEY);
115         if ( chosenCat != null 
116           && chosenCat.equals(catName) )
117         {
118           catClass = "rChosenCategory";
119           pw.println(
120             "<span class=\""+catClass+"\">"
121               + catName +
122             "</span>");
123         } 
124         else
125         {
126           pw.println(
127             "<a href=\""+weblog+"\" class=\""+catClass+"\">"
128               + catName +
129             "</a>");
130         }
131       }
132       
133       pw.println("</div>");
134     }
135     catch (Exception e)
136     {
137             mLogger.error("Exception",e);
138       throw new JspException(e);
139     }
140     return Tag.SKIP_BODY;
141     }
142 }
143