From eba73263f3e9eafbe1babb87585396f8affa33ea Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 5 Nov 2009 18:07:58 +0100 Subject: [PATCH] ItEr33S08ValidacionEProbasFuncionaisItEr32S09: Fixing zoom problems. It is still not working for second zoom level. --- .../planner/company/CompanyPlanningModel.java | 12 +++---- .../planner/loadchart/ILoadChartFiller.java | 6 ++++ .../planner/loadchart/LoadChartFiller.java | 36 +++++++++++++++++++ .../web/planner/order/OrderPlanningModel.java | 13 +++---- 4 files changed, 55 insertions(+), 12 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java index 8e26a3480..1abc59d1f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/company/CompanyPlanningModel.java @@ -56,7 +56,7 @@ import org.springframework.transaction.annotation.Transactional; import org.zkforge.timeplot.Plotinfo; import org.zkforge.timeplot.Timeplot; import org.zkforge.timeplot.data.PlotDataSource; -import org.zkforge.timeplot.geometry.DefaultValueGeometry; +import org.zkforge.timeplot.geometry.TimeGeometry; import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; @@ -276,15 +276,15 @@ public abstract class CompanyPlanningModel implements ICompanyPlanningModel { interval.getStart(), interval.getFinish()); plotInfoMax.setLineColor("FF0000"); - ValueGeometry valueGeometry = new DefaultValueGeometry(); - valueGeometry.setMin(0); - valueGeometry.setMax(getMaximunValueForChart()); - valueGeometry.setGridColor("#000000"); - valueGeometry.setAxisLabelsPlacement("left"); + ValueGeometry valueGeometry = getValueGeometry(getMaximunValueForChart()); + TimeGeometry timeGeometry = getTimeGeometry(interval); plotInfoLoad.setValueGeometry(valueGeometry); plotInfoMax.setValueGeometry(valueGeometry); + plotInfoLoad.setTimeGeometry(timeGeometry); + plotInfoMax.setTimeGeometry(timeGeometry); + chart.appendChild(plotInfoMax); chart.appendChild(plotInfoLoad); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/ILoadChartFiller.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/ILoadChartFiller.java index 81f7ce38f..9b1f19b56 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/ILoadChartFiller.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/ILoadChartFiller.java @@ -21,6 +21,8 @@ package org.navalplanner.web.planner.loadchart; import org.zkforge.timeplot.Timeplot; +import org.zkforge.timeplot.geometry.TimeGeometry; +import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.Interval; @@ -35,4 +37,8 @@ public interface ILoadChartFiller { void setZoomLevel(ZoomLevel zoomLevel); + TimeGeometry getTimeGeometry(Interval interval); + + ValueGeometry getValueGeometry(Integer maximum); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/LoadChartFiller.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/LoadChartFiller.java index 4a64e6932..b2309947b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/LoadChartFiller.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/loadchart/LoadChartFiller.java @@ -41,6 +41,10 @@ import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.web.servlets.CallbackServlet; import org.navalplanner.web.servlets.CallbackServlet.IServletRequestHandler; import org.zkforge.timeplot.Timeplot; +import org.zkforge.timeplot.geometry.DefaultTimeGeometry; +import org.zkforge.timeplot.geometry.DefaultValueGeometry; +import org.zkforge.timeplot.geometry.TimeGeometry; +import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.Interval; import org.zkoss.zk.ui.Executions; @@ -311,4 +315,36 @@ public abstract class LoadChartFiller implements ILoadChartFiller { } } + @Override + public TimeGeometry getTimeGeometry(Interval interval) { + LocalDate start = new LocalDate(interval.getStart()); + LocalDate finish = new LocalDate(interval.getFinish()); + + TimeGeometry timeGeometry = new DefaultTimeGeometry(); + + if (!isZoomByDay()) { + start = getThursdayOfThisWeek(start); + finish = getThursdayOfThisWeek(finish); + } + + String min = start.toString("yyyyMMdd"); + String max = finish.toString("yyyyMMdd"); + + timeGeometry.setMin(Integer.valueOf(min)); + timeGeometry.setMax(Integer.valueOf(max)); + + return timeGeometry; + } + + @Override + public ValueGeometry getValueGeometry(Integer maximum) { + DefaultValueGeometry valueGeometry = new DefaultValueGeometry(); + valueGeometry.setMin(0); + valueGeometry.setMax(maximum); + valueGeometry.setGridColor("#000000"); + valueGeometry.setAxisLabelsPlacement("left"); + + return valueGeometry; + } + } 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 1037f13f1..94c9071a7 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 @@ -68,7 +68,7 @@ import org.springframework.transaction.annotation.Transactional; import org.zkforge.timeplot.Plotinfo; import org.zkforge.timeplot.Timeplot; import org.zkforge.timeplot.data.PlotDataSource; -import org.zkforge.timeplot.geometry.DefaultValueGeometry; +import org.zkforge.timeplot.geometry.TimeGeometry; import org.zkforge.timeplot.geometry.ValueGeometry; import org.zkoss.ganttz.Planner; import org.zkoss.ganttz.adapters.IStructureNavigator; @@ -380,16 +380,17 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { order, interval.getStart(), interval.getFinish()); plotInfoMax.setLineColor("FF0000"); - ValueGeometry valueGeometry = new DefaultValueGeometry(); - valueGeometry.setMin(0); - valueGeometry.setMax(getMaximunValueForChart()); - valueGeometry.setGridColor("#000000"); - valueGeometry.setAxisLabelsPlacement("left"); + ValueGeometry valueGeometry = getValueGeometry(getMaximunValueForChart()); + TimeGeometry timeGeometry = getTimeGeometry(interval); plotInfoOrder.setValueGeometry(valueGeometry); plotInfoCompany.setValueGeometry(valueGeometry); plotInfoMax.setValueGeometry(valueGeometry); + plotInfoOrder.setTimeGeometry(timeGeometry); + plotInfoCompany.setTimeGeometry(timeGeometry); + plotInfoMax.setTimeGeometry(timeGeometry); + chart.appendChild(plotInfoMax); chart.appendChild(plotInfoOrder); chart.appendChild(plotInfoCompany);