Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 12 → Rev 13

/kickup/trunk/src/ak/kickup/core/action/AdminApartmentAction.java
0,0 → 1,102
package ak.kickup.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.kickup.util.StringConverter;
import ak.kickup.util.UserException;
import ak.kickup.core.model.Apartment;
import ak.kickup.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.kickup.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");
}
}
}