Fixing bug: When a dependency is removed, it kept enforcing the end-start rule.
This commit is contained in:
parent
8c9d2707d6
commit
1370ffcd98
3 changed files with 50 additions and 1 deletions
|
|
@ -10,7 +10,9 @@ import java.util.List;
|
|||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.zkoss.ganttz.util.MenuBuilder;
|
||||
import org.zkoss.ganttz.util.WeakReferencedListeners;
|
||||
import org.zkoss.ganttz.util.MenuBuilder.ItemAction;
|
||||
import org.zkoss.ganttz.util.WeakReferencedListeners.ListenerNotification;
|
||||
import org.zkoss.ganttz.util.zoom.ZoomLevel;
|
||||
import org.zkoss.ganttz.util.zoom.ZoomLevelChangedListener;
|
||||
import org.zkoss.zk.ui.event.Event;
|
||||
|
|
@ -31,6 +33,9 @@ public class DependencyList extends XulElement implements AfterCompose {
|
|||
|
||||
private ZoomLevelChangedListener listener;
|
||||
|
||||
private final WeakReferencedListeners<DependencyRemovedListener> dependencyRemovedListeners = WeakReferencedListeners
|
||||
.create();
|
||||
|
||||
public DependencyList() {
|
||||
}
|
||||
|
||||
|
|
@ -115,14 +120,30 @@ public class DependencyList extends XulElement implements AfterCompose {
|
|||
contextMenu = MenuBuilder.on(getPage(), getDependencies()).item(
|
||||
"Erase", new ItemAction<Dependency>() {
|
||||
@Override
|
||||
public void onEvent(Dependency choosen, Event event) {
|
||||
public void onEvent(final Dependency choosen,
|
||||
Event event) {
|
||||
removeChild(choosen);
|
||||
dependencyRemovedListeners
|
||||
.fireEvent(new ListenerNotification<DependencyRemovedListener>() {
|
||||
|
||||
@Override
|
||||
public void doNotify(
|
||||
DependencyRemovedListener listener) {
|
||||
listener.dependenceRemoved(choosen);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}).create();
|
||||
}
|
||||
return contextMenu;
|
||||
}
|
||||
|
||||
public void addDependencyRemovedListener(
|
||||
DependencyRemovedListener removedListener) {
|
||||
dependencyRemovedListeners.addListener(removedListener);
|
||||
}
|
||||
|
||||
private TimeTracker getTimeTracker() {
|
||||
return getGanttPanel().getTimeTracker();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.zkoss.ganttz;
|
||||
|
||||
/**
|
||||
* An object that listens to the removing of a dependency. <br />
|
||||
* Created at Apr 29, 2009
|
||||
*
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
*
|
||||
*/
|
||||
public interface DependencyRemovedListener {
|
||||
|
||||
public void dependenceRemoved(Dependency dependency);
|
||||
|
||||
}
|
||||
|
|
@ -18,6 +18,8 @@ public class Planner extends XulElement implements AfterCompose {
|
|||
|
||||
private DependencyRegistry dependencyRegistry = new DependencyRegistry();
|
||||
|
||||
private DependencyRemovedListener dependencyRemovedListener;
|
||||
|
||||
public Planner() {
|
||||
}
|
||||
|
||||
|
|
@ -89,6 +91,15 @@ public class Planner extends XulElement implements AfterCompose {
|
|||
dependencyRegistry.remove(taskRemoved.getTaskBean());
|
||||
}
|
||||
});
|
||||
dependencyRemovedListener = new DependencyRemovedListener() {
|
||||
|
||||
@Override
|
||||
public void dependenceRemoved(Dependency dependency) {
|
||||
dependencyRegistry.remove(dependency);
|
||||
}
|
||||
};
|
||||
getDependencyList().addDependencyRemovedListener(
|
||||
dependencyRemovedListener);
|
||||
}
|
||||
|
||||
public void addTask(Task task) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue