From 111bac3e8f86a8a98d8212974a3464c4c1de7aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 7 Dec 2010 12:55:42 +0100 Subject: [PATCH] [Bug #748] Fix bug If the planning state is empty, the update and refreshing operations can't be done. FEA: ItEr64S03BugFixing --- .../web/planner/order/OrderPlanningModel.java | 15 ++++++++++----- .../web/planner/order/PlanningState.java | 12 ++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java index a2d2af4ab..b21917cb2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/OrderPlanningModel.java @@ -1554,6 +1554,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { @Override public void onEvent(Event event) throws Exception { + if (planningState.isEmpty()) { + return; + } transactionService .runOnReadOnlyTransaction(new IOnTransaction() { @Override @@ -1568,6 +1571,9 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } public void refresh() { + if (planningState.isEmpty()) { + return; + } TaskGroup rootTask = planningState.getRootTask(); setAdvancePercentage(rootTask.getAdvancePercentage()); @@ -1584,11 +1590,10 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } private void updateCriticalPathProgress(TaskGroup rootTask) { - if (rootTask != null && planningState.getPlanner() != null) { - taskElementDAO.save(rootTask); - List criticalPath = planningState.getPlanner().getCriticalPath(); - rootTask.updateCriticalPathProgress(criticalPath); - } + taskElementDAO.save(rootTask); + List criticalPath = planningState.getPlanner() + .getCriticalPath(); + rootTask.updateCriticalPathProgress(criticalPath); } private void setAdvancePercentage(BigDecimal value) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningState.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningState.java index 7e007f2a3..9f5df4b4b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningState.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningState.java @@ -223,6 +223,8 @@ public abstract class PlanningState { return new EmptyPlannigState(currentScenario); } + public abstract boolean isEmpty(); + public abstract Collection getTasksToSave(); public abstract List getInitial(); @@ -402,6 +404,11 @@ public abstract class PlanningState { return planner; } + @Override + public boolean isEmpty() { + return false; + } + } private static class EmptyPlannigState extends PlanningState { @@ -453,5 +460,10 @@ public abstract class PlanningState { return null; } + @Override + public boolean isEmpty() { + return true; + } + } } \ No newline at end of file