001    /**
002     * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
013     */
014    
015    package com.liferay.taglib.ui;
016    
017    import com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil;
018    import com.liferay.portal.kernel.util.StringPool;
019    import com.liferay.portal.kernel.util.Validator;
020    import com.liferay.portal.util.PortalUtil;
021    import com.liferay.taglib.util.IncludeTag;
022    
023    import java.util.Map;
024    
025    import javax.servlet.http.HttpServletRequest;
026    
027    /**
028     * @author Brian Wing Shun Chan
029     */
030    public class IconTag extends IncludeTag {
031    
032            @Override
033            public int doStartTag() {
034                    return EVAL_BODY_INCLUDE;
035            }
036    
037            public void setAlt(String alt) {
038                    _alt = alt;
039            }
040    
041            public void setCssClass(String cssClass) {
042                    _cssClass = cssClass;
043            }
044    
045            public void setData(Map<String, Object> data) {
046                    _data = data;
047            }
048    
049            public void setId(String id) {
050                    _id = id;
051            }
052    
053            public void setImage(String image) {
054                    _image = image;
055            }
056    
057            public void setImageHover(String imageHover) {
058                    _imageHover = imageHover;
059            }
060    
061            public void setLabel(boolean label) {
062                    _label = label;
063            }
064    
065            public void setLang(String lang) {
066                    _lang = lang;
067            }
068    
069            public void setMessage(String message) {
070                    _message = message;
071            }
072    
073            public void setMethod(String method) {
074                    _method = method;
075            }
076    
077            public void setOnClick(String onClick) {
078                    _onClick = onClick;
079            }
080    
081            public void setSrc(String src) {
082                    _src = src;
083            }
084    
085            public void setSrcHover(String srcHover) {
086                    _srcHover = srcHover;
087            }
088    
089            public void setTarget(String target) {
090                    _target = target;
091            }
092    
093            public void setToolTip(boolean toolTip) {
094                    _toolTip = toolTip;
095            }
096    
097            public void setUrl(String url) {
098                    _url = url;
099            }
100    
101            @Override
102            protected void cleanUp() {
103                    _alt = null;
104                    _cssClass = null;
105                    _data = null;
106                    _id = null;
107                    _image = null;
108                    _imageHover = null;
109                    _label = false;
110                    _lang = null;
111                    _message = null;
112                    _method = null;
113                    _onClick = null;
114                    _src = null;
115                    _srcHover = null;
116                    _target = null;
117                    _toolTip = false;
118                    _url = null;
119            }
120    
121            protected String getMessage() {
122                    return _message;
123            }
124    
125            @Override
126            protected String getPage() {
127                    return _PAGE;
128            }
129    
130            protected String getUrl() {
131                    return _url;
132            }
133    
134            @Override
135            protected boolean isCleanUpSetAttributes() {
136                    return _CLEAN_UP_SET_ATTRIBUTES;
137            }
138    
139            @Override
140            protected void setAttributes(HttpServletRequest request) {
141                    String id = _id;
142    
143                    if (Validator.isNull(id)) {
144                            id = (String)request.getAttribute("liferay-ui:icon-menu:id");
145    
146                            String message = _message;
147    
148                            if (Validator.isNull(message)) {
149                                    message = _image;
150                            }
151    
152                            if (Validator.isNotNull(id) && Validator.isNotNull(message)) {
153                                    id = id.concat(StringPool.UNDERLINE).concat(
154                                            FriendlyURLNormalizerUtil.normalize(message));
155                            }
156                            else {
157                                    id = PortalUtil.generateRandomKey(
158                                            request, IconTag.class.getName());
159                            }
160                    }
161    
162                    request.setAttribute("liferay-ui:icon:alt", _alt);
163                    request.setAttribute("liferay-ui:icon:cssClass", _cssClass);
164                    request.setAttribute("liferay-ui:icon:data", _data);
165                    request.setAttribute("liferay-ui:icon:id", id);
166                    request.setAttribute("liferay-ui:icon:image", _image);
167                    request.setAttribute("liferay-ui:icon:imageHover", _imageHover);
168                    request.setAttribute("liferay-ui:icon:label", String.valueOf(_label));
169                    request.setAttribute("liferay-ui:icon:lang", _lang);
170                    request.setAttribute("liferay-ui:icon:message", _message);
171                    request.setAttribute("liferay-ui:icon:method", _method);
172                    request.setAttribute("liferay-ui:icon:onClick", _onClick);
173                    request.setAttribute("liferay-ui:icon:src", _src);
174                    request.setAttribute("liferay-ui:icon:srcHover", _srcHover);
175                    request.setAttribute("liferay-ui:icon:target", _target);
176                    request.setAttribute(
177                            "liferay-ui:icon:toolTip", String.valueOf(_toolTip));
178                    request.setAttribute("liferay-ui:icon:url", _url);
179            }
180    
181            private static final boolean _CLEAN_UP_SET_ATTRIBUTES = true;
182    
183            private static final String _PAGE = "/html/taglib/ui/icon/page.jsp";
184    
185            private String _alt;
186            private String _cssClass;
187            private Map<String, Object> _data;
188            private String _id;
189            private String _image;
190            private String _imageHover;
191            private boolean _label;
192            private String _lang;
193            private String _message;
194            private String _method;
195            private String _onClick;
196            private String _src;
197            private String _srcHover;
198            private String _target = "_self";
199            private boolean _toolTip;
200            private String _url;
201    
202    }