KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > geinuke > module > admin > AdminForum


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

24 package com.geinuke.module.admin;
25
26 import java.util.ArrayList JavaDoc;
27 import java.util.Hashtable JavaDoc;
28 import java.util.Locale JavaDoc;
29
30 import javax.servlet.http.HttpServletRequest JavaDoc;
31 import javax.servlet.http.HttpServletResponse JavaDoc;
32
33 import org.apache.velocity.context.Context;
34
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.ICategoryBL;
41 import com.geinuke.middle.IForumBL;
42 import com.geinuke.module.ModuleWriter;
43 import com.geinuke.module.forum.ForumUtil;
44 import com.geinuke.servlet.GeiServlet;
45 import com.geinuke.util.CookieHandler;
46 import com.geinuke.util.NukeResource;
47 import com.geinuke.util.TextUtil;
48 import com.geinuke.vo.CategoryVO;
49 import com.geinuke.vo.ForumVO;
50 import com.geinuke.vo.ModuleDBVO;
51
52
53 public class AdminForum implements ModuleWidgetI{
54     
55     
56     protected Hashtable JavaDoc categForums(ArrayList JavaDoc list){
57         Hashtable JavaDoc h=null;
58         h=new Hashtable JavaDoc();
59         ForumVO fo=null;
60         CategoryVO cat=null;
61         ArrayList JavaDoc forums=null;
62         for(int i=0;list!=null && i<list.size();i++){
63             fo=(ForumVO)list.get(i);
64             cat=(CategoryVO)fo.getCategories().get(0);
65             forums=(ArrayList JavaDoc)h.get(cat.getTitle());
66             if(forums!=null)
67                 forums.add(fo);
68             else{
69                 forums=new ArrayList JavaDoc();
70                 forums.add(fo);
71                 h.put(cat.getTitle(),forums);
72             }
73         }
74         
75         return h;
76     }
77     
78     protected String JavaDoc checkErrors(HttpServletRequest JavaDoc req){
79         String JavaDoc error=null;
80         if( TextUtil.isEmpty(req.getParameter("name")) ){
81             error="EMPTY_NAME_ERROR";
82         }else if( TextUtil.isEmpty(req.getParameter("desc")) ){
83             error="EMPTY_DESC_ERROR";
84         }
85         return error;
86     }
87     
88     protected ForumVO getForum(HttpServletRequest JavaDoc req,UserI user){
89         ForumVO fo=null;
90         fo=new ForumVO();
91         fo.setFState(ForumVO.STATE_VISIBLE);
92         fo.setFName(req.getParameter("name"));
93         fo.setFDescription(req.getParameter("desc"));
94         ArrayList JavaDoc cats=new ArrayList JavaDoc();
95         CategoryVO c=new CategoryVO();
96         c.setCatId( Integer.parseInt( req.getParameter("type") ) );
97         cats.add(c);
98         fo.setCategories(cats);
99         return fo;
100     }
101     
102     
103     
104     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
105         String JavaDoc moduleTempName=null;
106         ArrayList JavaDoc forums=null;
107         IForumBL fbl=(IForumBL)GeiServlet.getBL("IForumBL");
108         ICategoryBL cbl=(ICategoryBL)GeiServlet.getBL("ICategoryBL");
109         String JavaDoc error=null;
110         if(req.getParameter("c")!=null && req.getParameter("c").equals("ins") ){
111             error=this.checkErrors(req);
112             ForumVO fo=this.getForum(req,user);
113             if(error==null){
114                 fbl.insForum(fo);
115             }else{
116                 ctx.put("errors",ctx);
117                 ctx.put("fo",fo);
118             }
119         
120         }
121         
122         
123         forums=fbl.getVisibleForums();
124         ForumUtil fu=new ForumUtil(user,new CookieHandler(req,res));
125         fu.tagForums(forums);
126         Hashtable JavaDoc h=this.categForums(forums);
127         
128         
129         ArrayList JavaDoc cats=cbl.getCategoriesByCatType(CategoryVO.CAT_FORUMS);
130         ArrayList JavaDoc catz=new ArrayList JavaDoc(h.keySet());
131         Locale JavaDoc lo=NukeResource.getLocale(req,res);
132         
133         ctx.put("cats",cats);
134         ctx.put("catz",catz);
135         ctx.put("pageTool",new PageTool(lo));
136         ctx.put("fforums",forums);
137         ctx.put("HForums",h);
138         moduleTempName=gConf.getModulePage(module.getName(),req);
139         return ModuleWriter.fill(ctx,module,moduleTempName);
140     }
141
142 }
Popular Tags