ItEr57S04ValidacionEProbasFuncionaisItEr56S04: Allow to add and remove pre and post change listener for graph

This commit is contained in:
Óscar González Fernández 2010-05-14 16:09:11 +02:00
parent 072e0bcb93
commit 2ad82bc7a3
3 changed files with 43 additions and 1 deletions

View file

@ -262,6 +262,10 @@ public class Planner extends HtmlMacroComponent {
configuration.isDependenciesConstraintsHavePriority());
FunctionalityExposedForExtensions<T> newContext = new FunctionalityExposedForExtensions<T>(
this, configuration, diagramGraph);
diagramGraph.addPreChangeListeners(configuration
.getPreChangeListeners());
diagramGraph.addPostChangeListeners(configuration
.getPostChangeListeners());
this.contextualizedGlobalCommands = contextualize(newContext,
configuration.getGlobalCommands());
this.commandsOnTasksContextualized = contextualize(newContext,

View file

@ -29,6 +29,7 @@ import java.util.Map;
import org.apache.commons.lang.Validate;
import org.zkoss.ganttz.Planner;
import org.zkoss.ganttz.data.GanttDiagramGraph.IGraphChangeListener;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.DateConstraint;
import org.zkoss.ganttz.extensions.ICommand;
@ -150,6 +151,10 @@ public class PlannerConfiguration<T> implements IDisabilityConfiguration {
private boolean expandPlanningViewCharts;
private final List<IGraphChangeListener> preGraphChangeListeners = new ArrayList<IGraphChangeListener>();
private final List<IGraphChangeListener> postGraphChangeListeners = new ArrayList<IGraphChangeListener>();
public PlannerConfiguration(IAdapterToTaskFundamentalProperties<T> adapter,
IStructureNavigator<T> navigator, List<? extends T> data) {
this.adapter = adapter;
@ -380,4 +385,24 @@ public class PlannerConfiguration<T> implements IDisabilityConfiguration {
return expandPlanningViewCharts;
}
public void addPreGraphChangeListener(
IGraphChangeListener preGraphChangeListener) {
Validate.notNull(preGraphChangeListener);
preGraphChangeListeners.add(preGraphChangeListener);
}
public void addPostGraphChangeListener(
IGraphChangeListener postGraphChangeListener) {
Validate.notNull(postGraphChangeListener);
postGraphChangeListeners.add(postGraphChangeListener);
}
public List<IGraphChangeListener> getPreChangeListeners() {
return Collections.unmodifiableList(preGraphChangeListeners);
}
public List<IGraphChangeListener> getPostChangeListeners() {
return Collections.unmodifiableList(postGraphChangeListeners);
}
}

View file

@ -123,6 +123,20 @@ public class GanttDiagramGraph implements ICriticalPathCalculable<Task> {
postGraphChangeListeners.remove(postGraphChangeListener);
}
public void addPreChangeListeners(
Collection<? extends IGraphChangeListener> preChangeListeners) {
for (IGraphChangeListener each : preChangeListeners) {
addPreGraphChangeListener(each);
}
}
public void addPostChangeListeners(
Collection<? extends IGraphChangeListener> postChangeListeners) {
for (IGraphChangeListener each : postChangeListeners) {
addPostGraphChangeListener(each);
}
}
public GanttDiagramGraph(List<Constraint<Date>> globalStartConstraints,
List<Constraint<Date>> globalEndConstraints,
boolean dependenciesConstraintsHavePriority) {
@ -1158,7 +1172,6 @@ public class GanttDiagramGraph implements ICriticalPathCalculable<Task> {
}
return result;
}
}
interface IReentranceCases {