KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > folders > action > LoadTreeAction


1 package com.dotmarketing.portlets.folders.action;
2
3 import java.net.URLDecoder JavaDoc;
4
5 import javax.portlet.PortletConfig;
6 import javax.portlet.RenderRequest;
7 import javax.portlet.RenderResponse;
8 import javax.servlet.jsp.PageContext JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13
14 import com.dotmarketing.cms.factories.PublicRoleFactory;
15 import com.dotmarketing.factories.InodeFactory;
16 import com.dotmarketing.factories.RoleFactory;
17 import com.dotmarketing.portal.struts.DotPortletAction;
18 import com.dotmarketing.portlets.containers.model.Container;
19 import com.dotmarketing.portlets.folders.model.Folder;
20 import com.dotmarketing.portlets.structure.factories.StructureFactory;
21 import com.dotmarketing.portlets.structure.model.Structure;
22 import com.dotmarketing.util.Config;
23 import com.dotmarketing.util.Logger;
24 import com.dotmarketing.util.UtilMethods;
25 import com.dotmarketing.util.WebKeys;
26 import com.liferay.portal.ejb.RoleLocalManagerUtil;
27 import com.liferay.portal.model.Company;
28 import com.liferay.portal.model.Role;
29 import com.liferay.portal.model.User;
30 import com.liferay.portal.util.Constants;
31
32 /**
33  * <a HREF="ViewQuestionsAction.java.htm"><b><i>View Source</i></b></a>
34  *
35  * @author Maria Ahues
36  *
37  */

38 public class LoadTreeAction extends DotPortletAction {
39
40     public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req,
41             RenderResponse res) throws Exception JavaDoc {
42
43         Folder folder = null;
44
45         if (UtilMethods.isSet(req.getParameter("inode"))) {
46             folder = (Folder) InodeFactory.getInode(req.getParameter("inode"), Folder.class);
47             req.setAttribute(WebKeys.FOLDER_PARENT, folder);
48         }
49         java.util.List JavaDoc entryList = new java.util.ArrayList JavaDoc();
50
51         try {
52             User user = _getUser(req);
53
54             if (user != null) {
55                 java.util.Locale JavaDoc locale = user.getLocale();
56                 java.util.TimeZone JavaDoc timeZone = user.getTimeZone();
57                 com.liferay.portal.model.Role[] roles = (com.liferay.portal.model.Role[]) RoleFactory
58                         .getAllRolesForUser(user.getUserId()).toArray(new com.liferay.portal.model.Role[0]);
59
60                 String JavaDoc openNodes = req.getParameter("openNodes");
61
62                 String JavaDoc strContainer = req.getParameter("container");
63                 long structureInode = 0;
64                 if (UtilMethods.isSet(strContainer)) {
65                     Container container = (Container) InodeFactory.getInode(strContainer, Container.class);
66                     if (container.getInode() > 0) {
67                         Structure currentStructure = (Structure) InodeFactory.getParentOfClass(container,
68                                 Structure.class);
69                         if (currentStructure.getInode() == 0)
70                             currentStructure = StructureFactory.getDefaultStructure();
71                         structureInode = currentStructure.getInode();
72                     }
73                 }
74
75                 openNodes = URLDecoder.decode(openNodes, "UTF-8");
76                 String JavaDoc view = req.getParameter("view");
77                 try {
78                     view = URLDecoder.decode(view, "UTF-8");
79                 } catch (Exception JavaDoc e) {
80                     Logger.warn(this, "Couldn't decode view. It might be decoded already", e);
81                 }
82                 String JavaDoc content = req.getParameter("content");
83                 content = URLDecoder.decode(content, "UTF-8");
84
85                 // Check if the user is a CMS Administrator
86
boolean adminUser = false;
87                 try {
88
89                     String JavaDoc adminRoleId = "";
90
91                     Role adminRole = PublicRoleFactory.getCMSAdminRole();
92                     adminRoleId = adminRole.getRoleId();
93
94                     Role[] userRoles = roles;
95                     for (int i = 0; i < userRoles.length; i++) {
96                         Role userRole = (Role) userRoles[i];
97                         if (userRole.getRoleId().equals(adminRoleId)) {
98                             adminUser = true;
99                             break;
100                         }
101                     }
102                 } catch (Exception JavaDoc e) {
103                     Logger.debug(this, "render: exception trying to check admin user privilegies. ", e);
104                 }
105
106                 Logger.debug(this, "render: adminUser = " + adminUser);
107
108                 if ((req.getParameter("contentOnly") != null) && (req.getParameter("contentOnly").equals("true"))
109                         && (folder != null)) {
110
111                     view = java.net.URLDecoder.decode(view, "UTF-8");
112                     entryList = com.dotmarketing.portlets.folders.factories.FolderFactory.getEntriesTree(folder,
113                             openNodes, view, content, structureInode, locale, timeZone, roles, adminUser);
114                 } else {
115                     entryList = com.dotmarketing.portlets.folders.factories.FolderFactory.getFolderTree(openNodes,
116                             view, content, structureInode, locale, timeZone, roles, adminUser);
117                 }
118
119                 req.setAttribute("cmsAdminUser", String.valueOf(adminUser));
120
121             } else {
122                 return mapping.findForward(Constants.COMMON_ERROR);
123             }
124         } catch (Exception JavaDoc e) {
125             Logger.warn(this, "EXCEPTION" + e.getMessage(), e);
126         }
127
128         req.setAttribute(WebKeys.FOLDER_ENTRY_LIST, entryList);
129
130         try {
131             return mapping.findForward("portlet.ext.folders.load_tree");
132         } catch (Exception JavaDoc e) {
133             req.setAttribute(PageContext.EXCEPTION, e);
134             return mapping.findForward(Constants.COMMON_ERROR);
135         }
136
137     }
138
139 }
Popular Tags