1
22
23 package com.liferay.portal.lastmodified;
24
25 import com.liferay.portal.kernel.servlet.BrowserSnifferUtil;
26 import com.liferay.portal.kernel.servlet.HttpHeaders;
27 import com.liferay.portal.kernel.util.ParamUtil;
28 import com.liferay.portal.model.ColorScheme;
29 import com.liferay.portal.model.Theme;
30 import com.liferay.portal.service.ThemeLocalServiceUtil;
31 import com.liferay.portal.theme.ThemeDisplay;
32 import com.liferay.portal.util.WebKeys;
33
34 import javax.servlet.http.HttpServletRequest;
35 import javax.servlet.http.HttpServletResponse;
36
37 import org.apache.struts.action.Action;
38 import org.apache.struts.action.ActionForm;
39 import org.apache.struts.action.ActionForward;
40 import org.apache.struts.action.ActionMapping;
41
42
48 public abstract class LastModifiedAction extends Action {
49
50 public ActionForward execute(
51 ActionMapping mapping, ActionForm form, HttpServletRequest request,
52 HttpServletResponse response)
53 throws Exception {
54
55 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
56 WebKeys.THEME_DISPLAY);
57
58 Theme theme = themeDisplay.getTheme();
59 ColorScheme colorScheme = themeDisplay.getColorScheme();
60
61 String themeId = ParamUtil.getString(request, "themeId");
62 String colorSchemeId = ParamUtil.getString(request, "colorSchemeId");
63
64
69 if ((theme == null) || (colorScheme == null) ||
70 (!theme.getThemeId().equals(themeId)) ||
71 (!colorScheme.getColorSchemeId().equals(colorSchemeId))) {
72
73 boolean wapTheme = BrowserSnifferUtil.is_wap(request);
74
75 theme = ThemeLocalServiceUtil.getTheme(
76 themeDisplay.getCompanyId(), themeId, wapTheme);
77 colorScheme = ThemeLocalServiceUtil.getColorScheme(
78 themeDisplay.getCompanyId(), themeId, colorSchemeId, wapTheme);
79
80 themeDisplay.setLookAndFeel(theme, colorScheme);
81
82 request.setAttribute(WebKeys.THEME, theme);
83 request.setAttribute(WebKeys.COLOR_SCHEME, colorScheme);
84 }
85
86 response.addHeader(HttpHeaders.CACHE_CONTROL, "max-age=0");
87
88 response.setDateHeader(
89 HttpHeaders.LAST_MODIFIED, System.currentTimeMillis());
90
91 return mapping.findForward("modified.jsp");
92 }
93
94 public abstract String getLastModifiedKey(HttpServletRequest request);
95
96 public abstract String getLastModifiedValue(String key);
97
98 public abstract void setLastModifiedValue(String key, String value);
99
100 }