diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningController.java index bf4565e63..2fb9ebffa 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/advances/AdvanceAssignmentPlanningController.java @@ -65,6 +65,8 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer private IReloadChartListener reloadOverallProgressListener; + private IReloadChartListener reloadEarnedValueListener; + @Override public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); @@ -114,6 +116,7 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer advanceAssignmentPlanningModel.accept(); updateTaskComponents(); close(); + reloadEarnedValueProgress(); reloadOverallProgress(); } } @@ -124,6 +127,12 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer } } + private void reloadEarnedValueProgress() { + if (reloadEarnedValueListener != null) { + reloadEarnedValueListener.reloadChart(); + } + } + private void updateTaskComponents() { if (context.getRelativeTo() instanceof TaskComponent) { // update the current taskComponent @@ -165,4 +174,8 @@ public class AdvanceAssignmentPlanningController extends GenericForwardComposer reloadOverallProgressListener = reloadChartListener; } + public void setReloadEarnedValueListener(IReloadChartListener reloadEarnedValueListener) { + this.reloadEarnedValueListener = reloadEarnedValueListener; + } + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index 3cd3d6600..233fee598 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -435,6 +435,25 @@ public class OrderPlanningModel implements IOrderPlanningModel { }); } }); + advanceAssignmentPlanningController.setReloadEarnedValueListener(new IReloadChartListener() { + + @Override + public void reloadChart() { + Registry.getTransactionService().runOnReadOnlyTransaction(new IOnTransaction() { + + @Override + public Void execute() { + if (isExecutingOutsideZKExecution()) { + return null; + } + if (planner.isVisibleChart()) { + earnedValueChart.fillChart(); //update earned value chart + } + return null; + } + }); + } + }); } private Tabpanel createOverallProgressTab( @@ -535,10 +554,12 @@ public class OrderPlanningModel implements IOrderPlanningModel { refillLoadChartWhenNeeded(changeHooker, planner, loadChart); } + private Chart earnedValueChart; + private void setupEarnedValueChart(Timeplot chartEarnedValueTimeplot, OrderEarnedValueChartFiller earnedValueChartFiller, Planner planner, ChangeHooker changeHooker) { - Chart earnedValueChart = setupChart(planningState.getOrder(), + earnedValueChart = setupChart(planningState.getOrder(), earnedValueChartFiller, chartEarnedValueTimeplot, planner); refillLoadChartWhenNeeded(changeHooker, planner, earnedValueChart); setEventListenerConfigurationCheckboxes(earnedValueChart);