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