001
014
015 package com.liferay.portlet.calendar.asset;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
018 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
019 import com.liferay.portal.kernel.util.HtmlUtil;
020 import com.liferay.portal.security.permission.ActionKeys;
021 import com.liferay.portal.security.permission.PermissionChecker;
022 import com.liferay.portal.theme.ThemeDisplay;
023 import com.liferay.portal.util.PortletKeys;
024 import com.liferay.portal.util.PropsValues;
025 import com.liferay.portal.util.WebKeys;
026 import com.liferay.portlet.asset.model.BaseAssetRenderer;
027 import com.liferay.portlet.calendar.model.CalEvent;
028 import com.liferay.portlet.calendar.service.permission.CalEventPermission;
029
030 import java.util.Date;
031 import java.util.Locale;
032
033 import javax.portlet.PortletRequest;
034 import javax.portlet.PortletURL;
035 import javax.portlet.RenderRequest;
036 import javax.portlet.RenderResponse;
037 import javax.portlet.WindowState;
038
039
043 public class CalEventAssetRenderer extends BaseAssetRenderer {
044
045 public CalEventAssetRenderer(CalEvent event) {
046 _event = event;
047 }
048
049 public String getClassName() {
050 return CalEvent.class.getName();
051 }
052
053 public long getClassPK() {
054 return _event.getEventId();
055 }
056
057 @Override
058 public String getDiscussionPath() {
059 if (PropsValues.CALENDAR_EVENT_COMMENTS_ENABLED) {
060 return "edit_event_discussion";
061 }
062 else {
063 return null;
064 }
065 }
066
067 @Override
068 public Date getDisplayDate() {
069 return _event.getModifiedDate();
070 }
071
072 public long getGroupId() {
073 return _event.getGroupId();
074 }
075
076 public String getSummary(Locale locale) {
077 return HtmlUtil.extractText(_event.getDescription());
078 }
079
080 @Override
081 public String getThumbnailPath(PortletRequest portletRequest)
082 throws Exception {
083
084 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
085 WebKeys.THEME_DISPLAY);
086
087 return themeDisplay.getPathThemeImages() +
088 "/file_system/large/calendar.png";
089 }
090
091 public String getTitle(Locale locale) {
092 return _event.getTitle();
093 }
094
095 @Override
096 public PortletURL getURLEdit(
097 LiferayPortletRequest liferayPortletRequest,
098 LiferayPortletResponse liferayPortletResponse)
099 throws Exception {
100
101 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
102 getControlPanelPlid(liferayPortletRequest), PortletKeys.CALENDAR,
103 PortletRequest.RENDER_PHASE);
104
105 portletURL.setParameter("struts_action", "/calendar/edit_event");
106 portletURL.setParameter("eventId", String.valueOf(_event.getEventId()));
107
108 return portletURL;
109 }
110
111 @Override
112 public PortletURL getURLView(
113 LiferayPortletResponse liferayPortletResponse,
114 WindowState windowState)
115 throws Exception {
116
117 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
118 PortletKeys.CALENDAR, PortletRequest.RENDER_PHASE);
119
120 portletURL.setParameter("struts_action", "/calendar/view_event");
121 portletURL.setParameter("eventId", String.valueOf(_event.getEventId()));
122 portletURL.setWindowState(windowState);
123
124 return portletURL;
125 }
126
127 @Override
128 public String getURLViewInContext(
129 LiferayPortletRequest liferayPortletRequest,
130 LiferayPortletResponse liferayPortletResponse,
131 String noSuchEntryRedirect) {
132
133 return getURLViewInContext(
134 liferayPortletRequest, noSuchEntryRedirect, "/calendar/find_event",
135 "eventId", _event.getEventId());
136 }
137
138 public long getUserId() {
139 return _event.getUserId();
140 }
141
142 public String getUserName() {
143 return _event.getUserName();
144 }
145
146 public String getUuid() {
147 return _event.getUuid();
148 }
149
150 @Override
151 public boolean hasEditPermission(PermissionChecker permissionChecker) {
152 return CalEventPermission.contains(
153 permissionChecker, _event, ActionKeys.UPDATE);
154 }
155
156 @Override
157 public boolean hasViewPermission(PermissionChecker permissionChecker) {
158 return CalEventPermission.contains(
159 permissionChecker, _event, ActionKeys.VIEW);
160 }
161
162 @Override
163 public boolean isPrintable() {
164 return true;
165 }
166
167 public String render(
168 RenderRequest renderRequest, RenderResponse renderResponse,
169 String template)
170 throws Exception {
171
172 if (template.equals(TEMPLATE_ABSTRACT) ||
173 template.equals(TEMPLATE_FULL_CONTENT)) {
174
175 renderRequest.setAttribute(WebKeys.CALENDAR_EVENT, _event);
176
177 return "/html/portlet/calendar/asset/" + template + ".jsp";
178 }
179 else {
180 return null;
181 }
182 }
183
184 @Override
185 protected String getIconPath(ThemeDisplay themeDisplay) {
186 return themeDisplay.getPathThemeImages() + "/common/date.png";
187 }
188
189 private CalEvent _event;
190
191 }