0,0 → 1,102 |
package ak.itru.core.action; |
|
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
|
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
|
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
|
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
|
import ak.itru.util.StringConverter; |
import ak.itru.util.UserException; |
import ak.itru.core.model.Apartment; |
import ak.itru.core.model.ApartmentManager; |
|
public final class AdminApartmentAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(ApartmentManager.getInstance().listApartments()); |
Collections.sort(list, ApartmentManager.NAME_COMPARATOR); |
request.setAttribute("apartments", list); |
return mapping.findForward("default"); |
} |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long apartmentId = StringConverter.parseLong(theForm.get("id")); |
Apartment apartment; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "ApartmentEditForm"); |
|
if(apartmentId == null) { |
apartment = ApartmentManager.getInstance().create(); |
} |
else { |
apartment = ApartmentManager.getInstance().get(apartmentId); |
showForm.set("name", apartment.getName()); |
showForm.set("address", apartment.getAddress()); |
showForm.set("price", StringConverter.toCurrency(apartment.getPrice())); |
showForm.set("url", apartment.getUrl()); |
showForm.set("comment", apartment.getComment()); |
} |
|
return mapping.findForward("default"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long apartmentId = StringConverter.parseLong(theForm.get("id")); |
Apartment apartment = ApartmentManager.getInstance().get(apartmentId); |
|
ApartmentManager.getInstance().delete(apartment); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long apartmentId = StringConverter.parseLong(theForm.get("id")); |
Apartment apartment; |
|
if(apartmentId == null) { |
apartment = ApartmentManager.getInstance().create(); |
} |
else { |
apartment = ApartmentManager.getInstance().get(apartmentId); |
} |
|
String name = (String)theForm.get("name"); |
if(ApartmentManager.getInstance().nameExists(apartment, name)) { |
throw new UserException("ak.itru.core.apartment.name.nonunique"); |
} |
apartment.setName(name); |
|
apartment.setAddress((String)theForm.get("address")); |
apartment.setPrice(StringConverter.parseCurrency(theForm.get("price"))); |
apartment.setUrl((String)theForm.get("url")); |
apartment.setComment((String)theForm.get("comment")); |
|
ApartmentManager.getInstance().save(apartment); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
} |