📄 mydspaceservlet.java
字号:
/* * MyDSpaceServlet.java * * Version: $Revision: 1.14 $ * * Date: $Date: 2005/10/13 05:48:02 $ * * Copyright (c) 2002-2005, Hewlett-Packard Company and Massachusetts * Institute of Technology. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * - Neither the name of the Hewlett-Packard Company nor the name of the * Massachusetts Institute of Technology nor the names of their * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. */package org.dspace.app.webui.servlet;import java.io.IOException;import java.sql.SQLException;import java.util.LinkedList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import org.dspace.app.webui.util.JSPManager;import org.dspace.app.webui.util.UIUtil;import org.dspace.authorize.AuthorizeException;import org.dspace.content.Item;import org.dspace.content.ItemIterator;import org.dspace.content.SupervisedItem;import org.dspace.content.WorkspaceItem;import org.dspace.core.Context;import org.dspace.core.LogManager;import org.dspace.eperson.Group;import org.dspace.handle.HandleManager;import org.dspace.workflow.WorkflowItem;import org.dspace.workflow.WorkflowManager;/** * Servlet for constructing the components of the "My DSpace" page * * @author Robert Tansley * @version $Id: MyDSpaceServlet.java,v 1.14 2005/10/13 05:48:02 syeadon Exp $ */public class MyDSpaceServlet extends DSpaceServlet{ /** Logger */ private static Logger log = Logger.getLogger(MyDSpaceServlet.class); /** The main screen */ public static final int MAIN_PAGE = 0; /** The remove item page */ public static final int REMOVE_ITEM_PAGE = 1; /** The preview task page */ public static final int PREVIEW_TASK_PAGE = 2; /** The perform task page */ public static final int PERFORM_TASK_PAGE = 3; /** The "reason for rejection" page */ public static final int REJECT_REASON_PAGE = 4; protected void doDSGet(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { // GET displays the main page - everthing else is a POST showMainPage(context, request, response); } protected void doDSPost(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { // First get the step int step = UIUtil.getIntParameter(request, "step"); switch (step) { case MAIN_PAGE: processMainPage(context, request, response); break; case REMOVE_ITEM_PAGE: processRemoveItem(context, request, response); break; case PREVIEW_TASK_PAGE: processPreviewTask(context, request, response); break; case PERFORM_TASK_PAGE: processPerformTask(context, request, response); break; case REJECT_REASON_PAGE: processRejectReason(context, request, response); break; default: log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); } } // **************************************************************** // **************************************************************** // METHODS FOR PROCESSING POSTED FORMS // **************************************************************** // **************************************************************** protected void processMainPage(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { String buttonPressed = UIUtil.getSubmitButton(request, "submit_own"); // Get workspace item, if any WorkspaceItem workspaceItem; try { int wsID = Integer.parseInt(request.getParameter("workspace_id")); workspaceItem = WorkspaceItem.find(context, wsID); } catch (NumberFormatException nfe) { workspaceItem = null; } // Get workflow item specified, if any WorkflowItem workflowItem; try { int wfID = Integer.parseInt(request.getParameter("workflow_id")); workflowItem = WorkflowItem.find(context, wfID); } catch (NumberFormatException nfe) { workflowItem = null; } // Respond to button press boolean ok = false; if (buttonPressed.equals("submit_new")) { // New submission: Redirect to submit response.sendRedirect(response.encodeRedirectURL(request .getContextPath() + "/submit")); ok = true; } else if (buttonPressed.equals("submit_own")) { // Review own submissions showPreviousSubmissions(context, request, response); ok = true; } else if (buttonPressed.equals("submit_resume")) { // User clicked on a "Resume" button for a workspace item. String wsID = request.getParameter("workspace_id"); response.sendRedirect(response.encodeRedirectURL(request .getContextPath() + "/submit?resume=" + wsID)); ok = true; } else if (buttonPressed.equals("submit_delete")) { // User clicked on a "Remove" button for a workspace item if (workspaceItem != null) { log.info(LogManager.getHeader(context, "confirm_removal", "workspace_item_id=" + workspaceItem.getID())); request.setAttribute("workspace.item", workspaceItem); JSPManager.showJSP(request, response, "/mydspace/remove-item.jsp"); } else { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil.getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); } ok = true; } else if (buttonPressed.equals("submit_claim")) { // User clicked "take task" button on workflow task if (workflowItem != null) { log.info(LogManager.getHeader(context, "view_workflow", "workflow_id=" + workflowItem.getID())); request.setAttribute("workflow.item", workflowItem); JSPManager.showJSP(request, response, "/mydspace/preview-task.jsp"); ok = true; } } else if (buttonPressed.equals("submit_perform")) { // User clicked "Do This Task" button on workflow task if (workflowItem != null) { log.info(LogManager.getHeader(context, "view_workflow", "workflow_id=" + workflowItem.getID())); request.setAttribute("workflow.item", workflowItem); JSPManager.showJSP(request, response, "/mydspace/perform-task.jsp"); ok = true; } } else if (buttonPressed.equals("submit_return")) { // User clicked "Return to pool" button on workflow task if (workflowItem != null) { log.info(LogManager.getHeader(context, "unclaim_workflow", "workflow_id=" + workflowItem.getID())); WorkflowManager.unclaim(context, workflowItem, context .getCurrentUser()); showMainPage(context, request, response); context.complete(); ok = true; } } if (ok == false) { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); } } /** * Process input from remove item page * * @param context * current context * @param request * current servlet request object * @param response * current servlet response object */ private void processRemoveItem(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException { String buttonPressed = UIUtil.getSubmitButton(request, "submit_cancel"); // Get workspace item WorkspaceItem workspaceItem; try { int wsID = Integer.parseInt(request.getParameter("workspace_id")); workspaceItem = WorkspaceItem.find(context, wsID); } catch (NumberFormatException nfe) { workspaceItem = null; } if (workspaceItem == null) { log.warn(LogManager.getHeader(context, "integrity_error", UIUtil .getRequestLogInfo(request))); JSPManager.showIntegrityError(request, response); return; } // We have a workspace item if (buttonPressed.equals("submit_delete")) { // User has clicked on "delete" log.info(LogManager.getHeader(context, "remove_submission", "workspace_item_id=" + workspaceItem.getID() + ",item_id=" + workspaceItem.getItem().getID())); workspaceItem.deleteAll(); showMainPage(context, request, response); context.complete(); } else { // User has cancelled. Back to main page. showMainPage(context, request, response); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -