/********************************************************************************** * $URL: https://source.sakaiproject.org/svn/rwiki/trunk/rwiki-tool/tool/src/java/uk/ac/cam/caret/sakai/rwiki/tool/command/CommentSaveCommand.java $ * $Id: CommentSaveCommand.java 21065 2007-02-07 00:15:30Z ian@caret.cam.ac.uk $ *********************************************************************************** * * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation. * * Licensed under the Educational Community License, Version 1.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.opensource.org/licenses/ecl1.php * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **********************************************************************************/ package uk.ac.cam.caret.sakai.rwiki.tool.command; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import uk.ac.cam.caret.sakai.rwiki.tool.RequestScopeSuperBean; import uk.ac.cam.caret.sakai.rwiki.tool.bean.helper.ViewParamsHelperBean; import uk.ac.cam.caret.sakai.rwiki.utils.NameHelper; /** * @author ieb */ public class CommentSaveCommand extends SaveCommand { /* * (non-Javadoc) * * @see uk.ac.cam.caret.sakai.rwiki.tool.command.SaveCommand#successfulUpdateDispatch(javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse) */ protected void successfulUpdateDispatch(Dispatcher dispatcher,HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestScopeSuperBean rssb = RequestScopeSuperBean .getFromRequest(request); ViewParamsHelperBean vphb = (ViewParamsHelperBean) rssb .getNameHelperBean(); String localName = NameHelper.localizeName(vphb.getGlobalName(), vphb .getPageSpace()); String globalName = vphb.getGlobalName(); int baseNameI = localName.indexOf("."); String baseName = localName; if (baseNameI > 0) { int nextI = localName.indexOf(".",baseNameI+1); baseName = null; while (nextI > 0 && baseName == null) { try { String test = localName.substring(baseNameI + 1, nextI); Integer.parseInt(localName.substring(baseNameI + 1, nextI)); baseName = localName.substring(0, baseNameI); } catch (NumberFormatException e) { baseNameI = nextI; nextI = localName.indexOf(".", baseNameI + 1); } } if ( baseName == null ) { try { String test = localName.substring(baseNameI + 1); Integer.parseInt(localName.substring(baseNameI + 1)); baseName = localName.substring(0, baseNameI); } catch (NumberFormatException e) { baseName = localName; } } } globalName = NameHelper.globaliseName(baseName, vphb.getPageSpace()); vphb.setGlobalName(globalName); // force a refresh rssb.getCurrentPageName(true); rssb.getCurrentRWikiObject(true); super.successfulUpdateDispatch(dispatcher,request, response); } }