/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.taglib.ui;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.ServerDetector;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.kernel.util.StringUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.taglib.util.IncludeTag;
import com.liferay.util.JS;
import javax.portlet.PortletURL;
import javax.servlet.jsp.JspException;
/**
* @author Brian Wing Shun Chan
*/
public class TabsTag extends IncludeTag {
@Override
public int doEndTag() throws JspException {
try {
request.setAttribute("liferay-ui:tabs:namesJS", _namesJS);
request.setAttribute("liferay-ui:tabs:param", _param);
request.setAttribute("liferay-ui:tabs:value", _value);
include(getEndPage(), false);
request.removeAttribute("liferay-ui:tabs:backLabel");
request.removeAttribute("liferay-ui:tabs:backURL");
request.removeAttribute("liferay-ui:tabs:cssClass");
request.removeAttribute("liferay-ui:tabs:formName");
request.removeAttribute("liferay-ui:tabs:names");
request.removeAttribute("liferay-ui:tabs:namesJS");
request.removeAttribute("liferay-ui:tabs:onClick");
request.removeAttribute("liferay-ui:tabs:param");
request.removeAttribute("liferay-ui:tabs:portletURL");
request.removeAttribute("liferay-ui:tabs:refresh");
request.removeAttribute("liferay-ui:tabs:type");
request.removeAttribute("liferay-ui:tabs:url");
request.removeAttribute("liferay-ui:tabs:urls");
request.removeAttribute("liferay-ui:tabs:value");
request.removeAttribute("liferay-ui:tabs:values");
return EVAL_PAGE;
}
catch (Exception e) {
throw new JspException(e);
}
finally {
if (!ServerDetector.isResin()) {
_backLabel = null;
_backURL = null;
_cssClass = StringPool.BLANK;
_endPage = null;
_formName = StringPool.BLANK;
_names = null;
_namesJS = null;
_namesPos = 0;
_onClick = null;
_param = "tabs1";
_portletURL = null;
_refresh = true;
_startPage = null;
_tabsValues = null;
_type = null;
_url = null;
_url0 = null;
_url1 = null;
_url2 = null;
_url3 = null;
_url4 = null;
_url5 = null;
_url6 = null;
_url7 = null;
_url8 = null;
_url9 = null;
_urls = null;
_value = null;
}
}
}
@Override
public int doStartTag() throws JspException {
try {
request.setAttribute("liferay-ui:tabs:backLabel", _backLabel);
request.setAttribute("liferay-ui:tabs:backURL", _backURL);
request.setAttribute("liferay-ui:tabs:cssClass", _cssClass);
request.setAttribute("liferay-ui:tabs:formName", _formName);
request.setAttribute("liferay-ui:tabs:names", _names);
_namesJS = JS.toScript(_names);
request.setAttribute("liferay-ui:tabs:namesJS", _namesJS);
request.setAttribute(
"liferay-ui:tabs:onClick", String.valueOf(_onClick));
request.setAttribute("liferay-ui:tabs:param", _param);
request.setAttribute("liferay-ui:tabs:portletURL", _portletURL);
request.setAttribute(
"liferay-ui:tabs:refresh", String.valueOf(_refresh));
if ((_tabsValues == null) || (_tabsValues.length < _names.length)) {
_tabsValues = _names;
}
request.setAttribute("liferay-ui:tabs:values", _tabsValues);
request.setAttribute("liferay-ui:tabs:type", _type);
request.setAttribute("liferay-ui:tabs:url", _url);
if ((_urls == null) &&
((_url0 != null) || (_url1 != null) || (_url2 != null) ||
(_url3 != null) || (_url4 != null) || (_url5 != null) ||
(_url6 != null) || (_url7 != null) || (_url8 != null) ||
(_url9 != null))) {
_urls = new String[10];
if (_url0 != null) {
_urls[0] = _url0;
}
if (_url1 != null) {
_urls[1] = _url1;
}
if (_url2 != null) {
_urls[2] = _url2;
}
if (_url3 != null) {
_urls[3] = _url3;
}
if (_url4 != null) {
_urls[4] = _url4;
}
if (_url5 != null) {
_urls[5] = _url5;
}
if (_url6 != null) {
_urls[6] = _url6;
}
if (_url7 != null) {
_urls[7] = _url7;
}
if (_url8 != null) {
_urls[8] = _url8;
}
if (_url9 != null) {
_urls[9] = _url9;
}
}
request.setAttribute("liferay-ui:tabs:urls", _urls);
if (_value == null) {
if (_tabsValues.length > 0) {
_value = ParamUtil.getString(
request, _param, _tabsValues[0]);
}
}
if (Validator.isNull(_value)) {
if (_tabsValues.length > 0) {
_value = _tabsValues[0];
}
else {
_value = StringPool.BLANK;
}
}
if (!ArrayUtil.contains(_tabsValues, _value)) {
if (_tabsValues.length > 0) {
_value = _tabsValues[0];
}
else {
_value = StringPool.BLANK;
}
}
if (_value == null) {
_value = ParamUtil.getString(request, _param, _tabsValues[0]);
}
request.setAttribute("liferay-ui:tabs:value", _value);
include(getStartPage(), true);
return EVAL_BODY_INCLUDE;
}
catch (Exception e) {
throw new JspException(e);
}
}
public String getOnClick() {
return _onClick;
}
public String getParam() {
return _param;
}
public String getSectionName() {
if (_names.length > _namesPos) {
return _names[_namesPos];
}
else {
return StringPool.BLANK;
}
}
public boolean getSectionSelected() {
if ((_names.length == 0) ||
((_names.length > _namesPos) && _names[_namesPos].equals(_value))) {
return true;
}
else {
return false;
}
}
public void incrementSection() {
_namesPos++;
}
public boolean isRefresh() {
return _refresh;
}
public void setBackLabel(String backLabel) {
_backLabel = backLabel;
}
public void setBackURL(String backURL) {
_backURL = backURL;
}
public void setCssClass(String cssClass) {
_cssClass = cssClass;
}
public void setEndPage(String endPage) {
_endPage = endPage;
}
public void setFormName(String formName) {
_formName = formName;
}
public void setNames(String names) {
_names = StringUtil.split(names);
}
public void setOnClick(String onClick) {
_onClick = onClick;
}
public void setParam(String param) {
_param = param;
}
public void setPortletURL(PortletURL portletURL) {
_portletURL = portletURL;
}
public void setRefresh(boolean refresh) {
_refresh = refresh;
}
public void setStartPage(String startPage) {
_startPage = startPage;
}
public void setTabsValues(String tabsValues) {
_tabsValues = StringUtil.split(tabsValues);
}
public void setType(String type) {
_type = type;
}
public void setUrl(String url) {
_url = url;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl0(String url0) {
_url0 = url0;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl1(String url1) {
_url1 = url1;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl2(String url2) {
_url2 = url2;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl3(String url3) {
_url3 = url3;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl4(String url4) {
_url4 = url4;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl5(String url5) {
_url5 = url5;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl6(String url6) {
_url6 = url6;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl7(String url7) {
_url7 = url7;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl8(String url8) {
_url8 = url8;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #setUrls(String[])}
*/
@Deprecated
public void setUrl9(String url9) {
_url9 = url9;
}
public void setUrls(String[] urls) {
_urls = urls;
}
public void setValue(String value) {
_value = value;
}
@Override
protected String getEndPage() {
if (Validator.isNull(_endPage)) {
return _END_PAGE;
}
else {
return _endPage;
}
}
@Override
protected String getStartPage() {
if (Validator.isNull(_startPage)) {
return _START_PAGE;
}
else {
return _startPage;
}
}
private static final String _END_PAGE = "/html/taglib/ui/tabs/end.jsp";
private static final String _START_PAGE = "/html/taglib/ui/tabs/start.jsp";
private String _backLabel;
private String _backURL;
private String _cssClass;
private String _endPage;
private String _formName;
private String[] _names;
private String _namesJS;
private int _namesPos;
private String _onClick;
private String _param = "tabs1";
private PortletURL _portletURL;
private boolean _refresh = true;
private String _startPage;
private String[] _tabsValues;
private String _type;
private String _url;
private String _url0;
private String _url1;
private String _url2;
private String _url3;
private String _url4;
private String _url5;
private String _url6;
private String _url7;
private String _url8;
private String _url9;
private String[] _urls;
private String _value;
}