diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java index 31a86b69b..430bfd85a 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java @@ -26,6 +26,7 @@ import org.zkoss.ganttz.adapters.IDisabilityConfiguration; import org.zkoss.ganttz.data.GanttDiagramGraph; import org.zkoss.ganttz.timetracker.TimeTracker; import org.zkoss.ganttz.timetracker.TimeTrackerComponent; +import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.zk.au.out.AuInvoke; import org.zkoss.zk.ui.ext.AfterCompose; @@ -43,6 +44,8 @@ public class GanttPanel extends XulElement implements AfterCompose { private final Planner planner; + private transient IZoomLevelChangedListener zoomLevelChangedListener; + public GanttPanel( Planner planner, List> commandsOnTasksContextualized, @@ -85,7 +88,6 @@ public class GanttPanel extends XulElement implements AfterCompose { .asDependencyComponents(diagramGraph.getVisibleDependencies())); timeTrackerComponent.afterCompose(); dependencyList.afterCompose(); - if (planner.isExpandAll()) { FunctionalityExposedForExtensions context = (FunctionalityExposedForExtensions) planner .getContext(); @@ -96,6 +98,7 @@ public class GanttPanel extends XulElement implements AfterCompose { planner.getPredicate().setFilterContainers(true); planner.setTaskListPredicate(planner.getPredicate()); } + registerZoomLevelChangedListener(); } public TimeTrackerComponent getTimeTrackerComponent() { @@ -134,4 +137,20 @@ public class GanttPanel extends XulElement implements AfterCompose { return planner; } + private void registerZoomLevelChangedListener() { + if (zoomLevelChangedListener == null) { + zoomLevelChangedListener = new IZoomLevelChangedListener() { + @Override + public void zoomLevelChanged(ZoomLevel detailLevel) { + adjustZoomColumnsHeight(); + } + }; + getTimeTracker().addZoomListener(zoomLevelChangedListener); + } + } + + public void adjustZoomColumnsHeight() { + response("adjust_height", new AuInvoke(this, "adjust_height")); + } + } \ No newline at end of file diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index 6092d2050..57177ad34 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -441,7 +441,7 @@ public class Planner extends HtmlMacroComponent { getDependencyList().taskRemoved(task); leftPane.taskRemoved(task); setHeight(getHeight());// forcing smart update - taskList.adjustZoomColumnsHeight(); + ganttPanel.adjustZoomColumnsHeight(); getDependencyList().redrawDependencies(); } @@ -686,4 +686,8 @@ public class Planner extends HtmlMacroComponent { } return null; } + public String getWidgetClass(){ + return getDefinition().getDefaultWidgetClass(); + } + } diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java index 3a4195788..bdf0e0290 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -45,7 +45,6 @@ import org.zkoss.ganttz.timetracker.zoom.IZoomLevelChangedListener; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.MenuBuilder; import org.zkoss.ganttz.util.MenuBuilder.ItemAction; -import org.zkoss.zk.au.out.AuInvoke; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.ext.AfterCompose; @@ -133,7 +132,7 @@ public class TaskList extends XulElement implements AfterCompose { taskComponent.afterCompose(); if (relocate) { setHeight(getHeight());// forcing smart update - adjustZoomColumnsHeight(); + getGanttPanel().adjustZoomColumnsHeight(); getGanttPanel().getDependencyList().redrawDependencies(); } } @@ -284,7 +283,6 @@ public class TaskList extends XulElement implements AfterCompose { for (TaskComponent taskComponent : getTaskComponents()) { taskComponent.zoomChanged(); } - adjustZoomColumnsHeight(); } }; getTimeTracker().addZoomListener(zoomLevelChangedListener); @@ -326,10 +324,6 @@ public class TaskList extends XulElement implements AfterCompose { return (GanttPanel) getParent(); } - public void adjustZoomColumnsHeight() { - response("adjust_height", new AuInvoke(TaskList.this, "adjust_height")); - } - public void redrawDependencies() { getGanttPanel().getDependencyList().redrawDependencies(); } diff --git a/ganttzk/src/main/resources/metainfo/zk/lang-addon.xml b/ganttzk/src/main/resources/metainfo/zk/lang-addon.xml index f6b0fbbff..650e81118 100755 --- a/ganttzk/src/main/resources/metainfo/zk/lang-addon.xml +++ b/ganttzk/src/main/resources/metainfo/zk/lang-addon.xml @@ -14,6 +14,7 @@ planner org.zkoss.ganttz.Planner + ganttz.Planner ~./ganttz/zul/plannerLayout.zul