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
031 import javax.servlet.http.HttpServletRequest;
032
033
036 public class UserPortraitTag extends IncludeTag {
037
038 public void setCssClass(String cssClass) {
039 _cssClass = cssClass;
040 }
041
042 public void setImageCssClass(String imageCssClass) {
043 _imageCssClass = imageCssClass;
044 }
045
046 public void setUserId(long userId) {
047 _userId = userId;
048 }
049
050 public void setUserName(String userName) {
051 _userName = userName;
052 }
053
054 @Override
055 protected void cleanUp() {
056 _cssClass = StringPool.BLANK;
057 _imageCssClass = StringPool.BLANK;
058 _userId = 0;
059 _userName = StringPool.BLANK;
060 }
061
062 protected String getColorCssClass() {
063 String colorCssClass = "user-icon-defaul";
064
065 User user = getUser();
066
067 if (user != null) {
068 colorCssClass =
069 "user-icon-color-" + (Math.abs(user.getUserId()) % 10);
070 }
071
072 return colorCssClass;
073 }
074
075 @Override
076 protected String getPage() {
077 return _PAGE;
078 }
079
080 protected User getUser() {
081 return UserLocalServiceUtil.fetchUser(_userId);
082 }
083
084 protected String getUserInitials(User user) {
085 String userName = _userName;
086
087 if (Validator.isNull(userName)) {
088 if (user != null) {
089 userName = user.getFullName();
090 }
091 else {
092 userName = LanguageUtil.get(request, "user");
093 }
094 }
095
096 String[] userNames = StringUtil.split(userName, StringPool.SPACE);
097
098 StringBundler sb = new StringBundler(userNames.length);
099
100 for (String curUserName : userNames) {
101 sb.append(
102 StringUtil.toUpperCase(StringUtil.shorten(curUserName, 1)));
103 }
104
105 return sb.toString();
106 }
107
108 @Override
109 protected boolean isCleanUpSetAttributes() {
110 return true;
111 }
112
113 @Override
114 protected void setAttributes(HttpServletRequest request) {
115 request.setAttribute(
116 "liferay-ui:user-portrait:colorCssClass", getColorCssClass());
117 request.setAttribute("liferay-ui:user-portrait:cssClass", _cssClass);
118 request.setAttribute(
119 "liferay-ui:user-portrait:imageCssClass", _imageCssClass);
120
121 User user = getUser();
122
123 if ((user != null) && (user.getPortraitId() > 0)) {
124 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
125 WebKeys.THEME_DISPLAY);
126
127 try {
128 request.setAttribute(
129 "liferay-ui:user-portrait:portraitURL",
130 user.getPortraitURL(themeDisplay));
131 }
132 catch (PortalException pe) {
133 _log.error(pe);
134 }
135 }
136
137 request.setAttribute("liferay-ui:user-portrait:user", user);
138 request.setAttribute(
139 "liferay-ui:user-portrait:userInitials", getUserInitials(user));
140 request.setAttribute("liferay-ui:user-portrait:userName", _userName);
141 }
142
143 private static final String _PAGE =
144 "/html/taglib/ui/user_portrait/page.jsp";
145
146 private static final Log _log = LogFactoryUtil.getLog(
147 UserPortraitTag.class);
148
149 private String _cssClass;
150 private String _imageCssClass;
151 private long _userId;
152 private String _userName;
153
154 }