diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java index e0c0ceaf5..5da763fad 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java @@ -271,16 +271,6 @@ public abstract class TaskElement extends BaseEntity { getIntraDayStartDate()); } - /** - * Sets the startDate to newStartDate. It can update the endDate - * - * @param scenario - * @param newStartDate - */ - public void moveTo(Scenario scenario, IntraDayDate newStartDate) { - getDatesHandler(scenario).moveTo(newStartDate); - } - @NotNull public Date getEndDate() { return endDate != null ? endDate.toDateTimeAtStartOfDay().toDate() @@ -314,20 +304,7 @@ public abstract class TaskElement extends BaseEntity { return endDate; } - public void resizeTo(Scenario scenario, Date endDate) { - resizeTo(scenario, - IntraDayDate.startOfDay(LocalDate.fromDateFields(endDate))); - } - - public void resizeTo(Scenario scenario, IntraDayDate endDate) { - getDatesHandler(scenario).resizeTo(endDate); - } - - public void moveEndTo(Scenario scenario, IntraDayDate intraDay) { - getDatesHandler(scenario).moveEndTo(intraDay); - } - - private IDatesHandler getDatesHandler(Scenario scenario) { + public IDatesHandler getDatesHandler(Scenario scenario) { return noNullDates(createDatesHandler(scenario)); } @@ -358,6 +335,12 @@ public abstract class TaskElement extends BaseEntity { public interface IDatesHandler { + /** + * Sets the startDate to newStartDate. It can update the endDate + * + * @param scenario + * @param newStartDate + */ void moveTo(IntraDayDate newStartDate); void moveEndTo(IntraDayDate newEnd); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModelAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModelAdapter.java index 31369ea7a..51ac6c354 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModelAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/TemplateModelAdapter.java @@ -10,6 +10,7 @@ import java.util.Set; import org.apache.commons.lang.Validate; import org.joda.time.LocalDate; import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.business.planner.entities.TaskElement.IDatesHandler; import org.navalplanner.business.planner.entities.TaskElement.IDatesInterceptor; import org.navalplanner.business.scenarios.entities.Scenario; import org.navalplanner.business.workingday.IntraDayDate; @@ -134,12 +135,16 @@ public class TemplateModelAdapter implements @Override public void setEndDateFor(TaskElement task, GanttDate newEnd) { - task.moveEndTo(scenario, toIntraDay(newEnd)); + getDatesHandler(task).moveEndTo(toIntraDay(newEnd)); } @Override public void setStartDateFor(TaskElement task, GanttDate newStart) { - task.moveTo(scenario, toIntraDay(newStart)); + getDatesHandler(task).moveTo(toIntraDay(newStart)); + } + + private IDatesHandler getDatesHandler(TaskElement taskElement) { + return taskElement.getDatesHandler(scenario); } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 37e643966..ac28ba868 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -72,6 +72,7 @@ import org.navalplanner.business.planner.entities.ResourceAllocation.Direction; import org.navalplanner.business.planner.entities.SpecificResourceAllocation; import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; +import org.navalplanner.business.planner.entities.TaskElement.IDatesHandler; import org.navalplanner.business.planner.entities.TaskGroup; import org.navalplanner.business.planner.entities.TaskPositionConstraint; import org.navalplanner.business.resources.daos.ICriterionDAO; @@ -394,7 +395,7 @@ public class TaskElementAdapter implements ITaskElementAdapter { @Override public Void execute() { stepsBeforePossibleReallocation(); - taskElement.moveTo(currentScenario, + getDatesHandler(taskElement).moveTo( toIntraDay(beginDate)); return null; } @@ -413,7 +414,7 @@ public class TaskElementAdapter implements ITaskElementAdapter { @Override public Void execute() { stepsBeforePossibleReallocation(); - taskElement.moveEndTo(currentScenario, + getDatesHandler(taskElement).moveEndTo( toIntraDay(endDate)); return null; } @@ -428,13 +429,17 @@ public class TaskElementAdapter implements ITaskElementAdapter { public Void execute() { stepsBeforePossibleReallocation(); updateTaskPositionConstraint(endDate); - taskElement.resizeTo(currentScenario, + getDatesHandler(taskElement).resizeTo( toIntraDay(endDate)); return null; } }); } + IDatesHandler getDatesHandler(TaskElement taskElement) { + return taskElement.getDatesHandler(currentScenario); + } + private void updateTaskPositionConstraint(GanttDate endDate) { if (taskElement instanceof ITaskPositionConstrained) { ITaskPositionConstrained task = (ITaskPositionConstrained) taskElement;