001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.taglib.ui;
016    
017    import com.liferay.portal.kernel.util.GetterUtil;
018    import com.liferay.portal.kernel.util.Validator;
019    import com.liferay.portal.model.User;
020    import com.liferay.portal.service.UserLocalServiceUtil;
021    import com.liferay.taglib.util.PortalIncludeUtil;
022    
023    import javax.servlet.http.HttpServletRequest;
024    import javax.servlet.jsp.JspException;
025    import javax.servlet.jsp.tagext.TagSupport;
026    
027    /**
028     * @author Brian Wing Shun Chan
029     */
030    public class UserDisplayTag extends TagSupport {
031    
032            @Override
033            public int doEndTag() throws JspException {
034                    try {
035                            PortalIncludeUtil.include(pageContext, getEndPage());
036    
037                            HttpServletRequest request =
038                                    (HttpServletRequest)pageContext.getRequest();
039    
040                            request.removeAttribute("liferay-ui:user-display:url");
041    
042                            return EVAL_PAGE;
043                    }
044                    catch (Exception e) {
045                            throw new JspException(e);
046                    }
047            }
048    
049            @Override
050            public int doStartTag() throws JspException {
051                    try {
052                            HttpServletRequest request =
053                                    (HttpServletRequest)pageContext.getRequest();
054    
055                            request.setAttribute(
056                                    "liferay-ui:user-display:author", String.valueOf(_author));
057                            request.setAttribute(
058                                    "liferay-ui:user-display:displayStyle",
059                                    String.valueOf(_displayStyle));
060    
061                            if (Validator.isNull(_imageCssClass)) {
062                                    _imageCssClass = "img-circle";
063                            }
064    
065                            request.setAttribute(
066                                    "liferay-ui:user-display:imageCssClass", _imageCssClass);
067    
068                            request.setAttribute(
069                                    "liferay-ui:user-display:showUserDetails",
070                                    String.valueOf(_showUserDetails));
071                            request.setAttribute(
072                                    "liferay-ui:user-display:showUserName",
073                                    String.valueOf(_showUserName));
074                            request.setAttribute(
075                                    "liferay-ui:user-display:user-id", String.valueOf(_userId));
076                            request.setAttribute(
077                                    "liferay-ui:user-display:user-name", _userName);
078    
079                            User user = UserLocalServiceUtil.fetchUserById(_userId);
080    
081                            if (user != null) {
082                                    if (user.isDefaultUser()) {
083                                            user = null;
084                                    }
085    
086                                    request.setAttribute("liferay-ui:user-display:user", user);
087    
088                                    pageContext.setAttribute("userDisplay", user);
089                            }
090                            else {
091                                    request.removeAttribute("liferay-ui:user-display:user");
092    
093                                    pageContext.removeAttribute("userDisplay");
094                            }
095    
096                            request.setAttribute("liferay-ui:user-display:url", _url);
097    
098                            PortalIncludeUtil.include(pageContext, getStartPage());
099    
100                            if (user != null) {
101                                    return EVAL_BODY_INCLUDE;
102                            }
103                            else {
104                                    return SKIP_BODY;
105                            }
106                    }
107                    catch (Exception e) {
108                            throw new JspException(e);
109                    }
110            }
111    
112            public void setAuthor(boolean author) {
113                    _author = author;
114            }
115    
116            public void setDisplayStyle(Object displayStyle) {
117                    _displayStyle = GetterUtil.getInteger(displayStyle);
118            }
119    
120            public void setEndPage(String endPage) {
121                    _endPage = endPage;
122            }
123    
124            public void setImageCssClass(String imageCssClass) {
125                    _imageCssClass = imageCssClass;
126            }
127    
128            public void setShowUserDetails(boolean showUserDetails) {
129                    _showUserDetails = showUserDetails;
130            }
131    
132            public void setShowUserName(boolean showUserName) {
133                    _showUserName = showUserName;
134            }
135    
136            public void setStartPage(String startPage) {
137                    _startPage = startPage;
138            }
139    
140            public void setUrl(String url) {
141                    _url = url;
142            }
143    
144            public void setUserId(long userId) {
145                    _userId = userId;
146            }
147    
148            public void setUserName(String userName) {
149                    _userName = userName;
150            }
151    
152            protected String getEndPage() {
153                    if (Validator.isNull(_endPage)) {
154                            return _END_PAGE;
155                    }
156                    else {
157                            return _endPage;
158                    }
159            }
160    
161            protected String getStartPage() {
162                    if (Validator.isNull(_startPage)) {
163                            return _START_PAGE;
164                    }
165                    else {
166                            return _startPage;
167                    }
168            }
169    
170            private static final String _END_PAGE =
171                    "/html/taglib/ui/user_display/end.jsp";
172    
173            private static final String _START_PAGE =
174                    "/html/taglib/ui/user_display/start.jsp";
175    
176            private boolean _author;
177            private int _displayStyle = 1;
178            private String _endPage;
179            private String _imageCssClass;
180            private boolean _showUserDetails = true;
181            private boolean _showUserName = true;
182            private String _startPage;
183            private String _url;
184            private long _userId;
185            private String _userName;
186    
187    }