1
22
23 package com.liferay.portlet.documentlibrary.action;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.json.JSONArray;
27 import com.liferay.portal.kernel.json.JSONFactoryUtil;
28 import com.liferay.portal.kernel.json.JSONObject;
29 import com.liferay.portal.kernel.util.ParamUtil;
30 import com.liferay.portal.struts.JSONAction;
31 import com.liferay.portlet.documentlibrary.model.DLFolder;
32 import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
33 import com.liferay.portlet.documentlibrary.service.DLFolderLocalServiceUtil;
34 import com.liferay.portlet.documentlibrary.service.http.DLFolderJSONSerializer;
35
36 import java.util.ArrayList;
37 import java.util.List;
38
39 import javax.servlet.http.HttpServletRequest;
40 import javax.servlet.http.HttpServletResponse;
41
42 import org.apache.struts.action.ActionForm;
43 import org.apache.struts.action.ActionMapping;
44
45
50 public class GetFoldersAction extends JSONAction {
51
52 public String getJSON(
53 ActionMapping mapping, ActionForm form, HttpServletRequest request,
54 HttpServletResponse response)
55 throws Exception {
56
57 long groupId = ParamUtil.getLong(request, "groupId");
58 long parentFolderId = ParamUtil.getLong(request, "folderId");
59
60 List<DLFolder> folders = DLFolderLocalServiceUtil.getFolders(
61 groupId, parentFolderId);
62
63 JSONArray jsonArray = toJSONArray(folders);
64
65 return jsonArray.toString();
66 }
67
68 protected JSONArray toJSONArray(List<DLFolder> folders)
69 throws SystemException {
70
71 JSONArray jsonArray = JSONFactoryUtil.createJSONArray();
72
73 for (DLFolder folder : folders) {
74 jsonArray.put(toJSONObject(folder));
75 }
76
77 return jsonArray;
78 }
79
80 protected JSONObject toJSONObject(DLFolder folder) throws SystemException {
81 JSONObject jsonObj = DLFolderJSONSerializer.toJSONObject(folder);
82
83 List<Long> subfolderIds = new ArrayList<Long>();
84
85 subfolderIds.add(folder.getFolderId());
86
87 DLFolderLocalServiceUtil.getSubfolderIds(
88 subfolderIds, folder.getGroupId(), folder.getFolderId());
89
90 int subFoldersCount = subfolderIds.size() - 1;
91 int fileEntriesCount =
92 DLFileEntryLocalServiceUtil.getFileEntriesAndShortcutsCount(
93 subfolderIds);
94
95 jsonObj.put("subFoldersCount", subFoldersCount);
96 jsonObj.put("fileEntriesCount", fileEntriesCount);
97
98 return jsonObj;
99 }
100
101 }