diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index 67b07df33..0c8f56662 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -708,4 +708,8 @@ public class Planner extends HtmlMacroComponent { return context.getCriticalPath(); } + public void updateCompletion(String progressType) { + getTaskList().updateCompletion(progressType); + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java index 52ff5487a..64f83013e 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java @@ -36,8 +36,8 @@ import org.zkoss.ganttz.adapters.IDisabilityConfiguration; import org.zkoss.ganttz.data.GanttDate; import org.zkoss.ganttz.data.Milestone; import org.zkoss.ganttz.data.Task; -import org.zkoss.ganttz.data.TaskContainer; import org.zkoss.ganttz.data.Task.IReloadResourcesTextRequested; +import org.zkoss.ganttz.data.TaskContainer; import org.zkoss.ganttz.data.constraint.Constraint; import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener; import org.zkoss.lang.Objects; @@ -500,6 +500,15 @@ public class TaskComponent extends Div implements AfterCompose { widthAdvancePercentage)); } + public void updateCompletion(String progressType) { + int startPixels = this.task.getBeginDate().toPixels(getMapper()); + + String widthAdvancePercentage = pixelsFromStartUntil(startPixels, + this.task.getAdvanceEndDate(progressType)) + "px"; + response(null, new AuInvoke(this, "resizeCompletion2Advance", + widthAdvancePercentage)); + } + private int pixelsFromStartUntil(int startPixels, GanttDate until) { int endPixels = until.toPixels(getMapper()); assert endPixels >= startPixels; @@ -510,6 +519,10 @@ public class TaskComponent extends Div implements AfterCompose { smartUpdate("taskTooltipText", task.updateTooltipText()); } + public void updateTooltipText(String progressType) { + smartUpdate("taskTooltipText", task.updateTooltipText(progressType)); + } + private DependencyList getDependencyList() { return getGanntPanel().getDependencyList(); } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java index 3a4195788..8d012baa0 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -93,6 +93,13 @@ public class TaskList extends XulElement implements AfterCompose { this.predicate = predicate; } + public void updateCompletion(String progressType) { + for (TaskComponent task: getTaskComponents()) { + task.updateCompletion(progressType); + task.updateTooltipText(progressType); + } + } + public List getAllTasks() { return new ArrayList(currentTotalTasks); } 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 5660fb763..46d1e438a 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/DefaultFundamentalProperties.java @@ -246,4 +246,14 @@ public class DefaultFundamentalProperties implements ITaskFundamentalProperties return Collections.emptyList(); } + @Override + public GanttDate getAdvanceEndDate(String progressType) { + return null; + } + + @Override + public String updateTooltipText(String progressType) { + return ""; + } + } 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 8711b52d7..6dcbee4ec 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/ITaskFundamentalProperties.java @@ -98,4 +98,8 @@ public interface ITaskFundamentalProperties { public List> getCurrentLengthConstraint(); + public GanttDate getAdvanceEndDate(String progressType); + + String updateTooltipText(String progressType); + } 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 8b1e537b2..c2f436715 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -289,6 +289,10 @@ public abstract class Task implements ITaskFundamentalProperties { return fundamentalProperties.getAdvanceEndDate(); } + public GanttDate getAdvanceEndDate(String progressType) { + return fundamentalProperties.getAdvanceEndDate(progressType); + } + public String getTooltipText() { return fundamentalProperties.getTooltipText(); } @@ -297,6 +301,10 @@ public abstract class Task implements ITaskFundamentalProperties { return fundamentalProperties.updateTooltipText(); } + public String updateTooltipText(String progressType) { + return fundamentalProperties.updateTooltipText(progressType); + } + public String getLabelsText() { return fundamentalProperties.getLabelsText(); } diff --git a/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul b/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul index ca473dd9f..4e5a21dd7 100644 --- a/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul +++ b/ganttzk/src/main/resources/web/ganttz/zul/plannerLayout.zul @@ -46,6 +46,12 @@ planner = self; model="${planner.zoomLevels}" onSelect="planner.setZoomLevel(self.selectedItem.value);" > + + + + +