KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.dotmarketing.portlets.folders.action;
2
3 import java.net.URLDecoder JavaDoc;
4
5 import javax.portlet.ActionRequest;
6 import javax.portlet.ActionResponse;
7 import javax.portlet.PortletConfig;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionMapping;
12
13 import com.dotmarketing.factories.InodeFactory;
14 import com.dotmarketing.factories.PublishFactory;
15 import com.dotmarketing.portal.struts.DotPortletAction;
16 import com.dotmarketing.portlets.folders.model.Folder;
17 import com.dotmarketing.util.WebKeys;
18 import com.liferay.portlet.ActionRequestImpl;
19 import com.liferay.util.servlet.SessionMessages;
20
21 /**
22  * @author Maria
23  */

24
25 public class PublishFolderAction extends DotPortletAction {
26     
27     public static boolean debug = false;
28     
29     public void processAction(
30              ActionMapping mapping, ActionForm form, PortletConfig config,
31              ActionRequest req, ActionResponse res)
32          throws Exception JavaDoc {
33         
34         try {
35             String JavaDoc cmd = req.getParameter("cmd");
36             
37             if ((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.PREPUBLISH)) {
38
39                 //prepublish
40
_prePublishFolder(req,res,config,form);
41                 
42             }
43             java.util.List JavaDoc relatedAssets = (java.util.List JavaDoc) req.getAttribute(WebKeys.FOLDER_RELATED_ASSETS);
44             
45             if (((cmd != null) && cmd.equals(com.dotmarketing.util.Constants.PUBLISH)) ||
46                 (relatedAssets.size()==0)) {
47
48                 _publishFolder(req,res,config,form);
49     
50                 String JavaDoc referer = URLDecoder.decode(req.getParameter("referer"),"UTF-8");
51
52                 _sendToReferral(req,res,referer);
53                 return;
54             }
55             setForward(req,"portlet.ext.folders.publish_folder");
56             
57         } catch (Exception JavaDoc ae) {
58             _handleException(ae,req);
59         }
60         
61     }
62
63     private void _prePublishFolder(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
64     throws Exception JavaDoc {
65
66         String JavaDoc inode = req.getParameter("inode");
67
68         Folder folder = (Folder) InodeFactory.getInode(inode,Folder.class);
69
70         java.util.List JavaDoc relatedAssets = new java.util.ArrayList JavaDoc();
71         
72         if (folder.getInode()>0) {
73             //calls the asset factory edit
74
relatedAssets = PublishFactory.getRelatedAssets(folder,relatedAssets);
75         }
76         req.setAttribute(WebKeys.FOLDER_RELATED_ASSETS,relatedAssets);
77     }
78
79     private void _publishFolder(ActionRequest req, ActionResponse res,PortletConfig config,ActionForm form)
80     throws Exception JavaDoc {
81
82         String JavaDoc inode = req.getParameter("inode");
83         
84         Folder folder = (Folder) InodeFactory.getInode(inode,Folder.class);
85         
86         ActionRequestImpl areq = (ActionRequestImpl) req;
87         HttpServletRequest JavaDoc hreq = areq.getHttpServletRequest();
88
89         hreq.getSession().removeAttribute(com.dotmarketing.util.WebKeys.EDIT_MODE_SESSION);
90         req.removeAttribute(com.dotmarketing.util.WebKeys.EDIT_MODE_SESSION);
91         
92         hreq.getSession().removeAttribute(com.dotmarketing.util.WebKeys.PREVIEW_MODE_SESSION);
93         req.removeAttribute(com.dotmarketing.util.WebKeys.PREVIEW_MODE_SESSION);
94
95         hreq.getSession().removeAttribute(com.dotmarketing.util.WebKeys.ADMIN_MODE_SESSION);
96         req.removeAttribute(com.dotmarketing.util.WebKeys.ADMIN_MODE_SESSION);
97
98         if (folder.getInode()>0) {
99             PublishFactory.publishAsset(folder,hreq);
100         }
101         
102         SessionMessages.add(req, "message", "message.folder.published");
103         
104     }
105
106 }
107
Popular Tags