package com.vst.webapp.action;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import com.vst.model.CompanyLicense;
import com.vst.model.Photo;
import com.vst.service.CompanyLicenseManager;
import com.vst.service.PhotoManager;
import com.vst.util.FileHelper;
/**
* Created by IntelliJ IDEA.
* User: Администратор
* Date: 06.07.2009
* Time: 17:29:46
* To change this template use File | Settings | File Templates.
*/
public class CompanyLicenseListController extends AbstractVstController {
CompanyLicenseManager companyLicenseManager;
PhotoManager photoManager;
public void setPhotoManager(PhotoManager photoManager) {
this.photoManager = photoManager;
}
public void setCompanyLicenseManager(CompanyLicenseManager companyLicenseManager) {
this.companyLicenseManager = companyLicenseManager;
}
private void doDeleteLicenceInfo(HttpServletRequest request, HttpServletResponse response){
Integer id = Integer.valueOf(request.getParameter("delete"));
CompanyLicense companyLicense = companyLicenseManager.getById(id);
Integer photoId = companyLicense.getPhoto().getPhotoId();
companyLicenseManager.delete(companyLicense);
photoManager.delete(photoManager.getByIdPhoto(photoId));
}
private Integer calcViewPagesCount(int rows){
int rowsPerPage = 15;
Integer pageCount = rows;
if ((pageCount.intValue() % rowsPerPage) > 0) {
pageCount = (Integer) (1 + (pageCount.intValue() / rowsPerPage));
} else {
pageCount = (Integer) (pageCount.intValue() / rowsPerPage);
}
if (pageCount.intValue() == 0) {
pageCount = new Integer(1);
}
return pageCount;
}
private Integer processPageParam(HttpServletRequest request){
Integer page = new Integer(0);
if (request.getParameter("page") != null) {
page = (Integer) Integer.parseInt(request.getParameter("page"));
}
return page;
}
private List<?> prepareLicenceViewList(HttpServletRequest request) throws IOException, SQLException{
List list = new ArrayList();
Integer page = processPageParam(request);
if (companyLicenseManager.getList(page) != null) {
list = companyLicenseManager.getList(page);
for (int i = 0; i < list.size(); i++) {
CompanyLicense companyLicense = (CompanyLicense) list.get(i);
Photo photo = photoManager.getByIdPhoto(companyLicense.getPhoto().getPhotoId());
photoManager.prepareForOpen(photo, FileHelper.getCurrentPath(request));
companyLicense.setPhoto(photo);
}
}
return list;
}
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView("companyLicenseList");
if (isDeleteParamPresent(request)) {
doDeleteLicenceInfo(request,response);
}
Integer page = processPageParam(request);
List list = prepareLicenceViewList(request);
modelAndView.addObject("companyList", list);
Integer pageCount = calcViewPagesCount(companyLicenseManager.getList().size());
modelAndView.addObject("page", page);
modelAndView.addObject("pageCount", pageCount);
return modelAndView;
}
}