From 0a0a80b9a1dc7ea218317f70f3935d2122d1e92f Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Tue, 19 Apr 2011 19:51:44 +0200 Subject: [PATCH] [Bug #988] Remove former resource calendar when a new calendar is selected for a machine FEA: ItEr74S04BugFixing --- .../web/resources/machine/IMachineModel.java | 3 +++ .../machine/MachineCRUDController.java | 2 +- .../web/resources/machine/MachineModel.java | 21 +++++++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java index 4d0535c47..d836288da 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/IMachineModel.java @@ -105,4 +105,7 @@ public interface IMachineModel extends IIntegrationEntityModel { boolean canRemove(Machine machine); void confirmRemove(Machine machine) throws InstanceNotFoundException; + + void removeCalendar(); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java index d5e4c3a8d..5515c969b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineCRUDController.java @@ -397,8 +397,8 @@ public class MachineCRUDController extends GenericForwardComposer { @Override public void cancel() { + machineModel.removeCalendar(); resourceCalendarModel.cancel(); - machineModel.setCalendarOfMachine(null); reloadWindow(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java index 9a1bee852..ba6af9800 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java @@ -86,6 +86,7 @@ public class MachineModel extends IntegrationEntityModel implements * */ private Machine machine; + private ResourceCalendar calendarToRemove = null; private Map criterions = new HashMap(); private Map workers = new HashMap(); private List machineList = new ArrayList(); @@ -259,9 +260,22 @@ public class MachineModel extends IntegrationEntityModel implements @Override @Transactional public void confirmSave() throws ValidationException { + removeCalendarIfNeeded(); resourceDAO.save(machine); } + private void removeCalendarIfNeeded() { + if (calendarToRemove != null) { + try { + resourceDAO.reattach(machine); + baseCalendarDAO.remove(calendarToRemove.getId()); + calendarToRemove = null; + } catch (InstanceNotFoundException e) { + LOG.error("Couldn't remove calendar"); + } + } + } + @Override @Transactional(readOnly = true) public List getBaseCalendars() { @@ -377,4 +391,11 @@ public class MachineModel extends IntegrationEntityModel implements public IntegrationEntity getCurrentEntity() { return this.machine; } + + @Override + public void removeCalendar() { + calendarToRemove = machine.getCalendar(); + machine.setCalendar(null); + } + }