ItEr22S12CUVistaRecursosTempoPorProxectoItEr21S07: DependencyAdded listeners handling is only at TaskList now.
This commit is contained in:
parent
e1016b8107
commit
f68dc9f411
2 changed files with 33 additions and 52 deletions
|
|
@ -2,11 +2,6 @@ package org.zkoss.ganttz;
|
|||
|
||||
import java.beans.PropertyChangeEvent;
|
||||
import java.beans.PropertyChangeListener;
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
|
|
@ -177,8 +172,6 @@ public class TaskComponent extends Div implements AfterCompose {
|
|||
|
||||
private String _color;
|
||||
|
||||
private List<WeakReference<IDependencyAddedListener>> dependencyListeners = new LinkedList<WeakReference<IDependencyAddedListener>>();
|
||||
|
||||
private boolean isTopLevel;
|
||||
|
||||
private final Task task;
|
||||
|
|
@ -196,31 +189,6 @@ public class TaskComponent extends Div implements AfterCompose {
|
|||
return null;
|
||||
}
|
||||
|
||||
public void addDependencyListener(IDependencyAddedListener listener) {
|
||||
dependencyListeners.add(new WeakReference<IDependencyAddedListener>(
|
||||
listener));
|
||||
}
|
||||
|
||||
private void fireDependenceAdded(DependencyComponent dependencyComponent) {
|
||||
ArrayList<IDependencyAddedListener> active = new ArrayList<IDependencyAddedListener>();
|
||||
synchronized (this) {
|
||||
ListIterator<WeakReference<IDependencyAddedListener>> iterator = dependencyListeners
|
||||
.listIterator();
|
||||
while (iterator.hasNext()) {
|
||||
WeakReference<IDependencyAddedListener> next = iterator.next();
|
||||
IDependencyAddedListener listener = next.get();
|
||||
if (listener == null) {
|
||||
iterator.remove();
|
||||
} else {
|
||||
active.add(listener);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (IDependencyAddedListener listener : active) {
|
||||
listener.dependenceAdded(dependencyComponent);
|
||||
}
|
||||
}
|
||||
|
||||
public Command getCommand(String cmdId) {
|
||||
|
||||
Command c = null;
|
||||
|
|
@ -246,11 +214,8 @@ public class TaskComponent extends Div implements AfterCompose {
|
|||
}
|
||||
|
||||
void doAddDependency(String destinyTaskId) {
|
||||
DependencyComponent dependencyComponent = new DependencyComponent(this,
|
||||
getTaskList().addDependency(this,
|
||||
((TaskComponent) getFellow(destinyTaskId)));
|
||||
if (getPlanner().canAddDependency(dependencyComponent.getDependency())) {
|
||||
fireDependenceAdded(dependencyComponent);
|
||||
}
|
||||
}
|
||||
|
||||
public String getColor() {
|
||||
|
|
|
|||
|
|
@ -32,8 +32,6 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
|
||||
private static final int HEIGHT_PER_ROW = 20; /* 30 */
|
||||
|
||||
private List<WeakReference<IDependencyAddedListener>> listeners = new LinkedList<WeakReference<IDependencyAddedListener>>();
|
||||
|
||||
private IZoomLevelChangedListener zoomLevelChangedListener;
|
||||
|
||||
private Menupopup contextMenu;
|
||||
|
|
@ -88,16 +86,6 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
|
||||
addContextMenu(taskComponent);
|
||||
addListenerForTaskComponentEditForm(taskComponent);
|
||||
ListIterator<WeakReference<IDependencyAddedListener>> iterator = listeners
|
||||
.listIterator();
|
||||
while (iterator.hasNext()) {
|
||||
IDependencyAddedListener listener = iterator.next().get();
|
||||
if (listener != null) {
|
||||
taskComponent.addDependencyListener(listener);
|
||||
} else {
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
taskComponent.afterCompose();
|
||||
if (relocate) {
|
||||
response(null, new AuInvoke(taskComponent,
|
||||
|
|
@ -232,10 +220,8 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
}
|
||||
|
||||
public void addDependencyListener(IDependencyAddedListener listener) {
|
||||
listeners.add(new WeakReference<IDependencyAddedListener>(listener));
|
||||
for (TaskComponent taskComponent : getTaskComponents()) {
|
||||
taskComponent.addDependencyListener(listener);
|
||||
}
|
||||
dependencyListeners.add(new WeakReference<IDependencyAddedListener>(
|
||||
listener));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -306,4 +292,34 @@ public class TaskList extends XulElement implements AfterCompose {
|
|||
}
|
||||
}
|
||||
|
||||
public void addDependency(TaskComponent source, TaskComponent destination) {
|
||||
DependencyComponent dependencyComponent = new DependencyComponent(
|
||||
source, destination);
|
||||
if (getPlanner().canAddDependency(dependencyComponent.getDependency())) {
|
||||
fireDependenceAdded(dependencyComponent);
|
||||
}
|
||||
}
|
||||
|
||||
private List<WeakReference<IDependencyAddedListener>> dependencyListeners = new LinkedList<WeakReference<IDependencyAddedListener>>();
|
||||
|
||||
private void fireDependenceAdded(DependencyComponent dependencyComponent) {
|
||||
ArrayList<IDependencyAddedListener> active = new ArrayList<IDependencyAddedListener>();
|
||||
synchronized (this) {
|
||||
ListIterator<WeakReference<IDependencyAddedListener>> iterator = dependencyListeners
|
||||
.listIterator();
|
||||
while (iterator.hasNext()) {
|
||||
WeakReference<IDependencyAddedListener> next = iterator.next();
|
||||
IDependencyAddedListener listener = next.get();
|
||||
if (listener == null) {
|
||||
iterator.remove();
|
||||
} else {
|
||||
active.add(listener);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (IDependencyAddedListener listener : active) {
|
||||
listener.dependenceAdded(dependencyComponent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue