package com.vst.webapp.action;
import com.vst.model.Answer;
import com.vst.model.Region;
import com.vst.service.AnswerManager;
import com.vst.service.RegionManager;
import org.apache.commons.lang.StringUtils;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
/**
* Created by IntelliJ IDEA.
* User: Rustem
* Date: 02.07.2008
* Time: 21:55:05
* To change this template use File | Settings | File Templates.
*/
public class RegionFormController extends BaseFormController {
private RegionManager regionManager;
public void setRegionManager(RegionManager regionManager) {
this.regionManager = regionManager;
}
public RegionFormController() {
setCommandName("region");
setCommandClass(Region.class);
}
protected Object formBackingObject(HttpServletRequest request)
throws Exception {
String regionId = request.getParameter("regionId");
Region region = null;
if (!StringUtils.isEmpty(regionId)) {
region = regionManager.getRegion(regionId);
} else {
region = new Region();
}
region.setDocLocation(request.getParameter("docLocation"));
if (request.getParameter("edited") != null) {
request.setAttribute("addition", "?edited=1");
region.setEdited(true);
}
return region;
}
public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command,
BindException errors)
throws Exception {
if (log.isDebugEnabled()) {
log.debug("entering 'onSubmit' method...");
}
Region region = (Region) command;
boolean isNew = (region.getRegionId() == null);
Locale locale = request.getLocale();
if (request.getParameter("delete") != null) {
regionManager.removeRegion(region.getRegionId().toString());
saveMessage(request, getText("region.deleted", locale));
if (region.isEdited()) {
return new ModelAndView("redirect:updating.html?id=" + region.getRegionId() + "&fieldId=" + request.getParameter("fieldId"));
}
} else {
regionManager.saveRegion(region);
String key = (isNew) ? "region.added" : "region.updated";
saveMessage(request, getText(key, locale));
if (region.isEdited()) {
return new ModelAndView("redirect:updating.html?id=" + region.getRegionId() + "&fieldId=" + request.getParameter("fieldId"));
}
}
return new ModelAndView("redirect:" + region.getDocLocation());
}
}