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 5fef0a10b..e40018978 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java @@ -77,8 +77,9 @@ public class DefaultFundamentalProperties implements ITaskFundamentalProperties return beginDate; } - public void setBeginDate(Date beginDate) { + public long setBeginDate(Date beginDate) { this.beginDate = beginDate; + return lengthMilliseconds; } public long getLengthMilliseconds() { 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 787c2d398..5cb7f365f 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java @@ -32,7 +32,12 @@ public interface ITaskFundamentalProperties { public void setName(String name); - public void setBeginDate(Date beginDate); + /** + * Sets the beginDate. As result of this, the length of the task can change. + * So the new value is returned + * @return the new length + */ + public long setBeginDate(Date beginDate); public Date getBeginDate(); 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 3fa3c67fe..d01cd9bf8 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -97,11 +97,13 @@ public abstract class Task implements ITaskFundamentalProperties { previousValue, name); } - public void setBeginDate(Date beginDate) { + public long setBeginDate(Date beginDate) { Date previousValue = fundamentalProperties.getBeginDate(); - fundamentalProperties.setBeginDate(beginDate); + long oldLength = fundamentalProperties.getLengthMilliseconds(); fundamentalPropertiesListeners.firePropertyChange("beginDate", previousValue, fundamentalProperties.getBeginDate()); + fireLengthMilliseconds(oldLength); + return fundamentalProperties.getLengthMilliseconds(); } public Date getBeginDate() { @@ -111,6 +113,10 @@ public abstract class Task implements ITaskFundamentalProperties { public void setLengthMilliseconds(long lengthMilliseconds) { long previousValue = fundamentalProperties.getLengthMilliseconds(); fundamentalProperties.setLengthMilliseconds(lengthMilliseconds); + fireLengthMilliseconds(previousValue); + } + + private void fireLengthMilliseconds(long previousValue) { fundamentalPropertiesListeners.firePropertyChange("lengthMilliseconds", previousValue, fundamentalProperties.getLengthMilliseconds()); } 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 924982ae3..221254645 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 @@ -118,9 +118,10 @@ public class TaskElementAdapter implements ITaskElementAdapter { } @Override - public void setBeginDate(Date beginDate) { + public long setBeginDate(Date beginDate) { taskElement.setStartDate(beginDate); updateEndDate(); + return lengthMilliseconds; } @Override