ItEr60S04ValidacionEProbasFuncionaisItEr59S04: Refactor.

Move method to class so it can be reused.
This commit is contained in:
Óscar González Fernández 2010-08-04 18:15:43 +02:00
parent ab681a9f03
commit b267408ff8
2 changed files with 22 additions and 18 deletions

View file

@ -47,6 +47,11 @@ import org.zkoss.ganttz.util.Interval;
*/ */
public abstract class EarnedValueChartFiller extends ChartFiller { 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 { public enum EarnedValueType {
BCWS(_("BCWS"), _("Budgeted Cost Work Scheduled"), "#0000FF"), ACWP( BCWS(_("BCWS"), _("Budgeted Cost Work Scheduled"), "#0000FF"), ACWP(
@ -323,6 +328,18 @@ public abstract class EarnedValueChartFiller extends ChartFiller {
public Interval getIndicatorsDefinitionInterval() { public Interval getIndicatorsDefinitionInterval() {
return indicatorsInterval; 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( protected void addZeroBeforeTheFirstValue(
SortedMap<LocalDate, BigDecimal> map) { SortedMap<LocalDate, BigDecimal> map) {
if (!map.isEmpty()) { if (!map.isEmpty()) {

View file

@ -92,8 +92,8 @@ import org.navalplanner.web.planner.calendar.ICalendarAllocationCommand;
import org.navalplanner.web.planner.chart.Chart; import org.navalplanner.web.planner.chart.Chart;
import org.navalplanner.web.planner.chart.ChartFiller; import org.navalplanner.web.planner.chart.ChartFiller;
import org.navalplanner.web.planner.chart.EarnedValueChartFiller; 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.EarnedValueChartFiller.EarnedValueType;
import org.navalplanner.web.planner.chart.IChartFiller;
import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController; import org.navalplanner.web.planner.consolidations.AdvanceConsolidationController;
import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand; import org.navalplanner.web.planner.consolidations.IAdvanceConsolidationCommand;
import org.navalplanner.web.planner.milestone.IAddMilestoneCommand; import org.navalplanner.web.planner.milestone.IAddMilestoneCommand;
@ -517,7 +517,7 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
Hbox dateHbox = new Hbox(); Hbox dateHbox = new Hbox();
dateHbox.appendChild(new Label(_("Select date:"))); dateHbox.appendChild(new Label(_("Select date:")));
LocalDate initialDateForIndicatorValues = calculateInitialDateForIndicatorValues(earnedValueChartFiller); LocalDate initialDateForIndicatorValues = earnedValueChartFiller.initialDateForIndicatorValues();
Datebox datebox = new Datebox(initialDateForIndicatorValues Datebox datebox = new Datebox(initialDateForIndicatorValues
.toDateTimeAtStartOfDay().toDate()); .toDateTimeAtStartOfDay().toDate());
datebox.setConstraint(dateMustBeInsideVisualizationArea(earnedValueChartFiller)); datebox.setConstraint(dateMustBeInsideVisualizationArea(earnedValueChartFiller));
@ -544,20 +544,6 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
earnedValueChartPannel.appendChild(hbox); 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( private Constraint dateMustBeInsideVisualizationArea(
final OrderEarnedValueChartFiller earnedValueChartFiller) { final OrderEarnedValueChartFiller earnedValueChartFiller) {
return new Constraint() { return new Constraint() {
@ -568,7 +554,8 @@ public abstract class OrderPlanningModel implements IOrderPlanningModel {
throws WrongValueException { throws WrongValueException {
Date value = (Date) valueObject; Date value = (Date) valueObject;
if (value != null if (value != null
&& !includes(earnedValueChartFiller && !EarnedValueChartFiller.includes(
earnedValueChartFiller
.getIndicatorsDefinitionInterval(), LocalDate .getIndicatorsDefinitionInterval(), LocalDate
.fromDateFields(value))) { .fromDateFields(value))) {
throw new WrongValueException(comp, 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; private Order order;