KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nemesis > forum > webapp > admin > action > ListForumFiltersAction


1 package org.nemesis.forum.webapp.admin.action;
2
3 import java.util.List JavaDoc;
4 import java.util.Vector JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletResponse JavaDoc;
8
9 import org.apache.commons.logging.Log;
10 import org.apache.commons.logging.LogFactory;
11 import org.apache.struts.action.ActionError;
12 import org.apache.struts.action.ActionErrors;
13 import org.apache.struts.action.ActionForm;
14 import org.apache.struts.action.ActionForward;
15 import org.apache.struts.action.ActionMapping;
16 import org.apache.struts.action.ActionMessage;
17 import org.nemesis.forum.Forum;
18 import org.nemesis.forum.ForumFactory;
19 import org.nemesis.forum.MessageFilter;
20 import org.nemesis.forum.webapp.admin.Config;
21 import org.nemesis.forum.webapp.admin.bean.FilterBean;
22 import org.nemesis.forum.webapp.admin.bean.ForumFiltersBean;
23 import org.nemesis.forum.webapp.exception.UnauthorizedException;
24
25 public class ListForumFiltersAction extends BaseAction {
26
27     static protected Log log = LogFactory.getLog(ListForumFiltersAction.class);
28
29     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
30
31         //check logon
32
checkUser(request);
33         
34
35         ActionErrors errors = new ActionErrors();
36
37         try {
38             
39
40             List JavaDoc v = new Vector JavaDoc();
41
42             ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
43             Forum forum = forumFactory.getForum(Integer.parseInt(request.getParameter("id")));
44             //check permission
45
checkPermission(request, OperationConstants.LIST_FORUM_FILTER,forum);
46             ForumFiltersBean fb = new ForumFiltersBean();
47             fb.setId(forum.getID());
48             fb.setName(forum.getName());
49             fb.setDescription(forum.getDescription());
50             
51             MessageFilter[] installedFilters =forum.getForumMessageFilters();
52             for( int i=0; i<installedFilters.length; i++ ) {
53                 FilterBean b=new FilterBean(i,installedFilters[i]);
54                 fb.addFilters(b);
55             }
56             
57             
58             String JavaDoc[] classNames=Config.filtersClassNames;
59             for( int i=0; i<classNames.length; i++ ) {
60                 Class JavaDoc c = Class.forName(classNames[i]);
61                 MessageFilter filter = (MessageFilter)(c.newInstance());
62                 if(! containsString(installedFilters,filter.getName() )){
63                     fb.addFreeFilters(new FilterBean(i,filter));
64                 }
65             }
66
67             request.setAttribute("fb",fb);
68             
69         }catch( UnauthorizedException ue ) {
70             
71             errors.add("general", new ActionError("listForumFilters.unauthorized" ));
72
73         } catch (Exception JavaDoc e) {
74             String JavaDoc eid = this.getClass().getName() + "_" + System.currentTimeMillis();
75             log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e);
76             errors.add("general", new ActionMessage("error.general", "error id:" + eid));
77         }
78
79         if (!errors.isEmpty()) {
80             saveErrors(request, errors);
81             return mapping.findForward("cancel");
82         }
83
84         return mapping.findForward("view");
85     }
86     
87     private boolean containsString( MessageFilter [] installedFilters, String JavaDoc filterName ) {
88             for( int i=0; i<installedFilters.length; i++ ) {
89                 if( installedFilters[i].getName().equals(filterName) ) {
90                     return true;
91                 }
92             }
93             return false;
94     }
95 }
Popular Tags