On changing zoom in limiting resources dependencies are not redrawn
FEA: ItEr69S04BugFixing
This commit is contained in:
parent
1be321f69a
commit
4a81b0f2bf
2 changed files with 52 additions and 1 deletions
|
|
@ -22,6 +22,7 @@
|
|||
package org.navalplanner.web.limitingresources;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
|
@ -30,24 +31,68 @@ import org.navalplanner.business.planner.limiting.entities.LimitingResourceQueue
|
|||
import org.navalplanner.business.planner.limiting.entities.LimitingResourceQueueElement;
|
||||
import org.navalplanner.business.resources.entities.LimitingResourceQueue;
|
||||
import org.zkoss.ganttz.DependencyList;
|
||||
import org.zkoss.ganttz.timetracker.TimeTracker;
|
||||
import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener;
|
||||
import org.zkoss.ganttz.timetracker.zoom.ZoomLevel;
|
||||
import org.zkoss.ganttz.util.ComponentsFinder;
|
||||
import org.zkoss.zk.ui.ext.AfterCompose;
|
||||
import org.zkoss.zul.impl.XulElement;
|
||||
|
||||
/**
|
||||
* @author Lorenzo Tilve Álvaro <ltilve@igalia.com>
|
||||
* @author Diego Pino García <dpino@igalia.com>
|
||||
*/
|
||||
public class LimitingDependencyList extends XulElement {
|
||||
public class LimitingDependencyList extends XulElement implements AfterCompose {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(DependencyList.class);
|
||||
|
||||
private final LimitingResourcesPanel panel;
|
||||
|
||||
private transient IZoomLevelChangedListener listener;
|
||||
|
||||
private Map<LimitingResourceQueueDependency, LimitingDependencyComponent> dependencies = new HashMap<LimitingResourceQueueDependency, LimitingDependencyComponent>();
|
||||
|
||||
public LimitingDependencyList(LimitingResourcesPanel panel) {
|
||||
this.panel = panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompose() {
|
||||
if (listener == null) {
|
||||
listener = new IZoomLevelChangedListener() {
|
||||
@Override
|
||||
public void zoomLevelChanged(ZoomLevel detailLevel) {
|
||||
removeDependencyComponents();
|
||||
createDependencyComponents();
|
||||
}
|
||||
|
||||
private void createDependencyComponents() {
|
||||
for (LimitingResourceQueueDependency each: dependencies.keySet()) {
|
||||
LimitingDependencyComponent dependencyComponent = createDependencyComponent(each);
|
||||
if (dependencyComponent != null) {
|
||||
addDependencyComponent(dependencyComponent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
getTimeTracker().addZoomListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
private void removeDependencyComponents() {
|
||||
List<LimitingDependencyComponent> children = ComponentsFinder
|
||||
.findComponentsOfType(LimitingDependencyComponent.class,
|
||||
getChildren());
|
||||
for (LimitingDependencyComponent each : children) {
|
||||
removeChild(each);
|
||||
}
|
||||
}
|
||||
|
||||
private TimeTracker getTimeTracker() {
|
||||
return panel.getTimeTracker();
|
||||
}
|
||||
|
||||
public void addDependenciesFor(LimitingResourceQueueElement queueElement) {
|
||||
for (LimitingResourceQueueDependency origin: queueElement.getDependenciesAsOrigin()) {
|
||||
addDependency(origin);
|
||||
|
|
@ -126,6 +171,7 @@ public class LimitingDependencyList extends XulElement {
|
|||
}
|
||||
|
||||
public void clear() {
|
||||
removeDependencyComponents();
|
||||
dependencies.clear();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -296,6 +296,7 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
|
|||
|
||||
// Initialize dependencies
|
||||
rebuildDependencies();
|
||||
dependencyList.afterCompose();
|
||||
|
||||
initializePagination();
|
||||
}
|
||||
|
|
@ -427,6 +428,10 @@ public class LimitingResourcesPanel extends HtmlMacroComponent {
|
|||
return timeTrackerComponent;
|
||||
}
|
||||
|
||||
public TimeTracker getTimeTracker() {
|
||||
return timeTrackerComponent.getTimeTracker();
|
||||
}
|
||||
|
||||
public void unschedule(QueueTask task) {
|
||||
LimitingResourceQueueElement queueElement = task.getLimitingResourceQueueElement();
|
||||
LimitingResourceQueue queue = queueElement.getLimitingResourceQueue();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue