1
22
23 package com.liferay.portal.servlet.taglib.ui;
24
25 import com.liferay.portal.kernel.util.StringPool;
26 import com.liferay.portal.kernel.util.Validator;
27 import com.liferay.portal.theme.ThemeDisplay;
28 import com.liferay.portal.util.SessionClicks;
29 import com.liferay.portal.util.WebKeys;
30 import com.liferay.util.PwdGenerator;
31
32 import javax.servlet.RequestDispatcher;
33 import javax.servlet.ServletContext;
34 import javax.servlet.http.HttpServletRequest;
35 import javax.servlet.http.HttpServletResponse;
36 import javax.servlet.jsp.JspException;
37
38 import org.apache.commons.logging.Log;
39 import org.apache.commons.logging.LogFactory;
40
41
47 public class ToggleTagUtil {
48
49 public static void doEndTag(
50 String page, String id, String showImage, String hideImage,
51 String showMessage, String hideMessage, boolean defaultShowContent,
52 String stateVar, ServletContext ctx, HttpServletRequest req,
53 HttpServletResponse res)
54 throws JspException {
55
56 try {
57 ThemeDisplay themeDisplay =
58 (ThemeDisplay)req.getAttribute(WebKeys.THEME_DISPLAY);
59
60 if (Validator.isNull(showImage) && Validator.isNull(showMessage)) {
61 showImage =
62 themeDisplay.getPathThemeImages() + "/arrows/01_down.png";
63 }
64
65 if (Validator.isNull(hideImage) && Validator.isNull(hideImage)) {
66 hideImage =
67 themeDisplay.getPathThemeImages() + "/arrows/01_right.png";
68 }
69
70 String defaultStateValue =
71 defaultShowContent ? StringPool.BLANK : "none";
72 String defaultImage = defaultShowContent ? hideImage : showImage;
73 String defaultMessage =
74 defaultShowContent ? hideMessage : showMessage;
75
76 String clickValue = SessionClicks.get(req, 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 = PwdGenerator.getPassword(PwdGenerator.KEY3, 8);
105 }
106
107 req.setAttribute("liferay-ui:toggle:id", id);
108 req.setAttribute("liferay-ui:toggle:showImage", showImage);
109 req.setAttribute("liferay-ui:toggle:hideImage", hideImage);
110 req.setAttribute("liferay-ui:toggle:showMessage", showMessage);
111 req.setAttribute("liferay-ui:toggle:hideMessage", hideMessage);
112 req.setAttribute("liferay-ui:toggle:stateVar", stateVar);
113 req.setAttribute(
114 "liferay-ui:toggle:defaultStateValue", defaultStateValue);
115 req.setAttribute("liferay-ui:toggle:defaultImage", defaultImage);
116 req.setAttribute(
117 "liferay-ui:toggle:defaultMessage", defaultMessage);
118
119 RequestDispatcher rd = ctx.getRequestDispatcher(page);
120
121 rd.include(req, res);
122 }
123 catch (Exception e) {
124 _log.error(e, e);
125
126 throw new JspException(e);
127 }
128 }
129
130 private static Log _log = LogFactory.getLog(ToggleTagUtil.class);
131
132 }