Subversion Repositories SmartDukaan

Rev

Rev 2427 | Rev 4762 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.catalog.dashboard.server;

import in.shop2020.catalog.dashboard.shared.Item;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gwt.core.client.GWT;

/**
 * Servlet to generate and then download master sheet  
 * It is invoked from ItemActions.java
 */

@SuppressWarnings("serial")
public class FileDownloadServlet extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        long vendorId = Long.parseLong(req.getParameter("vendorId"));
        String vendorCategory = req.getParameter("vendorCategory"); // This parameter is set in ItemActions.java
        
        CatalogServiceImpl impl = new CatalogServiceImpl();
        List<Item> itemList = impl.getItemsByVendorCategory(vendorCategory);
        GWT.log("Generating master sheet for " + vendorCategory + "...Item count = " + itemList.size());
        MasterSheetGenerator msg = new MasterSheetGenerator();
        ByteArrayOutputStream baos = msg.generateMasterSheet(vendorId, itemList);
        
        resp.setContentType("application/vnd.ms-excel");
        resp.setHeader("Content-disposition", "inline; filename=master-sheet-" + vendorCategory + ".xls");
        ServletOutputStream sos;
        try {
            sos = resp.getOutputStream();
            baos.writeTo(sos);
            sos.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}