1 16 17 package info.jtrac.webflow; 18 19 import info.jtrac.domain.ExcelFile; 20 import org.springframework.validation.Errors; 21 import org.springframework.web.multipart.MultipartFile; 22 import org.springframework.web.multipart.MultipartHttpServletRequest; 23 import org.springframework.webflow.execution.Event; 24 import org.springframework.webflow.execution.RequestContext; 25 import org.springframework.webflow.execution.ScopeType; 26 import org.springframework.webflow.context.servlet.ServletExternalContext; 27 28 31 public class ExcelFormAction extends AbstractFormAction { 32 33 public ExcelFormAction() { 34 setFormObjectClass(ExcelFile.class); 35 setFormObjectName("excelFile"); 36 setFormObjectScope(ScopeType.FLOW); 37 } 38 39 public Event uploadHandler(RequestContext context) throws Exception { 40 ServletExternalContext servletContext = (ServletExternalContext) context.getLastEvent().getSource(); 41 MultipartHttpServletRequest request = (MultipartHttpServletRequest) servletContext.getRequest(); 42 MultipartFile multipartFile = request.getFile("file"); 43 if(multipartFile.isEmpty()) { 44 return error(); 45 } 46 ExcelFile excelFile = null; 47 try { 48 excelFile = new ExcelFile(multipartFile.getInputStream()); 49 } catch (Exception e) { 50 Errors errors = getFormErrors(context); 51 errors.reject("excel_upload.error.invalidFile"); 52 return error(); 53 } 54 context.getFlowScope().put("excelFile", excelFile); 55 return success(); 56 } 57 58 public Event submitHandler(RequestContext context) throws Exception { 59 ExcelFile excelFile = (ExcelFile) getFormObject(context); 60 switch (excelFile.getAction()) { 61 case 1: excelFile.deleteSelectedRowsAndColumns(); break; 62 case 2: excelFile.convertSelectedColumnsToDate(); break; 63 case 3: excelFile.concatenateSelectedColumns(); break; 64 case 4: excelFile.extractSummaryFromSelectedColumn(); break; 65 } 66 return success(); 67 } 68 69 } 70 | Popular Tags |