KickJava   Java API By Example, From Geeks To Geeks.

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


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

22 package com.geinuke.module.forum;
23
24 import java.util.ArrayList JavaDoc;
25 import java.util.HashMap JavaDoc;
26 import java.util.Locale JavaDoc;
27
28 import javax.servlet.http.HttpServletRequest JavaDoc;
29 import javax.servlet.http.HttpServletResponse JavaDoc;
30
31 import org.apache.velocity.context.Context;
32
33 import com.geinuke.common.GlobalConfigurationI;
34 import com.geinuke.common.ModuleWidgetI;
35 import com.geinuke.common.NukeModuleI;
36 import com.geinuke.common.PageTool;
37 import com.geinuke.common.UserI;
38 import com.geinuke.middle.ICategoryBL;
39 import com.geinuke.middle.IForumBL;
40 import com.geinuke.middle.IUserBL;
41 import com.geinuke.module.ModuleWriter;
42 import com.geinuke.servlet.GeiServlet;
43 import com.geinuke.util.CookieHandler;
44 import com.geinuke.util.CountArrayList;
45 import com.geinuke.util.NukeResource;
46 import com.geinuke.util.Paginator;
47 import com.geinuke.vo.CategoryVO;
48 import com.geinuke.vo.ForumVO;
49 import com.geinuke.vo.ModuleDBVO;
50 import com.geinuke.vo.TopicVO;
51
52
53
54 public class ShowForumTopics implements ModuleWidgetI{
55
56     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
57         String JavaDoc moduleTempName=null;
58         ArrayList JavaDoc topicsTID=new ArrayList JavaDoc();
59         ArrayList JavaDoc forums=null;
60         int fid=Integer.parseInt( req.getParameter("fid") );
61         
62         ForumVO forum=null;
63         IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL");
64         forums=fbl.getEmptyVisibleForums();
65         forum=fbl.getForumByFId(fid);
66         
67         ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res));
68         fu.tagForum(forum);
69         
70         Integer JavaDoc ii=null;
71         for(int i=0;i<forum.getTopics().size();i++){
72             ii=new Integer JavaDoc( ((TopicVO)forum.getTopics().get(i)).getTId() );
73             topicsTID.add(ii);
74         }
75         
76         IUserBL ubl=(IUserBL)GeiServlet.getBL("IUserBL");
77         HashMap JavaDoc authors=ubl.getLastTopicsAuthorByTIdArray(topicsTID);
78         
79         ICategoryBL cbl=(ICategoryBL)GeiServlet.getBL("ICategoryBL");
80         ArrayList JavaDoc cats=cbl.getCategoriesByCatType(CategoryVO.CAT_FORUMS);
81         ctx.put("cats",cats);
82         
83         if(user.getRole().getLevela()>=160)
84             ctx.put("mayChange","Y");
85         
86         Locale JavaDoc lo=NukeResource.getLocale(req,res);
87         String JavaDoc pag=req.getParameter("wp");
88         ArrayList JavaDoc list=null;
89         Paginator pager=new Paginator(forum.getTopics(),15,"Forum.jhtm?"+req.getQueryString());
90         if(pag!=null){
91             list=pager.getPage(Integer.parseInt(pag));
92         }else{
93             list=pager.getPage(1);
94         }
95         if(list==null)
96             list=new ArrayList JavaDoc();
97         forum.setTopics(new CountArrayList(list));
98         //forum.getTopics().addAll(list);
99
ctx.put("pag",pager);
100         
101         
102         ctx.put("forums",forums);
103         ctx.put("lastA",authors);
104         ctx.put("pageTool",new PageTool(lo));
105         ctx.put("forum",forum);
106         
107         
108         
109         moduleTempName=gConf.getModulePage(module.getName(),req);
110         return ModuleWriter.fill(ctx,module,moduleTempName);
111     }
112
113 }
Popular Tags