ReturnLinkManagerService.java

00001 /*
00002  * OpenMobileIS - a free Java(TM) Framework for mobile applications Java(TM)
00003  * Copyright (C) 2004-2006 Philippe Delrieu
00004  * All rights reserved.
00005  * Contact: pdelrieu@openmobileis.org
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
00020  * USA
00021  *
00022  *  Author : Philippe Delrieu
00023  *  
00024  *  Modifications :
00025  *  2004 Creation P.Delrieu
00026  *  2004 Modified by Romain Beaugrand
00027  * 
00028  */
00029 
00030 package org.openmobileis.services.common;
00031 
00032 import java.io.IOException;
00033 
00034 import javax.servlet.ServletException;
00035 import javax.servlet.http.HttpServletRequest;
00036 import javax.servlet.http.HttpServletResponse;
00037 
00038 import org.openmobileis.services.MainSubEditService;
00039 import org.openmobileis.services.Service;
00040 import org.openmobileis.services.SimpleEditService;
00041 import org.openmobileis.services.SubEditService;
00042 import org.openmobileis.services.navigation.NavigationBarManager;
00043 import org.openmobileis.services.navigation.NavigationBarServiceData;
00044 import org.openmobileis.services.servlet.OpenmisHttpServletRequest;
00045 
00052 public class ReturnLinkManagerService extends Service {
00053 
00057   public ReturnLinkManagerService() {
00058     super();
00059   }
00060 
00061   /* (non-Javadoc)
00062    * @see org.openmobileis.embedded.services.Service#run(org.openmobileis.embedded.webserver.http.HttpServletRequest, org.openmobileis.embedded.webserver.http.HttpServletResponse)
00063    */
00064   public void run(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
00065                 
00066           //-------------- treatment of the MainSubEditService --------------
00067                 //remove the session of the edit when a cancel is done
00068                 NavigationBarServiceData dataTemp = NavigationBarManager.getManager().getCurrentServiceData();
00069                 Service service = ServiceManager.getManager().getServiceByURI(dataTemp.getUri());
00070                 if(service instanceof MainSubEditService){
00071                         MainSubEditService mainEditService = (MainSubEditService)service;
00072                         mainEditService.removeSessionData(req);
00073                 } else if ((service instanceof SimpleEditService) && !(service instanceof SubEditService))      {
00074                   SimpleEditService editService = (SimpleEditService)service;
00075                         editService.removeSessionData(req);
00076                 }
00077                 
00078           
00079                 //---------------------------------------------------------------
00080                 
00081           String retNbStr = req.getParameter("servnb");
00082                 if (retNbStr==null)     {
00083                         NavigationBarManager.getManager().popService(); //pop current service
00084                 } else  {
00085                         int retNb = Integer.parseInt(retNbStr);
00086                         NavigationBarManager.getManager().popToService(retNb); // pop to return service
00087                 }
00088                 NavigationBarServiceData data = NavigationBarManager.getManager().getCurrentServiceData();
00089                 NavigationBarManager.getManager().popService(); //pop return service before being re-add
00090                 ((OpenmisHttpServletRequest)req).addParameters(data.getParameters());
00091                 
00092 
00093                 
00094                 ServiceManager.getManager().redirectToServiceURI(data.getUri(), req, res);
00095   }
00096   
00097         public String getName() {
00098                 return "admin.ReturnLinkManagerService";
00099         }
00100 
00101   
00102         public String getServiceUri() {
00103                 return ServiceManager.getManager().getServiceBaseURI()+"/admin/managereturn";
00104         }
00105 
00106 }

Generated on Mon Dec 4 11:03:29 2006 for OpenMobileIS by  doxygen 1.5.1-p1