diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/ScriptsRequiredByPlanner.java b/ganttzk/src/main/java/org/zkoss/ganttz/ScriptsRequiredByPlanner.java index dc4c04a5d..92b64d774 100644 --- a/ganttzk/src/main/java/org/zkoss/ganttz/ScriptsRequiredByPlanner.java +++ b/ganttzk/src/main/java/org/zkoss/ganttz/ScriptsRequiredByPlanner.java @@ -2,7 +2,7 @@ package org.zkoss.ganttz; import org.zkoss.ganttz.util.script.ScriptsRequiredDeclaration; -@ScriptsRequiredDeclaration(dependsOn = YUIMin.class) +@ScriptsRequiredDeclaration(dependsOn = { YUIMin.class, ScrollSyncScript.class }) public class ScriptsRequiredByPlanner { public static final String SELECTOR = "/zkau/web/js/yui/2.7.0/selector/selector-min.js"; diff --git a/ganttzk/src/main/java/org/zkoss/ganttz/ScrollSyncScript.java b/ganttzk/src/main/java/org/zkoss/ganttz/ScrollSyncScript.java new file mode 100644 index 000000000..d824ad219 --- /dev/null +++ b/ganttzk/src/main/java/org/zkoss/ganttz/ScrollSyncScript.java @@ -0,0 +1,12 @@ +package org.zkoss.ganttz; + +import org.zkoss.ganttz.util.script.ScriptsRequiredDeclaration; + +@ScriptsRequiredDeclaration(dependsOn = YUIMin.class) +public class ScrollSyncScript { + + public static final String SCROLL_SYNC = "/zkau/web/js/ganttz/scrollSync.js"; + + public static final String YAHOO_DOM_EVENT = "/zkau/web/js/yui/2.7.0/yahoo-dom-event/yahoo-dom-event.js"; + +} diff --git a/ganttzk/src/main/resources/web/js/ganttz/planner.js b/ganttzk/src/main/resources/web/js/ganttz/planner.js index c26142a8e..eda89a7e1 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/planner.js +++ b/ganttzk/src/main/resources/web/js/ganttz/planner.js @@ -1,53 +1,3 @@ -function ScrollSync(element){ - var xChanges = []; - var yChanges = []; - var notifyScrollX = function(){ - for ( var i = 0; i < xChanges.length; i++) { - xChanges[i](); - } - }; - var notifyScrollY = function(){ - for ( var i = 0; i < yChanges.length; i++) { - yChanges[i](); - } - }; - var notifyListeners = function(){ - notifyScrollX(); - notifyScrollY(); - }; - var toFunction = function(value){ - var result = value; - if(typeof(value) !== 'function'){ - result = function(){return synched}; - } - return result; - }; - - this.synchXChangeTo = function(synched){ - var target = toFunction(synched); - xChanges.push(function(){ target().scrollLeft = element.scrollLeft; }); - }; - this.synchYChangeTo = function(synched){ - var target = toFunction(synched); - yChanges.push(function(){ target().scrollTop = element.scrollTop; }); - }; - - this.notifyXChangeTo = function(listenerReceivingScroll){ - xChanges.push(function(){ - listenerReceivingScroll(element.scrollLeft); - }); - }; - - this.notifyYChangeTo = function(listenerReceivingScroll){ - yChanges.push(function() { - listenerReceivingScroll(element.scrollTop); - }); - }; - - YAHOO.util.Event.addListener(element,'scroll', notifyListeners); - return this; -} - /** * Javascript behaviuor for Planner elements * @author Lorenzo Tilve Álvaro diff --git a/ganttzk/src/main/resources/web/js/ganttz/scrollSync.js b/ganttzk/src/main/resources/web/js/ganttz/scrollSync.js new file mode 100644 index 000000000..bc6a4b831 --- /dev/null +++ b/ganttzk/src/main/resources/web/js/ganttz/scrollSync.js @@ -0,0 +1,49 @@ +function ScrollSync(element){ + var xChanges = []; + var yChanges = []; + var notifyScrollX = function(){ + for ( var i = 0; i < xChanges.length; i++) { + xChanges[i](); + } + }; + var notifyScrollY = function(){ + for ( var i = 0; i < yChanges.length; i++) { + yChanges[i](); + } + }; + var notifyListeners = function(){ + notifyScrollX(); + notifyScrollY(); + }; + var toFunction = function(value){ + var result = value; + if(typeof(value) !== 'function'){ + result = function(){return synched}; + } + return result; + }; + + this.synchXChangeTo = function(synched){ + var target = toFunction(synched); + xChanges.push(function(){ target().scrollLeft = element.scrollLeft; }); + }; + this.synchYChangeTo = function(synched){ + var target = toFunction(synched); + yChanges.push(function(){ target().scrollTop = element.scrollTop; }); + }; + + this.notifyXChangeTo = function(listenerReceivingScroll){ + xChanges.push(function(){ + listenerReceivingScroll(element.scrollLeft); + }); + }; + + this.notifyYChangeTo = function(listenerReceivingScroll){ + yChanges.push(function() { + listenerReceivingScroll(element.scrollTop); + }); + }; + + YAHOO.util.Event.addListener(element,'scroll', notifyListeners); + return this; +} \ No newline at end of file