KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jresearch > gossip > tags > JumpToOptionsTag


1 /*
2  * Created on 09.05.2003
3  *
4  */

5 package org.jresearch.gossip.tags;
6
7 import java.util.ArrayList JavaDoc;
8 import java.util.Iterator JavaDoc;
9
10 import javax.servlet.http.HttpServletRequest JavaDoc;
11 import javax.servlet.http.HttpServletResponse JavaDoc;
12 import javax.servlet.http.HttpSession JavaDoc;
13 import javax.servlet.jsp.JspException JavaDoc;
14 import javax.servlet.jsp.JspWriter JavaDoc;
15 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
16
17 import org.apache.log.Logger;
18 import org.jresearch.gossip.IConst;
19 import org.jresearch.gossip.beans.forum.Forum;
20 import org.jresearch.gossip.beans.forum.Group;
21 import org.jresearch.gossip.exception.SystemException;
22 import org.jresearch.gossip.log.avalon.JGossipLog;
23 import org.jresearch.gossip.util.HtmlCodec;
24
25 /**
26  * DOCUMENT ME!
27  *
28  * @author Bel
29  */

30 public class JumpToOptionsTag extends TagSupport JavaDoc {
31
32     /**
33      * Logger instance.
34      */

35     private Logger log;
36
37     private boolean addUrl = true;
38
39     /**
40      * Default c'tor.
41      */

42     public JumpToOptionsTag() {
43         super();
44         try {
45             log = JGossipLog.getInstance().getAppLogger();
46         } catch (SystemException e) { /* Ignore Exception! */
47         }
48     }
49
50     /**
51      * DOCUMENT ME!
52      *
53      * @return DOCUMENT ME!
54      *
55      * @throws JspException
56      * DOCUMENT ME!
57      */

58     public int doStartTag() throws JspException JavaDoc {
59         try {
60             JspWriter JavaDoc out = pageContext.getOut();
61             HttpServletRequest JavaDoc req = (HttpServletRequest JavaDoc) pageContext
62                     .getRequest();
63             HttpServletResponse JavaDoc response = (HttpServletResponse JavaDoc) pageContext
64                     .getResponse();
65             HttpSession JavaDoc session = req.getSession();
66             ArrayList JavaDoc groups = (ArrayList JavaDoc) session
67                     .getAttribute(IConst.SESSION.GROUPS_KEY);
68             Iterator JavaDoc it = groups.iterator();
69             int fid = -1;
70
71             if (req.getParameter("fid") != null) {
72                 try {
73                     fid = Integer.parseInt(req.getParameter("fid"));
74                 } catch (NumberFormatException JavaDoc ex) {
75                 }
76             }
77
78             while (it.hasNext()) {
79                 out.println("<option value=\"\">"
80                         + IConst.JSP.OPTIONS_SEPERATOR + "</option>");
81
82                 ArrayList JavaDoc forums = ((Group) it.next()).getForums();
83                 Iterator JavaDoc itr = forums.iterator();
84
85                 while (itr.hasNext()) {
86                     Forum forum = (Forum) itr.next();
87                     StringBuffer JavaDoc option = new StringBuffer JavaDoc("<option value=\"");
88
89                     if (this.addUrl) {
90                         StringBuffer JavaDoc href = new StringBuffer JavaDoc(
91                                 "ShowForum.do?fid=");
92                         href.append(forum.getForumid());
93                         option.append(response.encodeURL(href.toString()));
94                     } else {
95                         option.append(forum.getForumid());
96                     }
97
98                     option.append("\" title=\"");
99                     option.append(HtmlCodec.encode(forum.getTitle()));
100                     option.append("\" ");
101                     option
102                             .append((forum.getForumid() == fid) ? "selected"
103                                     : "");
104                     option.append(" >");
105                     option.append(HtmlCodec.encode(forum.getTitle()));
106                     option.append("</option>");
107                     out.println(option.toString());
108                 }
109             }
110         } catch (Exception JavaDoc ex) {
111             if (log.isErrorEnabled()) {
112                 log.error("JumpToOptionsTag::", ex);
113             }
114             throw new JspException JavaDoc("error in JumpToOptionsTag tag:", ex);
115         }
116
117         return (SKIP_BODY);
118     }
119
120     /**
121      * DOCUMENT ME!
122      *
123      * @return DOCUMENT ME!
124      *
125      * @throws JspException
126      * DOCUMENT ME!
127      */

128     public int doEndTag() throws JspException JavaDoc {
129         return (EVAL_PAGE);
130     }
131
132     /**
133      * DOCUMENT ME!
134      *
135      * @param b
136      */

137     public void setAddUrl(boolean b) {
138         addUrl = b;
139     }
140 }
141
Popular Tags