001
014
015 package com.liferay.taglib.ui;
016
017 import com.liferay.portal.kernel.util.FriendlyURLNormalizerUtil;
018 import com.liferay.portal.kernel.util.JavaConstants;
019 import com.liferay.portal.kernel.util.StringPool;
020 import com.liferay.portal.kernel.util.Validator;
021 import com.liferay.portal.util.PortalUtil;
022 import com.liferay.taglib.util.IncludeTag;
023
024 import java.util.Map;
025
026 import javax.portlet.PortletResponse;
027
028 import javax.servlet.http.HttpServletRequest;
029
030
033 public class IconTag extends IncludeTag {
034
035 @Override
036 public int doStartTag() {
037 return EVAL_BODY_INCLUDE;
038 }
039
040 public void setAlt(String alt) {
041 _alt = alt;
042 }
043
044 public void setCssClass(String cssClass) {
045 _cssClass = cssClass;
046 }
047
048 public void setData(Map<String, Object> data) {
049 _data = data;
050 }
051
052 public void setId(String id) {
053 _id = id;
054 }
055
056 public void setImage(String image) {
057 _image = image;
058 }
059
060 public void setImageHover(String imageHover) {
061 _imageHover = imageHover;
062 }
063
064 public void setLabel(boolean label) {
065 _label = label;
066 }
067
068 public void setLang(String lang) {
069 _lang = lang;
070 }
071
072 public void setLinkCssClass(String linkCssClass) {
073 _linkCssClass = linkCssClass;
074 }
075
076 public void setLocalizeMessage(boolean localizeMessage) {
077 _localizeMessage = localizeMessage;
078 }
079
080 public void setMessage(String message) {
081 _message = message;
082 }
083
084 public void setMethod(String method) {
085 _method = method;
086 }
087
088 public void setOnClick(String onClick) {
089 _onClick = onClick;
090 }
091
092 public void setSrc(String src) {
093 _src = src;
094 }
095
096 public void setSrcHover(String srcHover) {
097 _srcHover = srcHover;
098 }
099
100 public void setTarget(String target) {
101 _target = target;
102 }
103
104 public void setToolTip(boolean toolTip) {
105 _toolTip = toolTip;
106 }
107
108 public void setUrl(String url) {
109 _url = url;
110 }
111
112 public void setUseDialog(boolean useDialog) {
113 _useDialog = useDialog;
114 }
115
116 @Override
117 protected void cleanUp() {
118 _alt = null;
119 _cssClass = null;
120 _data = null;
121 _id = null;
122 _image = null;
123 _imageHover = null;
124 _label = false;
125 _lang = null;
126 _linkCssClass = null;
127 _localizeMessage = true;
128 _message = null;
129 _method = null;
130 _onClick = null;
131 _src = null;
132 _srcHover = null;
133 _target = null;
134 _toolTip = false;
135 _url = null;
136 _useDialog = false;
137 }
138
139 protected String getImage() {
140 return _image;
141 }
142
143 protected String getMessage() {
144 return _message;
145 }
146
147 @Override
148 protected String getPage() {
149 return _PAGE;
150 }
151
152 protected String getUrl() {
153 return _url;
154 }
155
156 @Override
157 protected boolean isCleanUpSetAttributes() {
158 return _CLEAN_UP_SET_ATTRIBUTES;
159 }
160
161 @Override
162 protected void setAttributes(HttpServletRequest request) {
163 String id = _id;
164
165 if (Validator.isNull(id)) {
166 id = (String)request.getAttribute("liferay-ui:icon-menu:id");
167
168 String message = _message;
169
170 if (Validator.isNull(message)) {
171 message = _image;
172 }
173
174 if (Validator.isNotNull(id) && Validator.isNotNull(message)) {
175 id = id.concat(StringPool.UNDERLINE).concat(
176 FriendlyURLNormalizerUtil.normalize(message));
177
178 PortletResponse portletResponse =
179 (PortletResponse)request.getAttribute(
180 JavaConstants.JAVAX_PORTLET_RESPONSE);
181
182 String namespace = StringPool.BLANK;
183
184 if (portletResponse != null) {
185 namespace = portletResponse.getNamespace();
186 }
187
188 id = PortalUtil.getUniqueElementId(
189 getOriginalServletRequest(), namespace, id);
190 }
191 else {
192 id = PortalUtil.generateRandomKey(
193 request, IconTag.class.getName());
194 }
195 }
196
197 request.setAttribute("liferay-ui:icon:alt", _alt);
198 request.setAttribute("liferay-ui:icon:cssClass", _cssClass);
199 request.setAttribute("liferay-ui:icon:data", _data);
200 request.setAttribute("liferay-ui:icon:id", id);
201 request.setAttribute("liferay-ui:icon:image", _image);
202 request.setAttribute("liferay-ui:icon:imageHover", _imageHover);
203 request.setAttribute("liferay-ui:icon:label", String.valueOf(_label));
204 request.setAttribute("liferay-ui:icon:lang", _lang);
205 request.setAttribute("liferay-ui:icon:linkCssClass", _linkCssClass);
206 request.setAttribute(
207 "liferay-ui:icon:localizeMessage",
208 String.valueOf(_localizeMessage));
209 request.setAttribute("liferay-ui:icon:message", _message);
210 request.setAttribute("liferay-ui:icon:method", _method);
211 request.setAttribute("liferay-ui:icon:onClick", _onClick);
212 request.setAttribute("liferay-ui:icon:src", _src);
213 request.setAttribute("liferay-ui:icon:srcHover", _srcHover);
214 request.setAttribute("liferay-ui:icon:target", _target);
215 request.setAttribute(
216 "liferay-ui:icon:toolTip", String.valueOf(_toolTip));
217 request.setAttribute("liferay-ui:icon:url", _url);
218 request.setAttribute(
219 "liferay-ui:icon:useDialog", String.valueOf(_useDialog));
220 }
221
222 private static final boolean _CLEAN_UP_SET_ATTRIBUTES = true;
223
224 private static final String _PAGE = "/html/taglib/ui/icon/page.jsp";
225
226 private String _alt;
227 private String _cssClass;
228 private Map<String, Object> _data;
229 private String _id;
230 private String _image;
231 private String _imageHover;
232 private boolean _label;
233 private String _lang;
234 private String _linkCssClass;
235 private boolean _localizeMessage = true;
236 private String _message;
237 private String _method;
238 private String _onClick;
239 private String _src;
240 private String _srcHover;
241 private String _target = "_self";
242 private boolean _toolTip;
243 private String _url;
244 private boolean _useDialog = false;
245
246 }