KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > jobs > action > EditJobAction


1 package com.dotmarketing.portlets.jobs.action;
2
3 import java.util.Calendar JavaDoc;
4 import java.util.GregorianCalendar JavaDoc;
5 import javax.portlet.ActionRequest;
6 import javax.portlet.ActionResponse;
7 import javax.portlet.PortletConfig;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import org.apache.commons.beanutils.BeanUtils;
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionMapping;
12 import com.dotmarketing.factories.InodeFactory;
13 import com.dotmarketing.portal.struts.DotPortletAction;
14 import com.dotmarketing.portlets.jobs.factories.JobsFactory;
15 import com.dotmarketing.portlets.jobs.model.Jobs;
16 import com.dotmarketing.util.Constants;
17 import com.dotmarketing.util.Logger;
18 import com.dotmarketing.util.Validator;
19 import com.dotmarketing.util.WebKeys;
20 import com.liferay.portlet.ActionRequestImpl;
21 import com.liferay.util.servlet.SessionMessages;
22
23
24 public class EditJobAction extends DotPortletAction {
25     public void processAction(ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req,
26             ActionResponse res) throws Exception JavaDoc {
27         String JavaDoc cmd = req.getParameter(com.liferay.portal.util.Constants.CMD);
28         
29         //wraps request to get session object
30
ActionRequestImpl reqImpl = (ActionRequestImpl) req;
31         HttpServletRequest JavaDoc httpReq = reqImpl.getHttpServletRequest();
32         
33         String JavaDoc referer = req.getParameter("referer");
34         
35         //get Job from inode
36
_editJob(form, req, res);
37         
38         // Save / Update a Job
39
if (com.liferay.portal.util.Constants.ADD.equals(cmd)) {
40             Logger.debug(this, "Jobs: Saving Jobs");
41             
42             ///Validate Job
43
if (!Validator.validate(req, form, mapping)) {
44                 Logger.debug(this, "Jobs: Validation Job Failed");
45                 setForward(req, mapping.getInput());
46                 
47                 return;
48             } else {
49                 try {
50                     _saveJob(form, req, res);
51                 } catch (Exception JavaDoc e) {
52                     _handleException(e, req);
53                 }
54                 
55                 _sendToReferral(req, res, referer);
56                 
57                 return;
58             }
59         }
60         // Delete a Job
61
else if (com.liferay.portal.util.Constants.DELETE.equals(cmd)) {
62             Logger.debug(this, "Jobs: Deleting Job");
63             
64             try {
65                 _deleteJob(form, req, res);
66             } catch (Exception JavaDoc e) {
67                 _handleException(e, req);
68             }
69             
70             _sendToReferral(req, res, referer);
71             
72             return;
73         }
74         
75         // Activate a Job
76
else if (Constants.ACTIVATE.equals(cmd)) {
77             Logger.debug(this, "Jobs: Activating Job");
78             
79             try {
80                 _activateJob(form, req, res);
81             } catch (Exception JavaDoc e) {
82                 _handleException(e, req);
83             }
84             
85             _sendToReferral(req, res, referer);
86             
87             return;
88         }
89
90         BeanUtils.copyProperties(form, req.getAttribute(WebKeys.JOB_EDIT));
91         setForward(req, "portlet.ext.jobs.edit_job");
92     }
93     
94     /*Private Methods*/
95     
96     //save Job
97
private void _saveJob(ActionForm form, ActionRequest req, ActionResponse res)
98     throws Exception JavaDoc {
99         
100         //wraps request to get session object
101
ActionRequestImpl reqImpl = (ActionRequestImpl) req;
102         HttpServletRequest JavaDoc httpReq = reqImpl.getHttpServletRequest();
103         BeanUtils.copyProperties(req.getAttribute(WebKeys.JOB_EDIT), form);
104         
105         Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT);
106
107         if(job.getExpdate() == null) {
108             if(job.isActive()) {
109                 Calendar JavaDoc calendar = new GregorianCalendar JavaDoc();
110                 calendar.setTime(job.getEntrydate());
111                 calendar.add(Calendar.MONTH,3);
112                 job.setExpdate(calendar.getTime());
113             }
114         }
115         
116         Logger.debug(this, "_saveJob: Inode = " + job.getInode());
117         InodeFactory.saveInode(job);
118         
119         SessionMessages.add(req, "message", "message.job.save");
120     }
121     
122     //delete Job
123
private void _deleteJob(ActionForm form, ActionRequest req, ActionResponse res)
124     throws Exception JavaDoc {
125         Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT);
126         InodeFactory.deleteInode(job);
127         SessionMessages.add(req, "message", "message.job.delete");
128     }
129     
130     //delete Job
131
private void _activateJob(ActionForm form, ActionRequest req, ActionResponse res)
132     throws Exception JavaDoc {
133
134         Jobs job = (Jobs) req.getAttribute(WebKeys.JOB_EDIT);
135         String JavaDoc activeStr = req.getParameter("active");
136         boolean active = Boolean.parseBoolean(activeStr);
137         job.setActive(active);
138         if(job.isActive()) {
139             Calendar JavaDoc cal = new GregorianCalendar JavaDoc();
140             cal.setTime(job.getEntrydate());
141             cal.add(Calendar.MONTH,3);
142             job.setExpdate(cal.getTime());
143         }
144         InodeFactory.saveInode(job);
145     }
146
147     //view Job for Action request
148
private void _editJob(ActionForm form, ActionRequest req, ActionResponse res)
149     throws Exception JavaDoc {
150         Jobs job = JobsFactory.getJob(req.getParameter("inode"));
151         req.setAttribute(WebKeys.JOB_EDIT, job);
152     }
153 }
154
Popular Tags