KickJava   Java API By Example, From Geeks To Geeks.

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


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.Hashtable 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.IForumBL;
39 import com.geinuke.module.ModuleWriter;
40 import com.geinuke.servlet.GeiServlet;
41 import com.geinuke.util.CookieHandler;
42 import com.geinuke.util.NukeResource;
43 import com.geinuke.vo.CategoryVO;
44 import com.geinuke.vo.ForumVO;
45 import com.geinuke.vo.ModuleDBVO;
46
47
48 public class ShowForums implements ModuleWidgetI{
49     
50     protected Hashtable JavaDoc categForums(ArrayList JavaDoc list){
51         Hashtable JavaDoc h=null;
52         h=new Hashtable JavaDoc();
53         ForumVO fo=null;
54         CategoryVO cat=null;
55         ArrayList JavaDoc forums=null;
56         for(int i=0;list!=null && i<list.size();i++){
57             fo=(ForumVO)list.get(i);
58             cat=(CategoryVO)fo.getCategories().get(0);
59             forums=(ArrayList JavaDoc)h.get(cat.getTitle());
60             if(forums!=null)
61                 forums.add(fo);
62             else{
63                 forums=new ArrayList JavaDoc();
64                 forums.add(fo);
65                 h.put(cat.getTitle(),forums);
66             }
67         }
68         
69         return h;
70     }
71     
72     
73     
74     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
75         String JavaDoc moduleTempName=null;
76         ArrayList JavaDoc forums=null;
77         IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL");
78         forums=fbl.getVisibleForums();
79         
80         
81         ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res));
82         fu.tagForums(forums);
83         Hashtable JavaDoc h=this.categForums(forums);
84         
85         
86         Locale JavaDoc lo=NukeResource.getLocale(req,res);
87         if(user.getRole().getLevela()>=160)
88             ctx.put("mayChange","Y");
89         ctx.put("pageTool",new PageTool(lo));
90         ctx.put("fforums",forums);
91         ctx.put("HForums",h);
92         ArrayList JavaDoc catz=new ArrayList JavaDoc(h.keySet());
93         ctx.put("cats",catz);
94         moduleTempName=gConf.getModulePage(module.getName(),req);
95         return ModuleWriter.fill(ctx,module,moduleTempName);
96     }
97
98 }
Popular Tags