diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java index d6534bec1..bcaeb2d39 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java @@ -196,7 +196,7 @@ public class GanttPanel extends XulElement implements AfterCompose { } public void adjustZoomColumnsHeight() { - response("adjust_height", new AuInvoke(this, "adjust_height")); + response("adjust_dimensions", new AuInvoke(this, "adjust_dimensions")); } public LocalDate getPreviousStart() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index f86c1526e..f4f82ca88 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -791,6 +791,7 @@ public class Planner extends HtmlMacroComponent { setTaskListPredicate(predicate); } isFlattenTree = !isFlattenTree; + Clients.evalJavaScript("ganttz.Planner.getInstance().adjustScrollableDimensions()"); } public FilterAndParentExpandedPredicates getPredicate() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java index f801ec5a0..4be2dfe80 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/TaskList.java @@ -61,8 +61,6 @@ import org.zkoss.zul.impl.XulElement; */ public class TaskList extends XulElement implements AfterCompose { - private static final int HEIGHT_PER_ROW = 20; /* 30 */ - private transient IZoomLevelChangedListener zoomLevelChangedListener; private List currentTotalTasks; @@ -142,7 +140,6 @@ public class TaskList extends XulElement implements AfterCompose { addListenerForTaskComponentEditForm(taskComponent); taskComponent.afterCompose(); if (relocate) { - setHeight(getHeight());// forcing smart update getGanttPanel().adjustZoomColumnsHeight(); getGanttPanel().getDependencyList().redrawDependencies(); } @@ -189,11 +186,6 @@ public class TaskList extends XulElement implements AfterCompose { taskComponent.setContext(getContextMenuFor(taskComponent)); } - @Override - public String getHeight() { - return getTasksNumber() * HEIGHT_PER_ROW + "px"; - } - private TimeTrackerComponent getTimeTrackerComponent() { return getGanttPanel().getTimeTrackerComponent(); } diff --git a/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js b/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js index 97800b9f4..1ac8d09d0 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js +++ b/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js @@ -33,8 +33,7 @@ ganttz.GanttPanel = zk.$extends(zk.Widget,{ jq(element).css("left", "-" + this._rightpannellayout.scrollLeft() + "px") }, this)); }, - adjust_height : function(){ - jq(this.$n()).height(jq('#scroll_container').height()); + adjust_dimensions : function(){ ganttz.Planner.getInstance().adjustScrollableDimensions(); }, _calcXY : function(event){ diff --git a/ganttzk/src/main/resources/web/js/ganttz/Planner.js b/ganttzk/src/main/resources/web/js/ganttz/Planner.js index d8b399b0d..ed6eab6f0 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/Planner.js +++ b/ganttzk/src/main/resources/web/js/ganttz/Planner.js @@ -35,19 +35,9 @@ ganttz.Planner = zk.$extends(zk.Macro,{ DOMTimetracker.width(DOMScrollContainer.innerWidth()); DOMTimetracker.height( Math.max( - jq(window).height() - - this.$class.TIMETRACKER_OFFSET_TOP + - 26), - ( - jq('#listdetails_container').height() + - 12)); - - DOMScrollContainer.height( - jq(window).height() - - this.$class.TIMETRACKER_OFFSET_TOP - - this.$class.FOOTER_HEIGHT + - this.$class.SCROLLBAR_WIDTH * 2); - + jq(window).height() - this.$class.UNSCROLLABLE_AREA, + jq('#scroll_container').height() + this.$class.BOTTOM_WATERMARK_PADDING + )); // Inner divs need recalculation to adjust to new scroll displacement lenght ganttz.GanttPanel.getInstance().reScrollY(jq('#listdetails_container').height()); @@ -61,15 +51,14 @@ ganttz.Planner = zk.$extends(zk.Macro,{ zAu.send(new zk.Event(this, 'onZoomLevelChange', {zoomindex : zoomindex, scrollLeft : scrollLeft})); } },{ - FOOTER_HEIGHT : 40, // Design-relative footer height - TIMETRACKER_OFFSET_TOP : 120, // Design-relative height above timetracker - TASKDETAILS_WIDTH : 300, // Taskdetails column fixed width (300) - TASKDETAILS_HEIGHT : 180, // 260 // Design-relative reservated height for taskdetails (300,260) - SCROLLBAR_WIDTH : 15, // Scrollbars default width + TASKDETAILS_WIDTH : 300, // Taskdetails column fixed width (300) + UNSCROLLABLE_AREA : 170, // Design-relative reservated height for taskdetails (300,260) + SCROLLBAR_WIDTH : 15, // Scrollbars default width + BOTTOM_WATERMARK_PADDING : 40, // Space left behind last task getInstance : function(){ return this._instance; }, setInstance : function(instance){ this._instance = instance; } -}) \ No newline at end of file +})