KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Created on Oct 6, 2003
3  *
4  */

5 package org.jresearch.gossip.tags;
6
7 import java.util.Enumeration JavaDoc;
8
9 import javax.servlet.http.HttpServletRequest JavaDoc;
10 import javax.servlet.http.HttpServletResponse JavaDoc;
11 import javax.servlet.jsp.JspException JavaDoc;
12 import javax.servlet.jsp.JspWriter JavaDoc;
13 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
14
15 import org.jresearch.gossip.IConst;
16 import org.jresearch.gossip.list.RecordsData;
17
18 /**
19  * DOCUMENT ME!
20  *
21  * @author Bel
22  */

23 public class BlockUrlTag extends TagSupport JavaDoc {
24
25     private int block;
26
27     private int increase;
28
29     /**
30      * DOCUMENT ME!
31      *
32      * @return DOCUMENT ME!
33      *
34      * @throws JspException
35      * DOCUMENT ME!
36      */

37     public int doStartTag() throws JspException JavaDoc {
38         try {
39             HttpServletRequest JavaDoc req = (HttpServletRequest JavaDoc) pageContext
40                     .getRequest();
41             HttpServletResponse JavaDoc response = (HttpServletResponse JavaDoc) pageContext
42                     .getResponse();
43             Enumeration JavaDoc pnames = req.getParameterNames();
44             StringBuffer JavaDoc url = new StringBuffer JavaDoc((String JavaDoc) req
45                     .getAttribute(IConst.REQUEST.REQUEST_URI)
46                     + "?");
47
48             this.block = ((RecordsData) req
49                     .getAttribute(IConst.REQUEST.RECORDS_DATA)).getCurrBlock();
50
51             while (pnames.hasMoreElements()) {
52                 String JavaDoc name = (String JavaDoc) pnames.nextElement();
53
54                 if (req.getParameter(name) != null
55                         && !req.getParameter(name).equals("")) {
56                     url.append(name);
57                     url.append("=");
58
59                     if (name.equals("block")) {
60                         url
61                                 .append(this.block
62                                         + (this.increase * ((RecordsData) req
63                                                 .getAttribute(IConst.REQUEST.RECORDS_DATA))
64                                                 .getBlockSize()));
65                     } else {
66                         url.append(req.getParameter(name));
67                     }
68
69                     if (pnames.hasMoreElements()) {
70                         url.append("&");
71                     }
72
73                 }
74             }
75
76             if (req.getParameter("block") == null) {
77                 url.append("&block=");
78                 url.append(this.block
79                         + (this.increase * ((RecordsData) req
80                                 .getAttribute(IConst.REQUEST.RECORDS_DATA))
81                                 .getBlockSize()));
82             }
83
84             JspWriter JavaDoc out = pageContext.getOut();
85             out.print(response.encodeURL(url.toString()));
86         } catch (Exception JavaDoc ex) {
87             throw new JspException JavaDoc("error in BlockUrlTag tag:", ex);
88         }
89
90         return (SKIP_BODY);
91     }
92
93     /**
94      * DOCUMENT ME!
95      *
96      * @return
97      */

98     public int getBlock() {
99         return this.block;
100     }
101
102     /**
103      * DOCUMENT ME!
104      *
105      * @param i
106      */

107     public void setBlock(int i) {
108         this.block = i;
109     }
110
111     /**
112      * DOCUMENT ME!
113      *
114      * @return
115      */

116     public int getIncrease() {
117         return this.increase;
118     }
119
120     /**
121      * DOCUMENT ME!
122      *
123      * @param i
124      */

125     public void setIncrease(int i) {
126         this.increase = (i > 0) ? 1 : (-1);
127     }
128 }
Popular Tags