diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java index da26e11b6..757dca248 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java @@ -470,8 +470,11 @@ public class LimitingResourcesController extends GenericForwardComposer { for (LimitingResourceQueueElement each : inserted) { // FIXME visually wrong if an element jumps from a queue to // another - limitingResourcesPanel.refreshQueue(each - .getLimitingResourceQueue()); + LimitingResourceQueue queue = each.getLimitingResourceQueue(); + // Remove all dependency components associated to element + limitingResourcesPanel.removeDependencyComponentsFor(each); + // Dependencies will be created again on refreshing queue + limitingResourcesPanel.refreshQueue(queue); } } else { showErrorMessage(_("Cannot allocate selected element. There is not any queue " + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesPanel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesPanel.java index ca645a7bb..1fa94d084 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesPanel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesPanel.java @@ -429,6 +429,11 @@ public class LimitingResourcesPanel extends HtmlMacroComponent { .getLimitingResourceQueueElement()); } + public void removeDependencyComponentsFor(LimitingResourceQueueElement element) { + QueueTask queueTask = queueListComponent.getQueueTask(element); + dependencyList.removeDependencyComponents(queueTask); + } + public void refreshQueue(LimitingResourceQueue queue) { queueListComponent.refreshQueue(queue); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/QueueListComponent.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/QueueListComponent.java index bc36f6bfc..ad184bd94 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/QueueListComponent.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/QueueListComponent.java @@ -142,6 +142,23 @@ public class QueueListComponent extends HtmlMacroComponent implements return result; } + /** + * Returns {@link QueueTask} associated to element + * + * @param element + * @return + */ + public QueueTask getQueueTask(LimitingResourceQueueElement element) { + QueueComponent queue = fromQueueToComponent.get(element.getLimitingResourceQueue()); + for (QueueTask each: queue.getQueueTasks()) { + LimitingResourceQueueElement target = each.getLimitingResourceQueueElement(); + if (element.getId().equals(target.getId())) { + return each; + } + } + return null; + } + public Map getLimitingResourceElementToQueueTaskMap() { Map result = new HashMap(); for (QueueTask each : getQueueTasks()) {