package org.springmodules.xt.examples.mvc;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springmodules.web.servlet.mvc.EnhancedSimpleFormController;
import org.springmodules.xt.ajax.web.servlet.AjaxModelAndView;
import org.springmodules.xt.examples.domain.IEmployee;
import org.springmodules.xt.examples.mvc.form.EmployeesListForm;
import org.springmodules.xt.examples.domain.MemoryRepository;
import org.springmodules.xt.examples.domain.Office;
/**
* Form controller for listing employees.
*
* @author Sergio Bossa
*/
public class ListEmployeesController extends EnhancedSimpleFormController {
private MemoryRepository store;
protected Object formBackingObject(HttpServletRequest request) throws Exception {
return new EmployeesListForm();
}
protected Map referenceData(HttpServletRequest request) throws Exception {
Collection offices = store.getOffices();
Map result = new HashMap();
result.put("offices", offices);
return result;
}
protected ModelAndView onSubmit(Object command, BindException errors) throws Exception {
EmployeesListForm form = (EmployeesListForm) command;
Office office = form.getOffice();
Collection<IEmployee> employees = store.getEmployeesByOffice(office);
Map model = new HashMap(3);
model.put("employees", employees);
return new AjaxModelAndView(this.getSuccessView(), errors, model);
}
public void setStore(MemoryRepository store) {
this.store = store;
}
}