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.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.WebKeys;
025 import com.liferay.portlet.asset.model.AssetRendererFactory;
026 import com.liferay.portlet.asset.model.BaseAssetRenderer;
027 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
028 import com.liferay.portlet.bookmarks.service.permission.BookmarksEntryPermission;
029
030 import java.util.Date;
031 import java.util.Locale;
032
033 import javax.portlet.PortletRequest;
034 import javax.portlet.PortletResponse;
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 String getSummary(
086 PortletRequest portletRequest, PortletResponse portletResponse) {
087
088 return _entry.getDescription();
089 }
090
091 @Override
092 public String getThumbnailPath(PortletRequest portletRequest)
093 throws Exception {
094
095 ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(
096 WebKeys.THEME_DISPLAY);
097
098 return themeDisplay.getPathThemeImages() +
099 "/file_system/large/bookmark.png";
100 }
101
102 @Override
103 public String getTitle(Locale locale) {
104 return _entry.getName();
105 }
106
107 @Override
108 public String getType() {
109 return BookmarksEntryAssetRendererFactory.TYPE;
110 }
111
112 @Override
113 public PortletURL getURLEdit(
114 LiferayPortletRequest liferayPortletRequest,
115 LiferayPortletResponse liferayPortletResponse)
116 throws Exception {
117
118 PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
119 getControlPanelPlid(liferayPortletRequest),
120 PortletKeys.BOOKMARKS_ADMIN, PortletRequest.RENDER_PHASE);
121
122 portletURL.setParameter("struts_action", "/bookmarks/edit_entry");
123 portletURL.setParameter(
124 "folderId", String.valueOf(_entry.getFolderId()));
125 portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));
126
127 return portletURL;
128 }
129
130 @Override
131 public PortletURL getURLView(
132 LiferayPortletResponse liferayPortletResponse,
133 WindowState windowState)
134 throws Exception {
135
136 AssetRendererFactory assetRendererFactory = getAssetRendererFactory();
137
138 PortletURL portletURL = assetRendererFactory.getURLView(
139 liferayPortletResponse, windowState);
140
141 portletURL.setParameter("struts_action", "/bookmarks/view_entry");
142 portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));
143 portletURL.setWindowState(windowState);
144
145 return portletURL;
146 }
147
148 @Override
149 public String getURLViewInContext(
150 LiferayPortletRequest liferayPortletRequest,
151 LiferayPortletResponse liferayPortletResponse,
152 String noSuchEntryRedirect) {
153
154 return getURLViewInContext(
155 liferayPortletRequest, noSuchEntryRedirect, "/bookmarks/find_entry",
156 "entryId", _entry.getEntryId());
157 }
158
159 @Override
160 public long getUserId() {
161 return _entry.getUserId();
162 }
163
164 @Override
165 public String getUserName() {
166 return _entry.getUserName();
167 }
168
169 @Override
170 public String getUuid() {
171 return _entry.getUuid();
172 }
173
174 @Override
175 public boolean hasEditPermission(PermissionChecker permissionChecker) {
176 try {
177 return BookmarksEntryPermission.contains(
178 permissionChecker, _entry, ActionKeys.UPDATE);
179 }
180 catch (Exception e) {
181 }
182
183 return false;
184 }
185
186 @Override
187 public boolean hasViewPermission(PermissionChecker permissionChecker) {
188 try {
189 return BookmarksEntryPermission.contains(
190 permissionChecker, _entry, ActionKeys.VIEW);
191 }
192 catch (Exception e) {
193 }
194
195 return true;
196 }
197
198 @Override
199 public boolean isPrintable() {
200 return true;
201 }
202
203 @Override
204 public String render(
205 RenderRequest renderRequest, RenderResponse renderResponse,
206 String template)
207 throws Exception {
208
209 if (template.equals(TEMPLATE_FULL_CONTENT)) {
210 renderRequest.setAttribute(WebKeys.BOOKMARKS_ENTRY, _entry);
211
212 return "/html/portlet/bookmarks/asset/" + template + ".jsp";
213 }
214 else {
215 return null;
216 }
217 }
218
219 private final BookmarksEntry _entry;
220
221 }