KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dspace > app > webui > servlet > SubscribeServlet


1 /*
2  * SubscribeServlet.java
3  *
4  * Version: $Revision: 1.6 $
5  *
6  * Date: $Date: 2005/04/20 14:22:39 $
7  *
8  * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts
9  * Institute of Technology. All rights reserved.
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are
13  * met:
14  *
15  * - Redistributions of source code must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * - Redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution.
21  *
22  * - Neither the name of the Hewlett-Packard Company nor the name of the
23  * Massachusetts Institute of Technology nor the names of their
24  * contributors may be used to endorse or promote products derived from
25  * this software without specific prior written permission.
26  *
27  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
32  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
33  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
34  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
35  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
36  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
37  * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
38  * DAMAGE.
39  */

40 package org.dspace.app.webui.servlet;
41
42 import java.io.IOException JavaDoc;
43 import java.sql.SQLException JavaDoc;
44
45 import javax.servlet.ServletException JavaDoc;
46 import javax.servlet.http.HttpServletRequest JavaDoc;
47 import javax.servlet.http.HttpServletResponse JavaDoc;
48
49 import org.apache.log4j.Logger;
50 import org.dspace.app.webui.util.JSPManager;
51 import org.dspace.app.webui.util.UIUtil;
52 import org.dspace.authorize.AuthorizeException;
53 import org.dspace.content.Collection;
54 import org.dspace.core.Context;
55 import org.dspace.eperson.EPerson;
56 import org.dspace.eperson.Subscribe;
57
58 /**
59  * Servlet for constructing the components of the "My DSpace" page
60  *
61  * @author Robert Tansley
62  * @version $Revision: 1.6 $
63  */

64 public class SubscribeServlet extends DSpaceServlet
65 {
66     /** Logger */
67     private static Logger log = Logger.getLogger(SubscribeServlet.class);
68
69     protected void doDSGet(Context context, HttpServletRequest JavaDoc request,
70             HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc,
71             SQLException JavaDoc, AuthorizeException
72     {
73         // Simply show list of subscriptions
74
showSubscriptions(context, request, response, false);
75     }
76
77     protected void doDSPost(Context context, HttpServletRequest JavaDoc request,
78             HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc,
79             SQLException JavaDoc, AuthorizeException
80     {
81         /*
82          * Parameters: submit_unsubscribe - unsubscribe from a collection
83          * submit_clear - clear all subscriptions submit_cancel - cancel update -
84          * go to My DSpace.
85          */

86         String JavaDoc submit = UIUtil.getSubmitButton(request, "submit");
87         EPerson e = context.getCurrentUser();
88
89         if (submit.equals("submit_clear"))
90         {
91             // unsubscribe user from everything
92
Subscribe.unsubscribe(context, e, null);
93
94             // Show the list of subscriptions
95
showSubscriptions(context, request, response, true);
96
97             context.complete();
98         }
99         else if (submit.equals("submit_unsubscribe"))
100         {
101             int collID = UIUtil.getIntParameter(request, "collection");
102             Collection c = Collection.find(context, collID);
103
104             // Sanity check - ignore duff values
105
if (c != null)
106             {
107                 Subscribe.unsubscribe(context, e, c);
108             }
109
110             // Show the list of subscriptions
111
showSubscriptions(context, request, response, true);
112
113             context.complete();
114         }
115         else
116         {
117             // Back to "My DSpace"
118
response.sendRedirect(response.encodeRedirectURL(request
119                     .getContextPath()
120                     + "/mydspace"));
121         }
122     }
123
124     /**
125      * Show the list of subscriptions
126      *
127      * @param context
128      * DSpace context
129      * @param request
130      * HTTP request
131      * @param response
132      * HTTP response
133      * @param updated
134      * if <code>true</code>, write a message indicating that
135      * updated subscriptions have been stored
136      */

137     private void showSubscriptions(Context context, HttpServletRequest JavaDoc request,
138             HttpServletResponse JavaDoc response, boolean updated)
139             throws ServletException JavaDoc, IOException JavaDoc, SQLException JavaDoc
140     {
141         // Subscribed collections
142
Collection[] subs = Subscribe.getSubscriptions(context, context
143                 .getCurrentUser());
144
145         request.setAttribute("subscriptions", subs);
146         request.setAttribute("updated", new Boolean JavaDoc(updated));
147
148         JSPManager.showJSP(request, response, "/mydspace/subscriptions.jsp");
149     }
150 }
151
Popular Tags