/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * copyright 2003-2005 Akaza Research */ package org.akaza.openclinica.control.managestudy; import org.akaza.openclinica.bean.managestudy.StudyEventDefinitionBean; import org.akaza.openclinica.control.form.FormProcessor; import org.akaza.openclinica.dao.managestudy.StudyEventDefinitionDAO; import org.akaza.openclinica.view.Page; /** * Processes request to change ordinals of study event definitions in a study * * @author jxu */ public class ChangeDefinitionOrdinalServlet extends ChangeOrdinalServlet { @Override public void processRequest() throws Exception { FormProcessor fp = new FormProcessor(request); int current = fp.getInt("current"); int previous = fp.getInt("previous"); StudyEventDefinitionDAO seddao = new StudyEventDefinitionDAO(sm.getDataSource()); increase(current, previous, seddao); String url=response.encodeRedirectURL("ListEventDefinition"); response.sendRedirect(url); // forwardPage(Page.LIST_DEFINITION_SERVLET); } /** * increase the ordinal for current object and decrease the ordinal of the * previous one * * @param idCurrent * @param idPrevious */ private void increase(int idCurrent, int idPrevious, StudyEventDefinitionDAO dao) { if (idCurrent > 0) { StudyEventDefinitionBean current = (StudyEventDefinitionBean) dao.findByPK(idCurrent); int currentOrdinal = current.getOrdinal(); current.setOrdinal(currentOrdinal - 1); dao.update(current); } if (idPrevious > 0) { StudyEventDefinitionBean previous = (StudyEventDefinitionBean) dao.findByPK(idPrevious); int previousOrdinal = previous.getOrdinal(); previous.setOrdinal(previousOrdinal + 1); dao.update(previous); } } }