001
014
015 package com.liferay.portlet.bookmarks.asset;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
018 import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
019 import com.liferay.portal.kernel.trash.TrashRenderer;
020 import com.liferay.portal.kernel.util.HtmlUtil;
021 import com.liferay.portal.security.permission.ActionKeys;
022 import com.liferay.portal.security.permission.PermissionChecker;
023 import com.liferay.portal.theme.ThemeDisplay;
024 import com.liferay.portal.util.PortletKeys;
025 import com.liferay.portal.util.WebKeys;
026 import com.liferay.portlet.asset.model.AssetRendererFactory;
027 import com.liferay.portlet.asset.model.BaseAssetRenderer;
028 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
029 import com.liferay.portlet.bookmarks.service.permission.BookmarksEntryPermission;
030
031 import java.util.Date;
032 import java.util.Locale;
033
034 import javax.portlet.PortletRequest;
035 import javax.portlet.PortletURL;
036 import javax.portlet.RenderRequest;
037 import javax.portlet.RenderResponse;
038 import javax.portlet.WindowState;
039
040
045 public class BookmarksEntryAssetRenderer
046 extends BaseAssetRenderer implements TrashRenderer {
047
048 public BookmarksEntryAssetRenderer(BookmarksEntry entry) {
049 _entry = entry;
050 }
051
052 @Override
053 public String getClassName() {
054 return BookmarksEntry.class.getName();
055 }
056
057 @Override
058 public long getClassPK() {
059 return _entry.getEntryId();
060 }
061
062 @Override
063 public Date getDisplayDate() {
064 return _entry.getModifiedDate();
065 }
066
067 @Override
068 public long getGroupId() {
069 return _entry.getGroupId();
070 }
071
072 @Override
073 public String getIconPath(ThemeDisplay themeDisplay) {
074 return themeDisplay.getPathThemeImages() + "/ratings/star_hover.png";
075 }
076
077 @Override
078 public String getPortletId() {
079 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
080
081 return assetRendererFactory.getPortletId();
082 }
083
084 @Override
085 public int getStatus() {
086 return _entry.getStatus();
087 }
088
089 @Override
090 public String getSummary(Locale locale) {
091 return HtmlUtil.stripHtml(_entry.getDescription());
092 }
093
094 @Override
095 public String getThumbnailPath(PortletRequest portletRequest)
096 throws Exception {
097
098 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
099 WebKeys.THEME_DISPLAY);
100
101 return themeDisplay.getPathThemeImages() +
102 "/file_system/large/bookmark.png";
103 }
104
105 @Override
106 public String getTitle(Locale locale) {
107 return _entry.getName();
108 }
109
110 @Override
111 public String getType() {
112 return BookmarksEntryAssetRendererFactory.TYPE;
113 }
114
115 @Override
116 public PortletURL getURLEdit(
117 LiferayPortletRequest liferayPortletRequest,
118 LiferayPortletResponse liferayPortletResponse)
119 throws Exception {
120
121 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
122 getControlPanelPlid(liferayPortletRequest), PortletKeys.BOOKMARKS,
123 PortletRequest.RENDER_PHASE);
124
125 portletURL.setParameter("struts_action", "/bookmarks/edit_entry");
126 portletURL.setParameter(
127 "folderId", String.valueOf(_entry.getFolderId()));
128 portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));
129
130 return portletURL;
131 }
132
133 @Override
134 public PortletURL getURLView(
135 LiferayPortletResponse liferayPortletResponse,
136 WindowState windowState)
137 throws Exception {
138
139 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
140
141 PortletURL portletURL = assetRendererFactory.getURLView(
142 liferayPortletResponse, windowState);
143
144 portletURL.setParameter("struts_action", "/bookmarks/view_entry");
145 portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));
146 portletURL.setWindowState(windowState);
147
148 return portletURL;
149 }
150
151 @Override
152 public String getURLViewInContext(
153 LiferayPortletRequest liferayPortletRequest,
154 LiferayPortletResponse liferayPortletResponse,
155 String noSuchEntryRedirect) {
156
157 return getURLViewInContext(
158 liferayPortletRequest, noSuchEntryRedirect, "/bookmarks/find_entry",
159 "entryId", _entry.getEntryId());
160 }
161
162 @Override
163 public long getUserId() {
164 return _entry.getUserId();
165 }
166
167 @Override
168 public String getUserName() {
169 return _entry.getUserName();
170 }
171
172 @Override
173 public String getUuid() {
174 return _entry.getUuid();
175 }
176
177 @Override
178 public boolean hasEditPermission(PermissionChecker permissionChecker) {
179 try {
180 return BookmarksEntryPermission.contains(
181 permissionChecker, _entry, ActionKeys.UPDATE);
182 }
183 catch (Exception e) {
184 }
185
186 return false;
187 }
188
189 @Override
190 public boolean hasViewPermission(PermissionChecker permissionChecker) {
191 try {
192 return BookmarksEntryPermission.contains(
193 permissionChecker, _entry, ActionKeys.VIEW);
194 }
195 catch (Exception e) {
196 }
197
198 return true;
199 }
200
201 @Override
202 public boolean isPrintable() {
203 return true;
204 }
205
206 @Override
207 public String render(
208 RenderRequest renderRequest, RenderResponse renderResponse,
209 String template)
210 throws Exception {
211
212 if (template.equals(TEMPLATE_FULL_CONTENT)) {
213 renderRequest.setAttribute(WebKeys.BOOKMARKS_ENTRY, _entry);
214
215 return "/html/portlet/bookmarks/asset/" + template + ".jsp";
216 }
217 else {
218 return null;
219 }
220 }
221
222 private BookmarksEntry _entry;
223
224 }