From 5dfb91b16c2304dce2a7b5f7f27bf07dca839bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 12 Apr 2010 19:28:49 +0200 Subject: [PATCH] ItEr53S04ValidacionEProbasFuncionaisItEr52S04: [Bug #389] Added delete button to Cost Category listing. --- .../CostCategoryCRUDController.java | 26 +++++++++++++++++++ .../web/costcategories/CostCategoryModel.java | 7 +++++ .../costcategories/ICostCategoryModel.java | 4 +++ .../costcategories/_listCostCategories.zul | 5 +++- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryCRUDController.java index 85bdb2fff..094b6684a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryCRUDController.java @@ -30,6 +30,7 @@ import java.util.Set; import org.apache.commons.logging.LogFactory; import org.hibernate.validator.InvalidValue; import org.joda.time.LocalDate; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.costcategories.entities.CostCategory; import org.navalplanner.business.costcategories.entities.HourCost; @@ -393,6 +394,20 @@ public class CostCategoryCRUDController extends GenericForwardComposer } } + public void confirmRemove(CostCategory category) { + try { + int status = Messagebox.show(_("Confirm deleting this cost category. Are you sure?"), _("Delete"), + Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION); + if (Messagebox.OK == status) { + removeCostCategory(category); + } + } catch (InterruptedException e) { + messagesForUser.showMessage( + Level.ERROR, e.getMessage()); + LOG.error(_("Error on showing removing element: ", category.getId()), e); + } + } + public HourCostListRenderer getRenderer() { return hourCostListRenderer; } @@ -412,6 +427,17 @@ public class CostCategoryCRUDController extends GenericForwardComposer Util.reloadBindings(listHourCosts); } + public void removeCostCategory(CostCategory category) { + try { + costCategoryModel.confirmRemoveCostCategory(category); + } + catch(InstanceNotFoundException e) { + messagesForUser.showMessage( + Level.ERROR, _("The cost category had already been removed.")); + } + Util.reloadBindings(listWindow.getFellowIfAny("listing")); + } + /** * RowRenderer for a @{HourCost} element * diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java index 757dba176..82fc53417 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/CostCategoryModel.java @@ -128,4 +128,11 @@ public class CostCategoryModel implements ICostCategoryModel { public void removeHourCost(HourCost hourCost) { costCategory.removeHourCost(hourCost); } + + @Override + @Transactional + public void confirmRemoveCostCategory(CostCategory category) + throws InstanceNotFoundException { + costCategoryDAO.remove(category.getId()); + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ICostCategoryModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ICostCategoryModel.java index e9207e13a..8e43e7179 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ICostCategoryModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/costcategories/ICostCategoryModel.java @@ -23,6 +23,7 @@ package org.navalplanner.web.costcategories; import java.util.List; import java.util.Set; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.costcategories.entities.CostCategory; import org.navalplanner.business.costcategories.entities.HourCost; @@ -54,4 +55,7 @@ public interface ICostCategoryModel { void addHourCost(); void removeHourCost(HourCost hourCost); + + void confirmRemoveCostCategory(CostCategory category) + throws InstanceNotFoundException; } diff --git a/navalplanner-webapp/src/main/webapp/costcategories/_listCostCategories.zul b/navalplanner-webapp/src/main/webapp/costcategories/_listCostCategories.zul index 8bad89394..eedbeb4d3 100644 --- a/navalplanner-webapp/src/main/webapp/costcategories/_listCostCategories.zul +++ b/navalplanner-webapp/src/main/webapp/costcategories/_listCostCategories.zul @@ -36,7 +36,10 @@ tooltiptext="${i18n:_('Edit')}" onClick="controller.goToEditForm(self.parent.parent.value);"> - +