KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jresearch > gossip > actions > forum > ShowForumAction


1 /*
2  * $$Id: ShowForumAction.java,v 1.3 2005/06/07 12:32:33 bel70 Exp $$
3  *
4  * ***** BEGIN LICENSE BLOCK *****
5  * The contents of this file are subject to the Mozilla Public License
6  * Version 1.1 (the "License"); you may not use this file except in
7  * compliance with the License. You may obtain a copy of the License
8  * at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS"
11  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
12  * the License for the specific language governing rights and
13  * limitations under the License.
14  *
15  * The Original Code is JGossip forum code.
16  *
17  * The Initial Developer of the Original Code is the JResearch, Org.
18  * Portions created by the Initial Developer are Copyright (C) 2004
19  * the Initial Developer. All Rights Reserved.
20  *
21  * Contributor(s):
22  * Dmitry Belov <bel@jresearch.org>
23  *
24  * ***** END LICENSE BLOCK ***** */

25 /*
26  * Created on Jul 13, 2003
27  *
28  */

29 package org.jresearch.gossip.actions.forum;
30
31 import java.lang.reflect.InvocationTargetException JavaDoc;
32 import java.sql.SQLException JavaDoc;
33 import java.util.Iterator JavaDoc;
34
35 import javax.servlet.http.HttpServletRequest JavaDoc;
36 import javax.servlet.http.HttpServletResponse JavaDoc;
37 import javax.servlet.http.HttpSession JavaDoc;
38
39 import org.apache.struts.action.ActionForm;
40 import org.apache.struts.action.ActionForward;
41 import org.apache.struts.action.ActionMapping;
42 import org.jresearch.gossip.IConst;
43 import org.jresearch.gossip.actions.BaseAction;
44 import org.jresearch.gossip.beans.forum.Forum;
45 import org.jresearch.gossip.beans.forum.Message;
46 import org.jresearch.gossip.beans.forum.Topic;
47 import org.jresearch.gossip.beans.user.User;
48 import org.jresearch.gossip.configuration.Configurator;
49 import org.jresearch.gossip.dao.ForumDAO;
50 import org.jresearch.gossip.dao.UserDAO;
51 import org.jresearch.gossip.exception.SystemException;
52 import org.jresearch.gossip.forms.ProcessForumForm;
53 import org.jresearch.gossip.list.RecordsData;
54
55 /**
56  * DOCUMENT ME!
57  *
58  * @author Bel
59  */

60 public class ShowForumAction extends BaseAction {
61     /**
62      * DOCUMENT ME!
63      *
64      * @param mapping
65      * DOCUMENT ME!
66      * @param form
67      * DOCUMENT ME!
68      * @param request
69      * DOCUMENT ME!
70      * @param response
71      * DOCUMENT ME!
72      *
73      * @return DOCUMENT ME!
74      */

75     public ActionForward process(ActionMapping mapping, ActionForm form,
76             HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
77             throws SystemException {
78         ProcessForumForm pfForm = (ProcessForumForm) form;
79
80         ForumDAO dao = ForumDAO.getInstance();
81         UserDAO userdao = UserDAO.getInstance();
82         HttpSession JavaDoc session = request.getSession();
83
84         User user = (User) session.getAttribute(IConst.SESSION.USER_KEY);
85         int fid = Integer.parseInt(pfForm.getFid());
86
87         try {
88
89             Forum currForum = dao.getForumInfo(fid);
90
91             // check access rights if forum invisible
92
if ((currForum.getLocked() == IConst.Forum.STATUS_INVISIBLE)
93                     && (user.getStatus() < Integer.parseInt(Configurator
94                             .getInstance().get(IConst.CONFIG.INVADER1)))) {
95                 return (mapping.findForward(IConst.TOKEN.DENIED));
96             }
97
98             request.setAttribute(IConst.REQUEST.CURR_FORUM, currForum);
99             session.setAttribute(IConst.SESSION.CURR_FORUM, currForum);
100
101             RecordsData recordsData = new RecordsData();
102             dao.fillThreadList(user, recordsData, pfForm);
103
104             Iterator JavaDoc it = recordsData.getRecords().iterator();
105
106             while (it.hasNext()) {
107                 Message mess = ((Topic) it.next()).getLastMessage();
108                 mess.setSenderInfo(userdao.getSenderInfo(mess.getSender()));
109             }
110
111             request.setAttribute(IConst.REQUEST.RECORDS_DATA, recordsData);
112
113             if (dao.checkMod(fid, user)) {
114                 request.setAttribute(IConst.REQUEST.MOD_FLAG,
115                         IConst.VALUES.TRUE);
116             }
117         } catch (SQLException JavaDoc sqle) {
118             getServlet().log("Connection.process", sqle);
119             throw new SystemException(sqle);
120         } catch (InstantiationException JavaDoc e) {
121             throw new SystemException(e);
122         } catch (IllegalAccessException JavaDoc e) {
123             throw new SystemException(e);
124         } catch (InvocationTargetException JavaDoc e) {
125             throw new SystemException(e);
126         } catch (NoSuchMethodException JavaDoc e) {
127             throw new SystemException(e);
128         }
129
130         return (mapping.findForward("showForum"));
131     }
132 }
133
Popular Tags