KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > geinuke > module > forum > InsForumComment


1
2  /*
3  -- GeiNuke --
4 Copyright (c) 2005 by Roberto Sidoti [geinuke@users.sourceforge.net]
5  http://www.hostingjava.it/-geinuke/
6
7 This file is part of GeiNuke.
8
9     GeiNuke is free software; you can redistribute it and/or modify
10     it under the terms of the GNU General Public License as published by
11     the Free Software Foundation; either version 2 of the License, or
12     (at your option) any later version.
13
14     GeiNuke is distributed in the hope that it will be useful,
15     but WITHOUT ANY WARRANTY; without even the implied warranty of
16     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17     GNU General Public License for more details.
18
19     You should have received a copy of the GNU General Public License
20     along with GeiNuke; if not, write to the Free Software
21     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */

23 package com.geinuke.module.forum;
24
25 import java.util.ArrayList JavaDoc;
26 import java.util.HashMap JavaDoc;
27 import java.util.Locale JavaDoc;
28
29 import javax.servlet.http.HttpServletRequest JavaDoc;
30 import javax.servlet.http.HttpServletResponse JavaDoc;
31
32 import org.apache.velocity.context.Context;
33
34 import com.geinuke.common.EditorFactory;
35 import com.geinuke.common.GlobalConfigurationI;
36 import com.geinuke.common.ModuleWidgetI;
37 import com.geinuke.common.NukeModuleI;
38 import com.geinuke.common.PageTool;
39 import com.geinuke.common.UserI;
40 import com.geinuke.middle.ICommentBL;
41 import com.geinuke.middle.IForumBL;
42 import com.geinuke.middle.ITopicBL;
43 import com.geinuke.module.ModuleWriter;
44 import com.geinuke.servlet.GeiServlet;
45 import com.geinuke.util.NukeResource;
46 import com.geinuke.util.TextUtil;
47 import com.geinuke.vo.CommentVO;
48 import com.geinuke.vo.ForumVO;
49 import com.geinuke.vo.ModuleDBVO;
50 import com.geinuke.vo.TopicVO;
51
52
53 public class InsForumComment implements ModuleWidgetI{
54     
55     
56     protected String JavaDoc checkErrors(HttpServletRequest JavaDoc req){
57         String JavaDoc error=null;
58         if( TextUtil.isEmpty(req.getParameter("subject")) ){
59             error="EMPTY_SUBJECT_ERROR";
60         }else if( TextUtil.isEmpty(req.getParameter("commenttext")) ){
61             error="EMPTY_COMMENTTEXT_ERROR";
62         }else if( Integer.parseInt(req.getParameter("tid")) <0){
63             error="";
64         }
65         return error;
66     }
67     
68     protected CommentVO getCommentVO(HttpServletRequest JavaDoc req,UserI user){
69         CommentVO co=null;
70         co=new CommentVO();
71         co.setComType(CommentVO.CAT_FORUMS);
72         co.setSubject(req.getParameter("subject"));
73         co.setXId( Integer.parseInt( req.getParameter("tid") ) );
74         co.setText(req.getParameter("commenttext"));
75         co.setUId(user.getId());
76         co.setTime(System.currentTimeMillis());
77         return co;
78     }
79     
80     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
81         String JavaDoc moduleTempName=null;
82         ArrayList JavaDoc topicsTID=new ArrayList JavaDoc();
83         int tid=Integer.parseInt( req.getParameter("tid") );
84         CommentVO co=null;
85         
86         ForumVO forum=null;
87         TopicVO to=null;
88         IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL");
89         ITopicBL tbl=(ITopicBL)GeiServlet.getBL("ITopicBL");
90         forum=fbl.getForumByTId(tid);
91         if(forum.getFState()<3){
92         to=tbl.getForumTopicByTId(tid);
93         String JavaDoc error=this.checkErrors(req);
94         co=this.getCommentVO(req,user);
95         
96         if(error==null){
97             ICommentBL cbl=(ICommentBL)GeiServlet.getBL("ICommentBL");
98             cbl.insComment(co);
99             res.sendRedirect("Forum.jhtm?op=showST&tid="+to.getTId());
100         }
101         ICommentBL cbl=(ICommentBL)GeiServlet.getBL("ICommentBL");
102         HashMap JavaDoc authors=cbl.getUsersByForumCommentXId(tid);
103         Locale JavaDoc lo=NukeResource.getLocale(req,res);
104         //ctx.put("lastA",authors);
105
EditorFactory ef=new EditorFactory(req,null);
106         ctx.put("factory",ef);
107         ctx.put("pageTool",new PageTool(lo));
108         ctx.put("topic",to);
109         ctx.put("authors",authors);
110         ctx.put("replies",to.getComments());
111         ctx.put("forum",forum);
112         }else{
113             res.sendRedirect("ErrorForum.jhtm");
114         }
115         
116         moduleTempName=gConf.getModulePage(module.getName(),req);
117         return ModuleWriter.fill(ctx,module,moduleTempName);
118     }
119
120 }
121
Popular Tags