1
14
15 package com.liferay.taglib.ui;
16
17 import com.liferay.portal.kernel.servlet.PipingServletResponse;
18 import com.liferay.portal.kernel.util.DeterminateKeyGenerator;
19 import com.liferay.portal.kernel.util.StringPool;
20 import com.liferay.portal.kernel.util.Validator;
21 import com.liferay.portal.kernel.util.WebKeys;
22 import com.liferay.portal.theme.ThemeDisplay;
23 import com.liferay.portal.util.SessionClicks;
24 import com.liferay.taglib.util.IncludeTag;
25
26 import javax.servlet.RequestDispatcher;
27 import javax.servlet.ServletContext;
28 import javax.servlet.http.HttpServletRequest;
29 import javax.servlet.http.HttpServletResponse;
30 import javax.servlet.jsp.JspException;
31
32
37 public class ToggleTag extends IncludeTag {
38
39 public static void doTag(
40 String id, String showImage, String hideImage, String showMessage,
41 String hideMessage, boolean defaultShowContent, String stateVar,
42 ServletContext servletContext, HttpServletRequest request,
43 HttpServletResponse response)
44 throws Exception {
45
46 doTag(
47 _PAGE, id, showImage, hideImage, showMessage, hideMessage,
48 defaultShowContent, stateVar, servletContext, request, response);
49 }
50
51 public static void doTag(
52 String page, String id, String showImage, String hideImage,
53 String showMessage, String hideMessage, boolean defaultShowContent,
54 String stateVar, ServletContext servletContext,
55 HttpServletRequest request, HttpServletResponse response)
56 throws Exception {
57
58 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
59 WebKeys.THEME_DISPLAY);
60
61 if (Validator.isNull(showImage) && Validator.isNull(showMessage)) {
62 showImage =
63 themeDisplay.getPathThemeImages() + "/arrows/01_down.png";
64 }
65
66 if (Validator.isNull(hideImage) && Validator.isNull(hideImage)) {
67 hideImage =
68 themeDisplay.getPathThemeImages() + "/arrows/01_right.png";
69 }
70
71 String defaultStateValue =
72 defaultShowContent ? StringPool.BLANK : "none";
73 String defaultImage = defaultShowContent ? hideImage : showImage;
74 String defaultMessage = defaultShowContent ? hideMessage : showMessage;
75
76 String clickValue = SessionClicks.get(request, id, null);
77
78 if (defaultShowContent) {
79 if ((clickValue != null) && (clickValue.equals("none"))) {
80 defaultStateValue = "none";
81 defaultImage = showImage;
82 defaultMessage = showMessage;
83 }
84 else {
85 defaultStateValue = "";
86 defaultImage = hideImage;
87 defaultMessage = hideMessage;
88 }
89 }
90 else {
91 if ((clickValue == null) || (clickValue.equals("none"))) {
92 defaultStateValue = "none";
93 defaultImage = showImage;
94 defaultMessage = showMessage;
95 }
96 else {
97 defaultStateValue = "";
98 defaultImage = hideImage;
99 defaultMessage = hideMessage;
100 }
101 }
102
103 if (stateVar == null) {
104 stateVar = DeterminateKeyGenerator.generate(
105 ToggleTag.class.getName());
106 }
107
108 request.setAttribute("liferay-ui:toggle:id", id);
109 request.setAttribute("liferay-ui:toggle:showImage", showImage);
110 request.setAttribute("liferay-ui:toggle:hideImage", hideImage);
111 request.setAttribute("liferay-ui:toggle:showMessage", showMessage);
112 request.setAttribute("liferay-ui:toggle:hideMessage", hideMessage);
113 request.setAttribute("liferay-ui:toggle:stateVar", stateVar);
114 request.setAttribute(
115 "liferay-ui:toggle:defaultStateValue", defaultStateValue);
116 request.setAttribute("liferay-ui:toggle:defaultImage", defaultImage);
117 request.setAttribute(
118 "liferay-ui:toggle:defaultMessage", defaultMessage);
119
120 RequestDispatcher requestDispatcher =
121 servletContext.getRequestDispatcher(page);
122
123 requestDispatcher.include(request, response);
124 }
125
126 public int doEndTag() throws JspException {
127 try {
128 ServletContext servletContext = getServletContext();
129 HttpServletRequest request = getServletRequest();
130
131 doTag(
132 getPage(), _id, _showImage, _hideImage, _showMessage,
133 _hideMessage, _defaultShowContent, _stateVar, servletContext,
134 request, new PipingServletResponse(pageContext));
135
136 return EVAL_PAGE;
137 }
138 catch (Exception e) {
139 throw new JspException(e);
140 }
141 }
142
143 public void setId(String id) {
144 _id = id;
145 }
146
147 public void setShowImage(String showImage) {
148 _showImage = showImage;
149 }
150
151 public void setHideImage(String hideImage) {
152 _hideImage = hideImage;
153 }
154
155 public void setShowMessage(String showMessage) {
156 _showMessage = showMessage;
157 }
158
159 public void setHideMessage(String hideMessage) {
160 _hideMessage = hideMessage;
161 }
162
163 public void setDefaultShowContent(boolean defaultShowContent) {
164 _defaultShowContent = defaultShowContent;
165 }
166
167 public void setStateVar(String stateVar) {
168 _stateVar = stateVar;
169 }
170
171 protected String getPage() {
172 return _PAGE;
173 }
174
175 private static final String _PAGE = "/html/taglib/ui/toggle/page.jsp";
176
177 private String _id;
178 private String _showImage;
179 private String _hideImage;
180 private String _showMessage;
181 private String _hideMessage;
182 private boolean _defaultShowContent = true;
183 private String _stateVar;
184
185 }