From 9fe98c932db8f7b727e9f3360101f4a0f317e38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 20 Jul 2011 17:08:55 +0200 Subject: [PATCH] Reattach the order The order and resources already present in PlanningState are reused. FEA: ItEr75S11PreventLooseChanges --- .../planner/order/PlanningStateCreator.java | 7 +++++ .../web/resourceload/ResourceLoadModel.java | 26 ++++++++++--------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java index b9c955bb8..c7c3df5ce 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java @@ -502,6 +502,13 @@ public class PlanningStateCreator { return getScenarioInfo().getCurrentScenario(); } + public void reattach() { + orderDAO.reattach(order); + if (getRootTask() != null) { + taskDAO.reattach(getRootTask()); + } + } + } private class EmptyPlannigState extends PlanningState { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java index 2624bfa41..e2341cc0e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java @@ -112,7 +112,7 @@ public class ResourceLoadModel implements IResourceLoadModel { private List loadTimeLines; private Interval viewInterval; - private Order filterBy; + private PlanningState filterBy; private boolean filterByResources = true; @@ -164,7 +164,9 @@ public class ResourceLoadModel implements IResourceLoadModel { @Override @Transactional(readOnly = true) public void initGlobalView(PlanningState filterBy, boolean filterByResources) { - this.filterBy = filterBy.getOrder(); + this.filterBy = filterBy; + this.filterBy.reattach(); + this.filterBy.reassociateResourcesWithSession(); this.filterByResources = filterByResources; doGlobalView(); } @@ -252,7 +254,7 @@ public class ResourceLoadModel implements IResourceLoadModel { private Map> findAllocationsByCriterion() { if (filter()) { - List tasks = justTasks(filterBy + List tasks = justTasks(filterBy.getOrder() .getAllChildrenAssociatedTaskElements()); return findAllocationsGroupedByCriteria(getCriterionsOn(tasks)); } else { @@ -404,7 +406,7 @@ public class ResourceLoadModel implements IResourceLoadModel { private List resourcesForActiveTasks() { return Resource.sortByName(resourcesDAO - .findResourcesRelatedTo(justTasks(filterBy + .findResourcesRelatedTo(justTasks(filterBy.getOrder() .getAllChildrenAssociatedTaskElements()))); } @@ -484,11 +486,11 @@ public class ResourceLoadModel implements IResourceLoadModel { // REVISAR ESTO ANTES DE ACABAR if (filter()) { // build time lines for current order - if (byOrder.get(filterBy) != null) { - result.addAll(buildTimeLinesForOrder(filterBy, criterion, - byOrder.get(filterBy))); + if (byOrder.get(filterBy.getOrder()) != null) { + result.addAll(buildTimeLinesForOrder(filterBy.getOrder(), + criterion, byOrder.get(filterBy.getOrder()))); } - byOrder.remove(filterBy); + byOrder.remove(filterBy.getOrder()); // build time lines for other orders LoadTimeLine lineOthersOrders = buildTimeLinesForOtherOrders( criterion, byOrder); @@ -674,12 +676,12 @@ public class ResourceLoadModel implements IResourceLoadModel { Map>> byOrder = byOrder(sortedByStartDate); if (filter()) { - if (byOrder.get(filterBy) != null) { + if (byOrder.get(filterBy.getOrder()) != null) { // build time lines for current order - result.addAll(buildTimeLinesForOrder(resource, byOrder - .get(filterBy))); + result.addAll(buildTimeLinesForOrder(resource, + byOrder.get(filterBy.getOrder()))); } - byOrder.remove(filterBy); + byOrder.remove(filterBy.getOrder()); // build time lines for other orders LoadTimeLine lineOthersOrders = buildTimeLinesForOtherOrders( resource, byOrder);