001
014
015 package com.liferay.portlet.bookmarks.trash;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.language.LanguageUtil;
019 import com.liferay.portal.kernel.trash.BaseTrashHandler;
020 import com.liferay.portal.kernel.trash.TrashHandler;
021 import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil;
022 import com.liferay.portal.kernel.trash.TrashRenderer;
023 import com.liferay.portal.kernel.workflow.WorkflowConstants;
024 import com.liferay.portal.model.ContainerModel;
025 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
026 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
027 import com.liferay.portlet.bookmarks.service.BookmarksEntryLocalServiceUtil;
028 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
029
030 import java.util.ArrayList;
031 import java.util.List;
032 import java.util.Locale;
033
034
039 public abstract class BookmarksBaseTrashHandler extends BaseTrashHandler {
040
041 @Override
042 public ContainerModel getContainerModel(long containerModelId)
043 throws PortalException {
044
045 return BookmarksFolderLocalServiceUtil.getFolder(containerModelId);
046 }
047
048 @Override
049 public String getContainerModelClassName(long classPK) {
050 return BookmarksFolder.class.getName();
051 }
052
053 @Override
054 public String getContainerModelName(long classPK) {
055 return "folder";
056 }
057
058 @Override
059 public List<ContainerModel> getContainerModels(
060 long classPK, long parentContainerModelId, int start, int end)
061 throws PortalException {
062
063 List<BookmarksFolder> folders =
064 BookmarksFolderLocalServiceUtil.getFolders(
065 getGroupId(classPK), parentContainerModelId, start, end);
066
067 List<ContainerModel> containerModels = new ArrayList<ContainerModel>(
068 folders.size());
069
070 for (BookmarksFolder curFolder : folders) {
071 containerModels.add(curFolder);
072 }
073
074 return containerModels;
075 }
076
077 @Override
078 public int getContainerModelsCount(
079 long classPK, long parentContainerModelId)
080 throws PortalException {
081
082 return BookmarksFolderLocalServiceUtil.getFoldersCount(
083 getGroupId(classPK), parentContainerModelId);
084 }
085
086 @Override
087 public List<ContainerModel> getParentContainerModels(long classPK)
088 throws PortalException {
089
090 List<ContainerModel> containerModels = new ArrayList<ContainerModel>();
091
092 ContainerModel containerModel = getParentContainerModel(classPK);
093
094 if (containerModel == null) {
095 return containerModels;
096 }
097
098 containerModels.add(containerModel);
099
100 while (containerModel.getParentContainerModelId() > 0) {
101 containerModel = getContainerModel(
102 containerModel.getParentContainerModelId());
103
104 if (containerModel == null) {
105 break;
106 }
107
108 containerModels.add(containerModel);
109 }
110
111 return containerModels;
112 }
113
114 @Override
115 public String getRootContainerModelName() {
116 return "folder";
117 }
118
119 @Override
120 public String getRootContainerModelTitle(
121 long containerModelId, Locale locale) {
122
123 return LanguageUtil.get(locale, "home");
124 }
125
126 @Override
127 public String getSubcontainerModelName() {
128 return "folder";
129 }
130
131 @Override
132 public String getTrashContainedModelName() {
133 return "bookmarks";
134 }
135
136 @Override
137 public int getTrashContainedModelsCount(long classPK)
138 throws PortalException {
139
140 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
141 classPK);
142
143 return BookmarksEntryLocalServiceUtil.getEntriesCount(
144 folder.getGroupId(), classPK, WorkflowConstants.STATUS_IN_TRASH);
145 }
146
147 @Override
148 public List<TrashRenderer> getTrashContainedModelTrashRenderers(
149 long classPK, int start, int end)
150 throws PortalException {
151
152 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
153
154 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
155 classPK);
156
157 List<BookmarksEntry> entries =
158 BookmarksEntryLocalServiceUtil.getEntries(
159 folder.getGroupId(), classPK, WorkflowConstants.STATUS_IN_TRASH,
160 start, end);
161
162 for (BookmarksEntry entry : entries) {
163 TrashHandler trashHandler =
164 TrashHandlerRegistryUtil.getTrashHandler(
165 BookmarksEntry.class.getName());
166
167 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
168 entry.getEntryId());
169
170 trashRenderers.add(trashRenderer);
171 }
172
173 return trashRenderers;
174 }
175
176 @Override
177 public String getTrashContainerModelName() {
178 return "folders";
179 }
180
181 @Override
182 public int getTrashContainerModelsCount(long classPK)
183 throws PortalException {
184
185 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
186 classPK);
187
188 return BookmarksFolderLocalServiceUtil.getFoldersCount(
189 folder.getGroupId(), classPK, WorkflowConstants.STATUS_IN_TRASH);
190 }
191
192 @Override
193 public List<TrashRenderer> getTrashContainerModelTrashRenderers(
194 long classPK, int start, int end)
195 throws PortalException {
196
197 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
198
199 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
200 classPK);
201
202 List<BookmarksFolder> folders =
203 BookmarksFolderLocalServiceUtil.getFolders(
204 folder.getGroupId(), classPK, WorkflowConstants.STATUS_IN_TRASH,
205 start, end);
206
207 for (BookmarksFolder curFolder : folders) {
208 TrashHandler trashHandler =
209 TrashHandlerRegistryUtil.getTrashHandler(
210 BookmarksFolder.class.getName());
211
212 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
213 curFolder.getPrimaryKey());
214
215 trashRenderers.add(trashRenderer);
216 }
217
218 return trashRenderers;
219 }
220
221 @Override
222 public boolean isMovable() {
223 return true;
224 }
225
226 protected abstract long getGroupId(long classPK) throws PortalException;
227
228 }