1
22
23 package com.liferay.taglib.ui;
24
25 import com.liferay.portal.kernel.util.ParamUtil;
26 import com.liferay.portal.kernel.util.StringPool;
27 import com.liferay.portal.kernel.util.StringUtil;
28 import com.liferay.portal.kernel.util.Validator;
29 import com.liferay.taglib.util.ParamAncestorTagImpl;
30
31 import javax.portlet.PortletURL;
32
33 import javax.servlet.ServletRequest;
34 import javax.servlet.jsp.JspException;
35
36
42 public class TabsTag extends ParamAncestorTagImpl {
43
44 public int doStartTag() throws JspException {
45 try {
46 ServletRequest req = getServletRequest();
47
48 req.setAttribute("liferay-ui:tabs:names", _names);
49
50 if ((_tabsValues == null) || (_tabsValues.length < _names.length)) {
51 _tabsValues = _names;
52 }
53
54 req.setAttribute("liferay-ui:tabs:values", _tabsValues);
55
56 req.setAttribute("liferay-ui:tabs:formName", _formName);
57 req.setAttribute("liferay-ui:tabs:param", _param);
58
59 if (_value == null) {
60 if (_tabsValues.length > 0) {
61 _value = ParamUtil.getString(req, _param, _tabsValues[0]);
62 }
63 }
64
65 if (Validator.isNull(_value)) {
66 if (_tabsValues.length > 0) {
67 _value = _tabsValues[0];
68 }
69 else {
70 _value = StringPool.BLANK;
71 }
72 }
73
74 boolean match = false;
75
76 for (int i = 0; i < _tabsValues.length; i++) {
77 if (_value.equals(_tabsValues[i])) {
78 match = true;
79 }
80 }
81
82 if (!match) {
83 if (_tabsValues.length > 0) {
84 _value = _tabsValues[0];
85 }
86 else {
87 _value = StringPool.BLANK;
88 }
89 }
90
91 req.setAttribute("liferay-ui:tabs:value", _value);
92 req.setAttribute("liferay-ui:tabs:portletURL", _portletURL);
93 req.setAttribute("liferay-ui:tabs:url", _url);
94 req.setAttribute("liferay-ui:tabs:url0", _url0);
95 req.setAttribute("liferay-ui:tabs:url1", _url1);
96 req.setAttribute("liferay-ui:tabs:url2", _url2);
97 req.setAttribute("liferay-ui:tabs:url3", _url3);
98 req.setAttribute("liferay-ui:tabs:url4", _url4);
99 req.setAttribute("liferay-ui:tabs:url5", _url5);
100 req.setAttribute("liferay-ui:tabs:url6", _url6);
101 req.setAttribute("liferay-ui:tabs:url7", _url7);
102 req.setAttribute("liferay-ui:tabs:url8", _url8);
103 req.setAttribute("liferay-ui:tabs:url9", _url9);
104 req.setAttribute("liferay-ui:tabs:backURL", _backURL);
105 req.setAttribute(
106 "liferay-ui:tabs:refresh", String.valueOf(_refresh));
107
108 include(getStartPage());
109
110 return EVAL_BODY_INCLUDE;
111 }
112 catch (Exception e) {
113 throw new JspException(e);
114 }
115 }
116
117 public int doEndTag() throws JspException {
118 try {
119 include(getEndPage());
120
121 return EVAL_PAGE;
122 }
123 catch (Exception e) {
124 throw new JspException(e);
125 }
126 finally {
127 _startPage = null;
128 _endPage = null;
129 _names = null;
130 _namesPos = 0;
131 _tabsValues = null;
132 _formName = StringPool.BLANK;
133 _param = "tabs1";
134 _value = null;
135 _portletURL = null;
136 _url = null;
137 _url0 = null;
138 _url1 = null;
139 _url2 = null;
140 _url3 = null;
141 _url4 = null;
142 _url5 = null;
143 _url6 = null;
144 _url7 = null;
145 _url8 = null;
146 _url9 = null;
147 _backURL = null;
148 _refresh = true;
149 }
150 }
151
152 public String getStartPage() {
153 if (Validator.isNull(_startPage)) {
154 return _START_PAGE;
155 }
156 else {
157 return _startPage;
158 }
159 }
160
161 public void setStartPage(String startPage) {
162 _startPage = startPage;
163 }
164
165 public String getEndPage() {
166 if (Validator.isNull(_endPage)) {
167 return _END_PAGE;
168 }
169 else {
170 return _endPage;
171 }
172 }
173
174 public void setEndPage(String endPage) {
175 _endPage = endPage;
176 }
177
178 public void setNames(String names) {
179 _names = StringUtil.split(names);
180 }
181
182 public void setTabsValues(String tabsValues) {
183 _tabsValues = StringUtil.split(tabsValues);
184 }
185
186 public void setFormName(String formName) {
187 _formName = formName;
188 }
189
190 public String getParam() {
191 return _param;
192 }
193
194 public void setParam(String param) {
195 _param = param;
196 }
197
198 public void setValue(String value) {
199 _value = value;
200 }
201
202 public void setPortletURL(PortletURL portletURL) {
203 _portletURL = portletURL;
204 }
205
206 public void setUrl(String url) {
207 _url = url;
208 }
209
210 public void setUrl0(String url0) {
211 _url0 = url0;
212 }
213
214 public void setUrl1(String url1) {
215 _url1 = url1;
216 }
217
218 public void setUrl2(String url2) {
219 _url2 = url2;
220 }
221
222 public void setUrl3(String url3) {
223 _url3 = url3;
224 }
225
226 public void setUrl4(String url4) {
227 _url4 = url4;
228 }
229
230 public void setUrl5(String url5) {
231 _url5 = url5;
232 }
233
234 public void setUrl6(String url6) {
235 _url6 = url6;
236 }
237
238 public void setUrl7(String url7) {
239 _url7 = url7;
240 }
241
242 public void setUrl8(String url8) {
243 _url8 = url8;
244 }
245
246 public void setUrl9(String url9) {
247 _url9 = url9;
248 }
249
250 public void setBackURL(String backURL) {
251 _backURL = backURL;
252 }
253
254 public boolean isRefresh() {
255 return _refresh;
256 }
257
258 public void setRefresh(boolean refresh) {
259 _refresh = refresh;
260 }
261
262 public String getSectionName() {
263 if (_names.length > _namesPos) {
264 return _names[_namesPos];
265 }
266 else {
267 return StringPool.BLANK;
268 }
269 }
270
271 public boolean getSectionSelected() {
272 if ((_names.length == 0) ||
273 ((_names.length > _namesPos) &&
274 (_names[_namesPos].equals(_value)))) {
275
276 return true;
277 }
278 else {
279 return false;
280 }
281 }
282
283 public void incrementSection() {
284 _namesPos++;
285 }
286
287 private static final String _START_PAGE = "/html/taglib/ui/tabs/start.jsp";
288
289 private static final String _END_PAGE = "/html/taglib/ui/tabs/end.jsp";
290
291 private String _startPage;
292 private String _endPage;
293 private String[] _names;
294 private int _namesPos;
295 private String[] _tabsValues;
296 private String _formName;
297 private String _param = "tabs1";
298 private String _value;
299 private PortletURL _portletURL;
300 private String _url;
301 private String _url0;
302 private String _url1;
303 private String _url2;
304 private String _url3;
305 private String _url4;
306 private String _url5;
307 private String _url6;
308 private String _url7;
309 private String _url8;
310 private String _url9;
311 private String _backURL;
312 private boolean _refresh = true;
313
314 }