diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java index 8a53b5415..c64e891b9 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/adapters/PlannerConfiguration.java @@ -42,6 +42,10 @@ import org.zkoss.zk.ui.Component; */ public class PlannerConfiguration implements IDisabilityConfiguration { + public interface IReloadChartListener { + public void reloadChart(); + } + private static class NullCommand implements ICommand { @Override @@ -118,6 +122,8 @@ public class PlannerConfiguration implements IDisabilityConfiguration { private IDetailItemModificator secondLevelModificators = SeveralModificators .empty(); + private List reloadChartListeners = new ArrayList(); + public PlannerConfiguration(IAdapterToTaskFundamentalProperties adapter, IStructureNavigator navigator, List data) { this.adapter = adapter; @@ -272,4 +278,15 @@ public class PlannerConfiguration implements IDisabilityConfiguration { .create(firstLevelModificators); } + public void addReloadChartListener(IReloadChartListener reloadChartListener) { + Validate.notNull(reloadChartListener); + this.reloadChartListeners.add(reloadChartListener); + } + + public void reloadCharts() { + for (IReloadChartListener each : this.reloadChartListeners) { + each.reloadChart(); + } + } + } 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 56362b392..7126d626a 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 @@ -87,6 +87,7 @@ import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; +import org.zkoss.ganttz.adapters.PlannerConfiguration.IReloadChartListener; import org.zkoss.ganttz.extensions.ICommand; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.zoom.DetailItem; @@ -221,11 +222,13 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { Chart loadChart = setupChart(orderReloaded, new OrderLoadChartFiller(orderReloaded), chartLoadTimeplot, planner.getTimeTracker()); - refillLoadChartWhenNeeded(planner, saveCommand, loadChart); + refillLoadChartWhenNeeded(configuration, planner, saveCommand, + loadChart); Chart earnedValueChart = setupChart(orderReloaded, earnedValueChartFiller, chartEarnedValueTimeplot, planner.getTimeTracker()); - refillLoadChartWhenNeeded(planner, saveCommand, earnedValueChart); + refillLoadChartWhenNeeded(configuration, planner, saveCommand, + earnedValueChart); setEventListenerConfigurationCheckboxes(earnedValueChart); } @@ -471,7 +474,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } } - private void refillLoadChartWhenNeeded(Planner planner, + private void refillLoadChartWhenNeeded( + PlannerConfiguration configuration, Planner planner, ISaveCommand saveCommand, final Chart loadChart) { planner.getTimeTracker().addZoomListener(fillOnZoomChange(loadChart)); saveCommand.addListener(fillChartOnSave(loadChart)); @@ -481,6 +485,13 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { loadChart.fillChart(); } }); + configuration.addReloadChartListener(new IReloadChartListener() { + + @Override + public void reloadChart() { + loadChart.fillChart(); + } + }); } private void addAdditional(List> additional,