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