From a93970fd9884abb5faf4910e70e63df917c1307a Mon Sep 17 00:00:00 2001 From: Farruco Sanjurjo Date: Mon, 25 Oct 2010 12:03:52 +0200 Subject: [PATCH] Ganttpanel changed to scroll on zoomlevel change * It's not working yet, but I prefer to do small commits FEA: ItEr02S03MigracionZK5 --- ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java | 4 ++-- ganttzk/src/main/java/org/zkoss/ganttz/Planner.java | 8 +++++--- .../java/org/zkoss/ganttz/timetracker/TimeTracker.java | 2 +- .../zkoss/ganttz/timetracker/TimeTrackerComponent.java | 7 +++++++ ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js | 3 +++ 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java index 430bfd85a..f5d73c668 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/GanttPanel.java @@ -129,8 +129,8 @@ public class GanttPanel extends XulElement implements AfterCompose { return timeTrackerComponent.getTimeTracker(); } - public void setZoomLevel(ZoomLevel zoomLevel) { - getTimeTracker().setZoomLevel(zoomLevel); + public void setZoomLevel(ZoomLevel zoomLevel, int scrollLeft) { + timeTrackerComponent.setZoomLevel(zoomLevel, scrollLeft); } public Planner getPlanner() { diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java index 06f94f552..1c10fe269 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/Planner.java @@ -233,13 +233,13 @@ public class Planner extends HtmlMacroComponent { return new SimpleListModel(selectableZoomlevels); } - public void setZoomLevel(final ZoomLevel zoomLevel) { + public void setZoomLevel(final ZoomLevel zoomLevel, int scrollLeft) { if (ganttPanel == null) { return; } this.fixedZoomByUser = true; initialZoomLevel = zoomLevel; - ganttPanel.setZoomLevel(zoomLevel); + ganttPanel.setZoomLevel(zoomLevel, scrollLeft); } public void zoomIncrease() { @@ -346,7 +346,9 @@ public class Planner extends HtmlMacroComponent { zoomindex= (Integer) retrieveData(request, "zoomindex"); scrollLeft = (Integer) retrieveData(request, "scrollLeft"); - setZoomLevel((ZoomLevel)((Listbox)getFellow("listZoomLevels")).getModel().getElementAt(zoomindex)); + setZoomLevel((ZoomLevel)((Listbox)getFellow("listZoomLevels")) + .getModel().getElementAt(zoomindex), + scrollLeft); return true; } return false; diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java index af4d229ae..d2de6e63e 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTracker.java @@ -40,8 +40,8 @@ import org.zkoss.ganttz.timetracker.zoom.TimeTrackerState; import org.zkoss.ganttz.timetracker.zoom.ZoomLevel; import org.zkoss.ganttz.util.Interval; import org.zkoss.ganttz.util.LongOperationFeedback; -import org.zkoss.ganttz.util.WeakReferencedListeners; import org.zkoss.ganttz.util.LongOperationFeedback.ILongOperation; +import org.zkoss.ganttz.util.WeakReferencedListeners; import org.zkoss.ganttz.util.WeakReferencedListeners.IListenerNotification; import org.zkoss.zk.ui.Component; diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java index 8cd247e40..d458f24e5 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/timetracker/TimeTrackerComponent.java @@ -41,6 +41,7 @@ public abstract class TimeTrackerComponent extends HtmlMacroComponent { private IZoomLevelChangedListener zoomListener; private final String secondLevelZul; private String timeTrackerElementId; + private int scrollLeft; public TimeTrackerComponent(TimeTracker timeTracker) { this(timeTracker, @@ -58,6 +59,7 @@ public abstract class TimeTrackerComponent extends HtmlMacroComponent { public void zoomLevelChanged(ZoomLevel detailLevel) { if (isInPage()) { recreate(); + changeDetailLevel(getDaysFor(scrollLeft)); } } }; @@ -157,4 +159,9 @@ public abstract class TimeTrackerComponent extends HtmlMacroComponent { / getTimeTrackerState().daysPerPixel())); } + public void setZoomLevel(ZoomLevel zoomlevel, int scrollLeft){ + this.scrollLeft = scrollLeft; + getTimeTracker().setZoomLevel(zoomlevel); + } + } diff --git a/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js b/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js index df99e4c7b..0942a3379 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js +++ b/ganttzk/src/main/resources/web/js/ganttz/GanttPanel.js @@ -60,6 +60,9 @@ ganttz.GanttPanel = zk.$extends(zk.Widget,{ }, reScrollX : function(px){ jq('#ganttpanel_inner_scroller_x').width(px); + }, + scroll_horizontal : function(value){ + jq('#ganttpanel_scroller_x').scrollLeft(value); } },{ getInstance : function(){