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