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