From 46c87c23f02f55674f75d4e54cbb13bfa2f0aa3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Sat, 7 Nov 2009 18:30:43 +0100 Subject: [PATCH] ItEr33S14CUCreacionUnidadesPlanificacion: Adding method getStartConstraints to ITaskFundamentalProperties and implementing it --- .../data/DefaultFundamentalProperties.java | 9 ++++++ .../data/ITaskFundamentalProperties.java | 5 ++++ .../main/java/org/zkoss/ganttz/data/Task.java | 5 ++++ .../web/planner/TaskElementAdapter.java | 29 +++++++++++++++++++ 4 files changed, 48 insertions(+) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java index 428aba4f1..3389174db 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java @@ -21,7 +21,11 @@ package org.zkoss.ganttz.data; import java.math.BigDecimal; +import java.util.Collections; import java.util.Date; +import java.util.List; + +import org.zkoss.ganttz.data.constraint.Constraint; /** * @author Óscar González Fernández @@ -128,4 +132,9 @@ public class DefaultFundamentalProperties implements ITaskFundamentalProperties return tooltipText; } + @Override + public List> getStartConstraints() { + return Collections.emptyList(); + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java index 5cb7f365f..98aeaa117 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java @@ -22,6 +22,9 @@ package org.zkoss.ganttz.data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; + +import org.zkoss.ganttz.data.constraint.Constraint; /** * @author Óscar González Fernández @@ -59,4 +62,6 @@ public interface ITaskFundamentalProperties { public String getTooltipText(); + List> getStartConstraints(); + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java index 552004b0e..8fe1bc22f 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -54,6 +54,11 @@ public abstract class Task implements ITaskFundamentalProperties { this(new DefaultFundamentalProperties()); } + @Override + public List> getStartConstraints() { + return fundamentalProperties.getStartConstraints(); + } + public Task(String name, Date beginDate, long lengthMilliseconds) { this(); if (name == null) { 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 47d8bc266..bc8958c19 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 @@ -26,6 +26,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Map; @@ -42,6 +43,8 @@ import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.planner.daos.ITaskElementDAO; import org.navalplanner.business.planner.entities.Dependency; +import org.navalplanner.business.planner.entities.StartConstraintType; +import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.planner.entities.Dependency.Type; import org.springframework.beans.factory.annotation.Autowired; @@ -52,6 +55,8 @@ import org.springframework.transaction.annotation.Transactional; import org.zkoss.ganttz.adapters.DomainDependency; import org.zkoss.ganttz.data.DependencyType; import org.zkoss.ganttz.data.ITaskFundamentalProperties; +import org.zkoss.ganttz.data.constraint.Constraint; +import org.zkoss.ganttz.data.constraint.DateConstraint; /** * Responsible of adaptating a {@link TaskElement} into a @@ -310,6 +315,30 @@ public class TaskElementAdapter implements ITaskElementAdapter { } return result.toString(); } + + @Override + public List> getStartConstraints() { + if (taskElement instanceof Task) { + Task task = (Task) taskElement; + StartConstraintType constraintType = task + .getStartConstraintType(); + switch (constraintType) { + case AS_SOON_AS_POSSIBLE: + return Collections.emptyList(); + case START_IN_FIXED_DATE: + return Collections.singletonList(DateConstraint + .equalTo(task.getStartDate())); + case START_NOT_EARLIER_THAN: + return Collections.singletonList(DateConstraint + .biggerOrEqualThan(task.getStartDate())); + default: + throw new RuntimeException("can't handle " + constraintType); + } + } else { + return Collections.emptyList(); + } + + } } @Override