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
039
044 public class BookmarksEntryAssetRenderer
045 extends BaseAssetRenderer implements TrashRenderer {
046
047 public BookmarksEntryAssetRenderer(BookmarksEntry entry) {
048 _entry = entry;
049 }
050
051 @Override
052 public String getClassName() {
053 return BookmarksEntry.class.getName();
054 }
055
056 @Override
057 public long getClassPK() {
058 return _entry.getEntryId();
059 }
060
061 @Override
062 public Date getDisplayDate() {
063 return _entry.getModifiedDate();
064 }
065
066 @Override
067 public long getGroupId() {
068 return _entry.getGroupId();
069 }
070
071 @Override
072 public String getIconPath(ThemeDisplay themeDisplay) {
073 return themeDisplay.getPathThemeImages() + "/ratings/star_hover.png";
074 }
075
076 @Override
077 public String getPortletId() {
078 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
079
080 return assetRendererFactory.getPortletId();
081 }
082
083 @Override
084 public String getSummary(Locale locale) {
085 return HtmlUtil.stripHtml(_entry.getDescription());
086 }
087
088 @Override
089 public String getThumbnailPath(PortletRequest portletRequest)
090 throws Exception {
091
092 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
093 WebKeys.THEME_DISPLAY);
094
095 return themeDisplay.getPathThemeImages() +
096 "/file_system/large/bookmark.png";
097 }
098
099 @Override
100 public String getTitle(Locale locale) {
101 return _entry.getName();
102 }
103
104 @Override
105 public String getType() {
106 return BookmarksEntryAssetRendererFactory.TYPE;
107 }
108
109 @Override
110 public PortletURL getURLEdit(
111 LiferayPortletRequest liferayPortletRequest,
112 LiferayPortletResponse liferayPortletResponse)
113 throws Exception {
114
115 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
116 getControlPanelPlid(liferayPortletRequest), PortletKeys.BOOKMARKS,
117 PortletRequest.RENDER_PHASE);
118
119 portletURL.setParameter("struts_action", "/bookmarks/edit_entry");
120 portletURL.setParameter(
121 "folderId", String.valueOf(_entry.getFolderId()));
122 portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));
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, "/bookmarks/find_entry",
135 "entryId", _entry.getEntryId());
136 }
137
138 @Override
139 public long getUserId() {
140 return _entry.getUserId();
141 }
142
143 @Override
144 public String getUserName() {
145 return _entry.getUserName();
146 }
147
148 @Override
149 public String getUuid() {
150 return _entry.getUuid();
151 }
152
153 @Override
154 public boolean hasEditPermission(PermissionChecker permissionChecker) {
155 try {
156 return BookmarksEntryPermission.contains(
157 permissionChecker, _entry, ActionKeys.UPDATE);
158 }
159 catch (Exception e) {
160 }
161
162 return false;
163 }
164
165 @Override
166 public boolean hasViewPermission(PermissionChecker permissionChecker) {
167 try {
168 return BookmarksEntryPermission.contains(
169 permissionChecker, _entry, ActionKeys.VIEW);
170 }
171 catch (Exception e) {
172 }
173
174 return true;
175 }
176
177 @Override
178 public boolean isPrintable() {
179 return true;
180 }
181
182 @Override
183 public String render(
184 RenderRequest renderRequest, RenderResponse renderResponse,
185 String template)
186 throws Exception {
187
188 if (template.equals(TEMPLATE_FULL_CONTENT)) {
189 renderRequest.setAttribute(WebKeys.BOOKMARKS_ENTRY, _entry);
190
191 return "/html/portlet/bookmarks/asset/" + template + ".jsp";
192 }
193 else {
194 return null;
195 }
196 }
197
198 private BookmarksEntry _entry;
199
200 }