From 47072040b55b23074a0bae916c132c4ef98b16c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 10 May 2011 17:51:53 +0200 Subject: [PATCH] Remove enforceAllRestrictions call It was done to force the showing of the constraint violations after the components have been created. Now this is not needed thanks to the support for receiving pending of notification events. FEA: ItEr74S04BugFixing --- .../org/zkoss/ganttz/DependencyComponent.java | 32 ++++++++++++------- .../main/java/org/zkoss/ganttz/Planner.java | 2 -- .../java/org/zkoss/ganttz/TaskComponent.java | 4 ++- .../org/zkoss/ganttz/data/Dependency.java | 5 +-- .../main/java/org/zkoss/ganttz/data/Task.java | 5 +-- .../main/resources/web/ganttz/dependency.dsp | 2 +- 6 files changed, 31 insertions(+), 19 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/DependencyComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/DependencyComponent.java index 0434dfdae..cb26f7d3d 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/DependencyComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/DependencyComponent.java @@ -32,6 +32,7 @@ import org.zkoss.ganttz.data.GanttDate; import org.zkoss.ganttz.data.Task; import org.zkoss.ganttz.data.constraint.Constraint; import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener; +import org.zkoss.ganttz.util.WeakReferencedListeners.Mode; import org.zkoss.zk.au.out.AuInvoke; import org.zkoss.zk.ui.ext.AfterCompose; import org.zkoss.zul.impl.XulElement; @@ -53,6 +54,8 @@ public class DependencyComponent extends XulElement implements AfterCompose { private IConstraintViolationListener violationListener; + private boolean violated = false; + public DependencyComponent(TaskComponent source, TaskComponent destination, Dependency dependency) { Validate.notNull(dependency); @@ -68,21 +71,28 @@ public class DependencyComponent extends XulElement implements AfterCompose { .onlyOnZKExecution(new IConstraintViolationListener() { @Override - public void constraintViolated(Constraint constraint, - GanttDate value) { - response("constraintViolated", new AuInvoke( - DependencyComponent.this, "setCSSClass", - "violated-dependency")); + public void constraintViolated(Constraint constraint, GanttDate value) { + violated = true; + sendCSSUpdate(); } @Override - public void constraintSatisfied(Constraint constraint, - GanttDate value) { - response("constraintViolated", new AuInvoke( - DependencyComponent.this, "setCSSClass", "dependency")); + public void constraintSatisfied(Constraint constraint, GanttDate value) { + violated = false; + sendCSSUpdate(); } - }); - this.dependency.addConstraintViolationListener(violationListener); + }); + this.dependency.addConstraintViolationListener(violationListener, + Mode.RECEIVE_PENDING); + } + + private void sendCSSUpdate() { + response("constraintViolated", new AuInvoke(DependencyComponent.this, + "setCSSClass", getCSSClass())); + } + + public String getCSSClass() { + return violated ? "violated-dependency" : "dependency"; } @Override diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index a4297b505..865987c53 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -373,8 +373,6 @@ public class Planner extends HtmlMacroComponent { this.visibleChart = configuration.isExpandPlanningViewCharts(); ((South) getFellow("graphics")).setOpen(this.visibleChart); - - newContext.getDiagramGraph().enforceAllRestrictions(); } private void resettingPreviousComponentsToNull() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java index ee5555b32..9af312fd4 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskComponent.java @@ -41,6 +41,7 @@ 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.ganttz.util.WeakReferencedListeners.Mode; import org.zkoss.lang.Objects; import org.zkoss.xml.HTMLs; import org.zkoss.zk.au.AuRequest; @@ -212,7 +213,8 @@ public class TaskComponent extends Div implements AfterCompose { // TODO mark graphically dependency as not violated } }); - this.task.addConstraintViolationListener(taskViolationListener); + this.task.addConstraintViolationListener(taskViolationListener, + Mode.RECEIVE_PENDING); reloadResourcesTextRequested = new IReloadResourcesTextRequested() { @Override diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/data/Dependency.java b/ganttzk/src/main/java/org/zkoss/ganttz/data/Dependency.java index b02bb6f23..ff1b3dfb0 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Dependency.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Dependency.java @@ -31,6 +31,7 @@ import org.zkoss.ganttz.data.DependencyType.Point; import org.zkoss.ganttz.data.constraint.Constraint; import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener; import org.zkoss.ganttz.util.ConstraintViolationNotificator; +import org.zkoss.ganttz.util.WeakReferencedListeners.Mode; /** * This class represents a dependency. Contains the source and the destination. @@ -89,8 +90,8 @@ public class Dependency implements IDependency { } public void addConstraintViolationListener( - IConstraintViolationListener listener) { - violationsNotificator.addConstraintViolationListener(listener); + IConstraintViolationListener listener, Mode mode) { + violationsNotificator.addConstraintViolationListener(listener, mode); } @Override 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 e4eeaaccd..269c714d5 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/data/Task.java @@ -43,6 +43,7 @@ import org.zkoss.ganttz.data.GanttDiagramGraph.INotificationAfterDependenciesEnf import org.zkoss.ganttz.data.constraint.Constraint; import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener; import org.zkoss.ganttz.util.ConstraintViolationNotificator; +import org.zkoss.ganttz.util.WeakReferencedListeners.Mode; /** * This class contains the information of a task. It can be modified and @@ -389,8 +390,8 @@ public abstract class Task implements ITaskFundamentalProperties { } public void addConstraintViolationListener( - IConstraintViolationListener listener) { - violationNotificator.addConstraintViolationListener(listener); + IConstraintViolationListener listener, Mode mode) { + violationNotificator.addConstraintViolationListener(listener, mode); } public void addReloadListener( diff --git a/ganttzk/src/main/resources/web/ganttz/dependency.dsp b/ganttzk/src/main/resources/web/ganttz/dependency.dsp index bc71a4ec8..3a60292c1 100644 --- a/ganttzk/src/main/resources/web/ganttz/dependency.dsp +++ b/ganttzk/src/main/resources/web/ganttz/dependency.dsp @@ -3,7 +3,7 @@ -