From b267408ff873d10baafd1352c4a52030e8525f88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 4 Aug 2010 18:15:43 +0200 Subject: [PATCH] ItEr60S04ValidacionEProbasFuncionaisItEr59S04: Refactor. Move method to class so it can be reused. --- .../planner/chart/EarnedValueChartFiller.java | 17 ++++++++++++++ .../web/planner/order/OrderPlanningModel.java | 23 ++++--------------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/chart/EarnedValueChartFiller.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/chart/EarnedValueChartFiller.java index 9900800ae..c44beecdf 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/chart/EarnedValueChartFiller.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/chart/EarnedValueChartFiller.java @@ -47,6 +47,11 @@ import org.zkoss.ganttz.util.Interval; */ public abstract class EarnedValueChartFiller extends ChartFiller { + public static boolean includes(Interval interval, LocalDate date) { + LocalDate start = LocalDate.fromDateFields(interval.getStart()); + LocalDate end = LocalDate.fromDateFields(interval.getFinish()); + return start.compareTo(date) <= 0 && date.compareTo(end) < 0; + } public enum EarnedValueType { BCWS(_("BCWS"), _("Budgeted Cost Work Scheduled"), "#0000FF"), ACWP( @@ -323,6 +328,18 @@ public abstract class EarnedValueChartFiller extends ChartFiller { public Interval getIndicatorsDefinitionInterval() { return indicatorsInterval; } + + /** + * Will try to use today if possible + * @return Today if there are values defined for that date. The last day in + * the interval otherwise + */ + public LocalDate initialDateForIndicatorValues() { + Interval chartInterval = getIndicatorsDefinitionInterval(); + LocalDate today = new LocalDate(); + return includes(chartInterval, today) ? today + : LocalDate.fromDateFields(chartInterval.getFinish()); + } protected void addZeroBeforeTheFirstValue( SortedMap map) { if (!map.isEmpty()) { 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 4dc0af704..051c11477 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 @@ -92,8 +92,8 @@ import org.navalplanner.web.planner.calendar.ICalendarAllocationCommand; import org.navalplanner.web.planner.chart.Chart; import org.navalplanner.web.planner.chart.ChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller; -import org.navalplanner.web.planner.chart.IChartFiller; import org.navalplanner.web.planner.chart.EarnedValueChartFiller.EarnedValueType; +import org.navalplanner.web.planner.chart.IChartFiller; import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand; import org.navalplanner.web.planner.milestone.IAddMilestoneCommand; @@ -517,7 +517,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { Hbox dateHbox = new Hbox(); dateHbox.appendChild(new Label(_("Select date:"))); - LocalDate initialDateForIndicatorValues = calculateInitialDateForIndicatorValues(earnedValueChartFiller); + LocalDate initialDateForIndicatorValues = earnedValueChartFiller.initialDateForIndicatorValues(); Datebox datebox = new Datebox(initialDateForIndicatorValues .toDateTimeAtStartOfDay().toDate()); datebox.setConstraint(dateMustBeInsideVisualizationArea(earnedValueChartFiller)); @@ -544,20 +544,6 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { earnedValueChartPannel.appendChild(hbox); } - private LocalDate calculateInitialDateForIndicatorValues( - OrderEarnedValueChartFiller earnedValueChartFiller) { - Interval chartInterval = earnedValueChartFiller.getIndicatorsDefinitionInterval(); - LocalDate today = new LocalDate(); - return includes(chartInterval, today) ? today : LocalDate - .fromDateFields(chartInterval.getFinish()); - } - - private boolean includes(Interval interval, LocalDate date) { - LocalDate start = LocalDate.fromDateFields(interval.getStart()); - LocalDate end = LocalDate.fromDateFields(interval.getFinish()); - return start.compareTo(date) <= 0 && date.compareTo(end) < 0; - } - private Constraint dateMustBeInsideVisualizationArea( final OrderEarnedValueChartFiller earnedValueChartFiller) { return new Constraint() { @@ -568,7 +554,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { throws WrongValueException { Date value = (Date) valueObject; if (value != null - && !includes(earnedValueChartFiller + && !EarnedValueChartFiller.includes( + earnedValueChartFiller .getIndicatorsDefinitionInterval(), LocalDate .fromDateFields(value))) { throw new WrongValueException(comp, @@ -1335,7 +1322,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel { } - private class OrderEarnedValueChartFiller extends EarnedValueChartFiller { + class OrderEarnedValueChartFiller extends EarnedValueChartFiller { private Order order;