ItEr43S09ImplantacionAplicacionItEr42S13: Adding reloadComponent method.

This method invalidates the associated zk component for a
task. Invalidating the parent, otherwise the task dissapears.
This commit is contained in:
Óscar González Fernández 2010-01-11 16:49:51 +01:00
parent 7211b5a723
commit 8c7077ac46
2 changed files with 39 additions and 0 deletions

View file

@ -34,6 +34,7 @@ import org.zkoss.ganttz.adapters.IDisabilityConfiguration;
import org.zkoss.ganttz.data.Milestone;
import org.zkoss.ganttz.data.Task;
import org.zkoss.ganttz.data.TaskContainer;
import org.zkoss.ganttz.data.Task.IReloadComponentRequested;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener;
import org.zkoss.lang.Objects;
@ -175,6 +176,8 @@ public class TaskComponent extends Div implements AfterCompose {
return asTaskComponent(task, taskList, true);
}
private IReloadComponentRequested reloadComponentRequested;
public TaskComponent(Task task,
IDisabilityConfiguration disabilityConfiguration) {
setHeight(HEIGHT_PER_TASK + "px");
@ -192,6 +195,16 @@ public class TaskComponent extends Div implements AfterCompose {
}
};
this.task.addConstraintViolationListener(taskViolationListener);
reloadComponentRequested = new IReloadComponentRequested() {
@Override
public void reloadComponentRequested() {
// TODO can't call to invalidate because the task was
// disappearing. Fix the problem and just invalidate this task
getParent().invalidate();
}
};
this.task.addReloadListener(reloadComponentRequested);
}
protected String calculateClass() {
@ -441,6 +454,7 @@ public class TaskComponent extends Div implements AfterCompose {
protected void remove() {
this.detach();
task.removeReloadListener(reloadComponentRequested);
}
public boolean isTopLevel() {

View file

@ -23,9 +23,11 @@ package org.zkoss.ganttz.data;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.Validate;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.DateConstraint;
import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener;
@ -38,6 +40,12 @@ import org.zkoss.ganttz.util.ConstraintViolationNotificator;
*/
public abstract class Task implements ITaskFundamentalProperties {
public interface IReloadComponentRequested {
public void reloadComponentRequested();
}
private List<IReloadComponentRequested> reloadRequestedListeners = new ArrayList<IReloadComponentRequested>();
private PropertyChangeSupport fundamentalPropertiesListeners = new PropertyChangeSupport(
this);
@ -271,4 +279,21 @@ public abstract class Task implements ITaskFundamentalProperties {
violationNotificator.addConstraintViolationListener(listener);
}
public void addReloadListener(
IReloadComponentRequested reloadComponentRequested) {
Validate.notNull(reloadComponentRequested);
this.reloadRequestedListeners.add(reloadComponentRequested);
}
public void removeReloadListener(
IReloadComponentRequested reloadComponentRequested) {
this.reloadRequestedListeners.remove(reloadComponentRequested);
}
public void reloadComponent() {
for (IReloadComponentRequested each : reloadRequestedListeners) {
each.reloadComponentRequested();
}
}
}