001
014
015 package com.liferay.taglib.ui;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.language.LanguageUtil;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.util.StringBundler;
022 import com.liferay.portal.kernel.util.StringPool;
023 import com.liferay.portal.kernel.util.StringUtil;
024 import com.liferay.portal.kernel.util.Validator;
025 import com.liferay.portal.kernel.util.WebKeys;
026 import com.liferay.portal.model.User;
027 import com.liferay.portal.service.UserLocalServiceUtil;
028 import com.liferay.portal.theme.ThemeDisplay;
029 import com.liferay.taglib.util.IncludeTag;
030 import com.liferay.taglib.util.LexiconUtil;
031
032 import javax.servlet.http.HttpServletRequest;
033
034
037 public class UserPortraitTag extends IncludeTag {
038
039 public void setCssClass(String cssClass) {
040 _cssClass = cssClass;
041 }
042
043 public void setImageCssClass(String imageCssClass) {
044 _imageCssClass = imageCssClass;
045 }
046
047 public void setUserId(long userId) {
048 _userId = userId;
049 }
050
051 public void setUserName(String userName) {
052 _userName = userName;
053 }
054
055 @Override
056 protected void cleanUp() {
057 _cssClass = StringPool.BLANK;
058 _imageCssClass = StringPool.BLANK;
059 _userId = 0;
060 _userName = StringPool.BLANK;
061 }
062
063 @Override
064 protected String getPage() {
065 return _PAGE;
066 }
067
068 protected User getUser() {
069 return UserLocalServiceUtil.fetchUser(_userId);
070 }
071
072 protected String getUserInitials(User user) {
073 if (Validator.isNull(_userName) && (user != null)) {
074 return user.getInitials();
075 }
076
077 String userName = _userName;
078
079 if (Validator.isNull(userName)) {
080 userName = LanguageUtil.get(request, "user");
081 }
082
083 String[] userNames = StringUtil.split(userName, StringPool.SPACE);
084
085 StringBundler sb = new StringBundler(userNames.length);
086
087 for (String curUserName : userNames) {
088 sb.append(
089 StringUtil.toUpperCase(StringUtil.shorten(curUserName, 1)));
090 }
091
092 return sb.toString();
093 }
094
095 @Override
096 protected boolean isCleanUpSetAttributes() {
097 return true;
098 }
099
100 @Override
101 protected void setAttributes(HttpServletRequest request) {
102 request.setAttribute(
103 "liferay-ui:user-portrait:colorCssClass",
104 LexiconUtil.getUserColorCssClass(getUser()));
105 request.setAttribute("liferay-ui:user-portrait:cssClass", _cssClass);
106 request.setAttribute(
107 "liferay-ui:user-portrait:imageCssClass", _imageCssClass);
108
109 User user = getUser();
110
111 if ((user != null) && (user.getPortraitId() > 0)) {
112 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
113 WebKeys.THEME_DISPLAY);
114
115 try {
116 request.setAttribute(
117 "liferay-ui:user-portrait:portraitURL",
118 user.getPortraitURL(themeDisplay));
119 }
120 catch (PortalException pe) {
121 _log.error(pe);
122 }
123 }
124
125 request.setAttribute("liferay-ui:user-portrait:user", user);
126 request.setAttribute(
127 "liferay-ui:user-portrait:userInitials", getUserInitials(user));
128 request.setAttribute("liferay-ui:user-portrait:userName", _userName);
129 }
130
131 private static final String _PAGE =
132 "/html/taglib/ui/user_portrait/page.jsp";
133
134 private static final Log _log = LogFactoryUtil.getLog(
135 UserPortraitTag.class);
136
137 private String _cssClass;
138 private String _imageCssClass;
139 private long _userId;
140 private String _userName;
141
142 }