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