From 771f6f161a47d6b06fc65f911b3d652fa4a8e1d0 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Tue, 6 Oct 2009 16:03:04 +0200 Subject: [PATCH] ItEr29S13CUVistaRecursosTempoEmpresa: Using TimeTracker interval to draw the chart. --- .../web/planner/IOrderPlanningModel.java | 3 ++ .../web/planner/OrderPlanningController.java | 5 +++ .../web/planner/OrderPlanningModel.java | 34 +++++++++++++++---- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IOrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IOrderPlanningModel.java index ef7fe339a..976f154bc 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IOrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/IOrderPlanningModel.java @@ -24,6 +24,7 @@ import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.web.common.ViewSwitcher; import org.navalplanner.web.planner.allocation.ResourceAllocationController; +import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.PlannerConfiguration; /** @@ -33,6 +34,8 @@ public interface IOrderPlanningModel { public interface IConfigurationOnTransaction { public void use(PlannerConfiguration configuration); + + public Planner getPlannerBeingConfigured(); } void createConfiguration(Order order, ViewSwitcher viewSwitcher, diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningController.java index a44197b39..8891d0df5 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningController.java @@ -98,6 +98,11 @@ public class OrderPlanningController implements public void use(PlannerConfiguration configuration) { planner.setConfiguration(configuration); } + + @Override + public Planner getPlannerBeingConfigured() { + return planner; + } }); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java index f66bff155..ee8a1b219 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/OrderPlanningModel.java @@ -48,8 +48,10 @@ import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; import org.zkoss.ganttz.adapters.PlannerConfiguration; +import org.zkoss.ganttz.util.Interval; import org.zkoss.zul.Chart; import org.zkoss.zul.SimpleXYModel; import org.zkoss.zul.XYModel; @@ -131,9 +133,32 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { .setCalendarAllocationController(calendarAllocationController); configuration.addCommandOnTask(calendarAllocationCommand); - configuration.setChartComponent(getChartComponent(orderReloaded)); + Chart chartComponent = new Chart(); + configuration.setChartComponent(chartComponent); - onTransaction.use(configuration); + withChartFilling(onTransaction, orderReloaded, chartComponent).use( + configuration); + } + + private IConfigurationOnTransaction withChartFilling( + final IConfigurationOnTransaction onTransaction, + final Order order, + final Chart chartComponent) { + return new IConfigurationOnTransaction() { + + @Override + public Planner getPlannerBeingConfigured() { + return onTransaction.getPlannerBeingConfigured(); + } + + @Override + public void use(PlannerConfiguration configuration) { + onTransaction.use(configuration); + Planner planner = getPlannerBeingConfigured(); + Interval interval = planner.getTimeTracker().getRealInterval(); + fillChart(order, chartComponent, interval); + } + }; } private PlannerConfiguration createConfiguration( @@ -225,19 +250,16 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } } - private Chart getChartComponent(Order order) { + private void fillChart(Order order, Chart chart, Interval interval) { XYModel xymodel = new SimpleXYModel(); addLoad(order, xymodel); addCalendarMaximumAvailability(order, xymodel); - Chart chart = new Chart(); chart.setType("time_series"); chart.setWidth("1600px"); chart.setHeight("175px"); chart.setModel(xymodel); - - return chart; } private void addLoad(Order order, XYModel xymodel) {