package net.sourceforge.solexatools.webapp.controller; import java.util.LinkedList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sourceforge.seqware.common.model.Registration; import net.sourceforge.seqware.common.util.Log; import net.sourceforge.solexatools.Security; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.BaseCommandController; /** * <p> * ChangeNumberPopupPageController class. * </p> * * @author boconnor * @version $Id: $Id */ public class ChangeNumberPopupPageController extends BaseCommandController { /** Constant <code>SEPARATOR="java.io.File.separator"</code> */ public static final String SEPARATOR = java.io.File.separator; /** * <p> * Constructor for ChangeNumberPopupPageController. * </p> */ public ChangeNumberPopupPageController() { super(); setSupportedMethods(new String[] { METHOD_GET }); } private void setNumberCurrentPage(HttpServletRequest request, Integer numberCurrentPage) { request.getSession(false).setAttribute("numberCurrentPage", numberCurrentPage); } private Integer getNumberCurrentPage(HttpServletRequest request) { Integer numberCurrentPage = (Integer) request.getSession(false).getAttribute("numberCurrentPage"); if (numberCurrentPage == null) { numberCurrentPage = 0; } return numberCurrentPage; } private String incrementNumberCurrentPage(HttpServletRequest request) { Log.info("Call increment .."); Integer numberCurrentPage = getNumberCurrentPage(request); List<String> listSavedPage = getListSavedPage(request); Log.info("Start. Number page = " + numberCurrentPage + "; List page size = " + listSavedPage.size()); if (numberCurrentPage < listSavedPage.size()) { Log.info("Do ++ "); numberCurrentPage++; setNumberCurrentPage(request, numberCurrentPage); } Log.info("Start. Number page = " + numberCurrentPage + "; List page size = " + listSavedPage.size()); return getCurrentPage(request); } private String decreaseNumberCurrentPage(HttpServletRequest request) { Integer numberCurrentPage = getNumberCurrentPage(request); Log.info("Call decrease .."); Log.info("Start. Number curr page = " + numberCurrentPage); if (numberCurrentPage > 1) { Log.info("Do -- "); numberCurrentPage--; setNumberCurrentPage(request, numberCurrentPage); } Log.info("End. Number curr page = " + numberCurrentPage); return getCurrentPage(request); } private void setListSavedPage(HttpServletRequest request, List<String> listSavedPage) { request.getSession(false).setAttribute("listSavedPage", listSavedPage); } private List<String> getListSavedPage(HttpServletRequest request) { List<String> listSavedPage = (List<String>) request.getSession(false).getAttribute("listSavedPage"); if (listSavedPage == null) { listSavedPage = new LinkedList<>(); } return listSavedPage; } private String getCurrentPage(HttpServletRequest request) { Integer numberCurrentPage = getNumberCurrentPage(request); List<String> listSavedPage = getListSavedPage(request); return listSavedPage.get(numberCurrentPage - 1); } private String getStartPage(HttpServletRequest request) { setNumberCurrentPage(request, 1); return getCurrentPage(request); } private String getCurrentPage(HttpServletRequest request, String action) { String currentPage = ""; if ("next".equals(action)) { currentPage = incrementNumberCurrentPage(request); } if ("previous".equals(action)) { currentPage = decreaseNumberCurrentPage(request); } if ("reload".equals(action)) { currentPage = getCurrentPage(request); } if ("home".equals(action)) { currentPage = getStartPage(request); } return currentPage; } /** * {@inheritDoc} * * @return * @throws java.lang.Exception */ @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { // Registration registration = Security.requireRegistration(request, response); Registration registration = Security.getRegistration(request); if (registration == null) return new ModelAndView("redirect:/login.htm"); /** * Pass registration so that we can filter the list if its appropriate to do so. */ String action = getRequestedAction(request); getCurrentPage(request, action); ModelAndView modelAndView = null;// new ModelAndView("ResultUnpack"); request.getSession(false).setAttribute("isUserAbortedViewIndexPage", false); return modelAndView; } private String getRequestedAction(HttpServletRequest request) { return request.getParameter("action"); } }