diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java index 8d6701760..baa6c49fb 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/TaskDetail.java @@ -318,13 +318,14 @@ public class TaskDetail extends GenericForwardComposer { } public void updateBean() { - if (getEndDateBox().getValue().before(getStartDateBox().getValue())) { - updateComponents(); - return; + Date begin = getStartDateBox().getValue(); + Date end = getEndDateBox().getValue(); + if (end.before(begin)) { + end = new Date(begin.getTime() + taskBean.getLengthMilliseconds()); } taskBean.setName(getNameBox().getValue()); - taskBean.setBeginDate(getStartDateBox().getValue()); - taskBean.setEndDate(getEndDateBox().getValue()); + taskBean.setBeginDate(begin); + taskBean.setEndDate(end); } private void updateComponents() { diff --git a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/TaskBean.java b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/TaskBean.java index cf4e7f081..b6715f3d1 100644 --- a/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/TaskBean.java +++ b/navalplanner-gantt-zk/src/main/java/org/zkoss/ganttz/util/TaskBean.java @@ -8,9 +8,7 @@ import java.util.Date; * This class contains the information of a task. It can be modified and * notifies of the changes to the interested parties.
* Created at Apr 24, 2009 - * * @author Óscar González Fernández - * */ public class TaskBean { @@ -81,6 +79,10 @@ public class TaskBean { } public void setLengthMilliseconds(long lengthMilliseconds) { + if (lengthMilliseconds < 0) + throw new IllegalArgumentException( + "a task must not have a negative length. Received value: " + + lengthMilliseconds); long previousValue = this.lengthMilliseconds; this.lengthMilliseconds = lengthMilliseconds; fundamentalProperties.firePropertyChange("lengthMilliseconds", @@ -96,7 +98,8 @@ public class TaskBean { this.visibilityProperties.addPropertyChangeListener(listener); } - public void addFundamentalPropertiesChangeListener(PropertyChangeListener listener) { + public void addFundamentalPropertiesChangeListener( + PropertyChangeListener listener) { this.fundamentalProperties.addPropertyChangeListener(listener); }