diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java index b430be1d4..b8ff8bdbd 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/LimitingResourceQueueElement.java @@ -109,6 +109,13 @@ public class LimitingResourceQueueElement extends BaseEntity { public void setStartDate(LocalDate date) { startQueuePosition.setDate(date); + notifyQueueElementIsMoved(); + } + + private void notifyQueueElementIsMoved() { + if (getLimitingResourceQueue() != null) { + getLimitingResourceQueue().queueElementMoved(this); + } } public int getStartHour() { @@ -117,6 +124,7 @@ public class LimitingResourceQueueElement extends BaseEntity { public void setStartHour(int hour) { startQueuePosition.setHour(hour); + notifyQueueElementIsMoved(); } public LocalDate getEndDate() { @@ -124,6 +132,7 @@ public class LimitingResourceQueueElement extends BaseEntity { } public void setEndDate(LocalDate date) { + notifyQueueElementIsMoved(); endQueuePosition.setDate(date); } @@ -133,6 +142,7 @@ public class LimitingResourceQueueElement extends BaseEntity { public void setEndHour(int hour) { endQueuePosition.setHour(hour); + notifyQueueElementIsMoved(); } public Date getEarlierStartDateBecauseOfGantt() { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java index dbcddd6e8..4bb6d59ee 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/LimitingResourceQueue.java @@ -66,12 +66,16 @@ public class LimitingResourceQueue extends BaseEntity { public void addLimitingResourceQueueElement(LimitingResourceQueueElement element) { element.setLimitingResourceQueue(this); limitingResourceQueueElements.add(element); - cachedGaps = null; + invalidCachedGaps(); } public void removeLimitingResourceQueueElement(LimitingResourceQueueElement element) { limitingResourceQueueElements.remove(element); element.detach(); + invalidCachedGaps(); + } + + private void invalidCachedGaps() { cachedGaps = null; } @@ -125,4 +129,9 @@ public class LimitingResourceQueue extends BaseEntity { return queueElements.subList(position + 1, queueElements.size()); } + public void queueElementMoved( + LimitingResourceQueueElement limitingResourceQueueElement) { + invalidCachedGaps(); + } + }