KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > portlets > jobs > cms > action > AddResumeAction


1 /*
2  * Created on Mar 28, 2005
3  */

4 package com.dotmarketing.portlets.jobs.cms.action;
5
6 import java.io.File JavaDoc;
7 import java.io.FileOutputStream JavaDoc;
8 import java.nio.ByteBuffer JavaDoc;
9 import java.nio.channels.FileChannel JavaDoc;
10
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12 import javax.servlet.http.HttpServletResponse JavaDoc;
13 import javax.servlet.http.HttpSession JavaDoc;
14
15 import org.apache.commons.beanutils.BeanUtils;
16 import org.apache.struts.action.ActionForm;
17 import org.apache.struts.action.ActionForward;
18 import org.apache.struts.action.ActionMapping;
19 import org.apache.struts.action.ActionMessages;
20 import org.apache.struts.actions.DispatchAction;
21
22 import com.dotmarketing.factories.InodeFactory;
23
24 import com.dotmarketing.portlets.jobs.factories.EmailFactory;
25 import com.dotmarketing.portlets.jobs.factories.ResumeFactory;
26 import com.dotmarketing.portlets.jobs.model.Resume;
27 import com.dotmarketing.portlets.jobs.struts.ResumeForm;
28 import com.dotmarketing.util.Config;
29 import com.dotmarketing.util.Logger;
30 import com.dotmarketing.util.UtilMethods;
31 import com.liferay.util.FileUtil;
32 import com.liferay.util.servlet.UploadServletRequest;
33
34 /**
35  * @author Maru
36  */

37 public class AddResumeAction extends DispatchAction{
38
39     public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
40             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
41         ActionForward af = null;
42         HttpSession JavaDoc sess = request.getSession();
43         Logger.debug(this, "isLoggedIn: " + (String JavaDoc)sess.getAttribute("isLoggedIn"));
44         if (sess.getAttribute("isLoggedIn") != null && sess.getAttribute("isLoggedIn").equals("true")) {
45             ResumeForm form = (ResumeForm) lf;
46             Resume resume = ResumeFactory.getResume(request.getParameter("inode"));
47             //copies back into the form
48
BeanUtils.copyProperties(form, resume);
49             request.setAttribute("resumeForm",form);
50             af = (mapping.findForward("addResumePage"));
51         } else {
52             response.sendRedirect("/career_services/login.vsp?referer=/career_services/add_resume.vsp");
53             af = (mapping.findForward(""));
54         }
55         return af;
56     }
57
58     public ActionForward save(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
59             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
60         
61         //Getting and setting request attributes
62
ResumeForm form = (ResumeForm) lf;
63         Resume resume = ResumeFactory.getResume(request.getParameter("inode"));
64         BeanUtils.copyProperties(resume, form);
65         
66         //Checking errors
67
ActionMessages aes = form.validate(mapping, request);
68         if(aes != null && aes.size() > 0){
69             request.setAttribute("resumeForm",form);
70             saveMessages(request,aes);
71             return mapping.getInputForward();
72         }
73         resume = ResumeFactory.save(resume);
74
75         //saves file
76
String JavaDoc fileName = saveFile(form, request,resume);
77         Logger.debug(this, "\n\n\n\nfileName=" + fileName);
78         request.setAttribute("resumeFileName",fileName);
79         
80         //copies back into the form
81
BeanUtils.copyProperties(form, resume);
82         request.setAttribute("resumeForm",form);
83         
84         //Forwarding to the page
85
ActionForward af = mapping.findForward("addResumePreviewPage");
86         
87         return af;
88     }
89
90     public ActionForward receipt(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
91             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
92         
93         ResumeForm form = (ResumeForm) lf;
94         Resume resume = ResumeFactory.getResume(request.getParameter("inode"));
95         //copies back into the form
96
BeanUtils.copyProperties(form, resume);
97         request.setAttribute("resumeForm",form);
98         //Forwarding to the page
99
ActionForward af = mapping.findForward("addResumeReceiptPage");
100         return af;
101     }
102
103     public ActionForward success(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
104             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
105         
106         ResumeForm resume = (ResumeForm) form;
107         Resume newResume = ResumeFactory.getResume(resume.getInode()+"");
108         
109         //send confirmation email.
110
EmailFactory.sendCareerPostingReceipt("" + newResume.getInode(),newResume.getEmail(),"addResume");
111
112         ActionForward af = (mapping.findForward("addResumePageThankYou"));
113         return af;
114     }
115     private String JavaDoc saveFile (ResumeForm form, HttpServletRequest JavaDoc request, Resume resume) {
116         
117         try {
118             UploadServletRequest uploadReq = (UploadServletRequest)request;
119             byte[] bytes = FileUtil.getBytes(uploadReq.getFile("resumedoc"));
120             String JavaDoc fileName = uploadReq.getFileName("resumedoc");
121
122             if (bytes!=null) {
123 /*
124                 FileUpload fileUpload = new FileUpload();
125                 fileUpload.setFileName(fileName);
126                 fileUpload.setFileSize(bytes.length - 2);
127                 InodeFactory.saveInode(fileUpload);
128                 resume.addChild(fileUpload);
129                 
130                 String dir = Config.CONTEXT.getRealPath(Config.getStringProperty("PATH_TO_RESUMES"));
131                 //make the needed directories
132                 new File(dir).mkdirs();
133     
134                 //get the new file handle
135                 String filePath = dir + File.separatorChar + fileUpload.getInode() + "." + UtilMethods.getFileExtension(fileName);
136                 File file = new File(filePath);
137     
138                 //wipe out old files
139                 if (file.exists() || file.isDirectory()) {
140                     file.delete();
141                 }
142     
143                 //Saving the new working data
144                 FileChannel writeCurrentChannel = new FileOutputStream(filePath).getChannel();
145                 writeCurrentChannel.truncate(0);
146                 ByteBuffer buffer = ByteBuffer.allocate(bytes.length);
147                 buffer.put(bytes);
148                 buffer.position(0);
149                 writeCurrentChannel.write(buffer);
150                 writeCurrentChannel.force(false);
151                 writeCurrentChannel.close();
152             */

153             }
154             return fileName;
155         }
156         catch (Exception JavaDoc e) {
157             e.printStackTrace(System.out);
158         }
159         return "";
160     }
161 }
162
Popular Tags