/**
* 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.model.User;
import com.liferay.portal.kernel.service.UserLocalServiceUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.taglib.util.PortalIncludeUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* @author Brian Wing Shun Chan
*/
public class UserDisplayTag extends TagSupport {
@Override
public int doEndTag() throws JspException {
try {
PortalIncludeUtil.include(pageContext, getEndPage());
HttpServletRequest request =
(HttpServletRequest)pageContext.getRequest();
request.removeAttribute("liferay-ui:user-display:url");
return EVAL_PAGE;
}
catch (Exception e) {
throw new JspException(e);
}
}
@Override
public int doStartTag() throws JspException {
try {
HttpServletRequest request =
(HttpServletRequest)pageContext.getRequest();
request.setAttribute(
"liferay-ui:user-display:author", String.valueOf(_author));
request.setAttribute(
"liferay-ui:user-display:displayStyle",
String.valueOf(_displayStyle));
if (Validator.isNull(_imageCssClass)) {
_imageCssClass = "img-circle";
}
request.setAttribute(
"liferay-ui:user-display:imageCssClass", _imageCssClass);
request.setAttribute(
"liferay-ui:user-display:showLink", String.valueOf(_showLink));
request.setAttribute(
"liferay-ui:user-display:showUserDetails",
String.valueOf(_showUserDetails));
request.setAttribute(
"liferay-ui:user-display:showUserName",
String.valueOf(_showUserName));
if (Validator.isNull(_userIconCssClass)) {
_userIconCssClass = "user-icon-lg";
}
request.setAttribute(
"liferay-ui:user-display:userIconCssClass",
String.valueOf(_userIconCssClass));
request.setAttribute(
"liferay-ui:user-display:userId", String.valueOf(_userId));
request.setAttribute("liferay-ui:user-display:userName", _userName);
User user = UserLocalServiceUtil.fetchUserById(_userId);
if (user != null) {
if (user.isDefaultUser()) {
user = null;
}
request.setAttribute("liferay-ui:user-display:user", user);
pageContext.setAttribute("userDisplay", user);
}
else {
request.removeAttribute("liferay-ui:user-display:user");
pageContext.removeAttribute("userDisplay");
}
request.setAttribute("liferay-ui:user-display:url", _url);
PortalIncludeUtil.include(pageContext, getStartPage());
if (user != null) {
return EVAL_BODY_INCLUDE;
}
else {
return SKIP_BODY;
}
}
catch (Exception e) {
throw new JspException(e);
}
}
public void setAuthor(boolean author) {
_author = author;
}
public void setDisplayStyle(Object displayStyle) {
_displayStyle = GetterUtil.getInteger(displayStyle);
}
public void setEndPage(String endPage) {
_endPage = endPage;
}
public void setImageCssClass(String imageCssClass) {
_imageCssClass = imageCssClass;
}
public void setMarkupView(String markupView) {
_markupView = markupView;
}
public void setShowLink(boolean showLink) {
_showLink = showLink;
}
public void setShowUserDetails(boolean showUserDetails) {
_showUserDetails = showUserDetails;
}
public void setShowUserName(boolean showUserName) {
_showUserName = showUserName;
}
public void setStartPage(String startPage) {
_startPage = startPage;
}
public void setUrl(String url) {
_url = url;
}
public void setUserIconCssClass(String userIconCssClass) {
_userIconCssClass = userIconCssClass;
}
public void setUserId(long userId) {
_userId = userId;
}
public void setUserName(String userName) {
_userName = userName;
}
protected String getEndPage() {
if (Validator.isNotNull(_endPage)) {
return _endPage;
}
if (Validator.isNotNull(_markupView)) {
return "/html/taglib/ui/user_display/" + _markupView + "/end.jsp";
}
return "/html/taglib/ui/user_display/end.jsp";
}
protected String getStartPage() {
if (Validator.isNotNull(_startPage)) {
return _startPage;
}
if (Validator.isNotNull(_markupView)) {
return "/html/taglib/ui/user_display/" + _markupView + "/start.jsp";
}
return "/html/taglib/ui/user_display/start.jsp";
}
private boolean _author;
private int _displayStyle = 1;
private String _endPage;
private String _imageCssClass;
private String _markupView;
private boolean _showLink = true;
private boolean _showUserDetails = true;
private boolean _showUserName = true;
private String _startPage;
private String _url;
private String _userIconCssClass;
private long _userId;
private String _userName;
}