1
14
15 package com.liferay.taglib.ui;
16
17 import com.liferay.portal.kernel.dao.search.SearchContainer;
18 import com.liferay.portal.kernel.servlet.PortalIncludeUtil;
19 import com.liferay.portal.kernel.util.StringPool;
20 import com.liferay.portal.kernel.util.Validator;
21
22 import javax.servlet.http.HttpServletRequest;
23 import javax.servlet.jsp.JspException;
24 import javax.servlet.jsp.tagext.TagSupport;
25
26
31 public class PageIteratorTag extends TagSupport {
32
33 public int doStartTag() throws JspException {
34 try {
35 _pages = (int)Math.ceil((double)_total / _delta);
36
37 HttpServletRequest request =
38 (HttpServletRequest)pageContext.getRequest();
39
40 request.setAttribute(
41 "liferay-ui:page-iterator:formName", _formName);
42 request.setAttribute(
43 "liferay-ui:page-iterator:cur", String.valueOf(_cur));
44 request.setAttribute(
45 "liferay-ui:page-iterator:curParam", _curParam);
46 request.setAttribute(
47 "liferay-ui:page-iterator:delta", String.valueOf(_delta));
48 request.setAttribute(
49 "liferay-ui:page-iterator:deltaConfigurable",
50 String.valueOf(_deltaConfigurable));
51 request.setAttribute(
52 "liferay-ui:page-iterator:deltaParam", _deltaParam);
53 request.setAttribute("liferay-ui:page-iterator:jsCall", _jsCall);
54 request.setAttribute(
55 "liferay-ui:page-iterator:maxPages", String.valueOf(_maxPages));
56 request.setAttribute("liferay-ui:page-iterator:target", _target);
57 request.setAttribute(
58 "liferay-ui:page-iterator:total", String.valueOf(_total));
59 request.setAttribute("liferay-ui:page-iterator:url", _url);
60 request.setAttribute(
61 "liferay-ui:page-iterator:urlAnchor", _urlAnchor);
62 request.setAttribute(
63 "liferay-ui:page-iterator:pages", String.valueOf(_pages));
64 request.setAttribute("liferay-ui:page-iterator:type", _type);
65
66 PortalIncludeUtil.include(pageContext, getStartPage());
67
68 return EVAL_BODY_INCLUDE;
69 }
70 catch (Exception e) {
71 throw new JspException(e);
72 }
73 }
74
75 public int doEndTag() throws JspException {
76 try {
77 if (_pages > 1) {
78 PortalIncludeUtil.include(pageContext, getEndPage());
79 }
80
81 return EVAL_PAGE;
82 }
83 catch (Exception e) {
84 throw new JspException(e);
85 }
86 }
87
88 public String getStartPage() {
89 if (Validator.isNull(_startPage)) {
90 return _START_PAGE;
91 }
92 else {
93 return _startPage;
94 }
95 }
96
97 public void setStartPage(String startPage) {
98 _startPage = startPage;
99 }
100
101 public String getEndPage() {
102 if (Validator.isNull(_endPage)) {
103 return _END_PAGE;
104 }
105 else {
106 return _endPage;
107 }
108 }
109
110 public void setEndPage(String endPage) {
111 _endPage = endPage;
112 }
113
114 public void setFormName(String formName) {
115 _formName = formName;
116 }
117
118 public void setCur(int cur) {
119 _cur = cur;
120 }
121
122 public void setCurParam(String curParam) {
123 _curParam = curParam;
124 }
125
126 public void setDelta(int delta) {
127 _delta = delta;
128 }
129
130 public void setDeltaConfigurable(boolean deltaConfigurable) {
131 _deltaConfigurable = deltaConfigurable;
132 }
133
134 public void setDeltaParam(String deltaParam) {
135 _deltaParam = deltaParam;
136 }
137
138 public void setJsCall(String jsCall) {
139 _jsCall = jsCall;
140 }
141
142 public void setMaxPages(int maxPages) {
143 _maxPages = maxPages;
144 }
145
146 public void setTarget(String target) {
147 _target = target;
148 }
149
150 public void setTotal(int total) {
151 _total = total;
152 }
153
154 public void setType(String type) {
155 _type = type;
156 }
157
158 public void setUrl(String url) {
159 _url = url;
160 _urlAnchor = StringPool.BLANK;
161
162 int pos = _url.indexOf("#");
163
164 if (pos != -1) {
165 _url = url.substring(0, pos);
166 _urlAnchor = url.substring(pos, url.length());
167 }
168
169 if (_url.indexOf("?") == -1) {
170 _url += "?";
171 }
172 else if (!_url.endsWith("&")) {
173 _url += "&";
174 }
175 }
176
177 private static final String _START_PAGE =
178 "/html/taglib/ui/page_iterator/start.jsp";
179
180 private static final String _END_PAGE =
181 "/html/taglib/ui/page_iterator/end.jsp";
182
183 private String _startPage;
184 private String _endPage;
185 private String _formName = "fm";
186 private int _cur;
187 private String _curParam;
188 private int _delta = SearchContainer.DEFAULT_DELTA;
189 private boolean _deltaConfigurable =
190 SearchContainer.DEFAULT_DELTA_CONFIGURABLE;
191 private String _deltaParam = SearchContainer.DEFAULT_DELTA_PARAM;
192 private String _jsCall;
193 private int _maxPages = 10;
194 private String _target = "_self";
195 private int _total;
196 private String _type = "regular";
197 private String _url;
198 private String _urlAnchor;
199 private int _pages;
200
201 }