Mercurial > hg > digilib
comparison client/digitallibrary/jquery/jquery.digilib.js @ 790:53bb694b1e82 jquery
loadImageInfo sends event when loaded.
author | robcast |
---|---|
date | Fri, 18 Feb 2011 19:46:09 +0100 |
parents | 040e9bc1602e |
children | 0ce8175f025a |
comparison
equal
deleted
inserted
replaced
789:32d1d6601968 | 790:53bb694b1e82 |
---|---|
23 | 23 |
24 /*jslint browser: true, debug: true, forin: true | 24 /*jslint browser: true, debug: true, forin: true |
25 */ | 25 */ |
26 | 26 |
27 // fallback for console.log calls | 27 // fallback for console.log calls |
28 if (typeof(console) === 'undefined') { | 28 if (typeof console === 'undefined') { |
29 var console = { | 29 var console = { |
30 log : function(){}, | 30 log : function(){}, |
31 debug : function(){}, | 31 debug : function(){}, |
32 error : function(){} | 32 error : function(){} |
33 }; | 33 }; |
355 p.init(data); | 355 p.init(data); |
356 } | 356 } |
357 } | 357 } |
358 // get image info from server if needed | 358 // get image info from server if needed |
359 if (data.scaleMode === 'pixel' || data.scaleMode === 'size') { | 359 if (data.scaleMode === 'pixel' || data.scaleMode === 'size') { |
360 loadImageInfo(data, updateDisplay); // updateDisplay(data) on completion | 360 $(data).bind('imageInfo', handleImageInfo); |
361 loadImageInfo(data); // triggers "imageInfo" on completion | |
361 } | 362 } |
362 // create buttons before scaler | 363 // create buttons before scaler |
363 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { | 364 for (var i = 0; i < elemSettings.visibleButtonSets; ++i) { |
364 showButtons(data, true, i); | 365 showButtons(data, true, i); |
365 } | 366 } |
720 var settings = data.settings; | 721 var settings = data.settings; |
721 var queryString = getParamString(settings, settings.digilibParamNames, defaults); | 722 var queryString = getParamString(settings, settings.digilibParamNames, defaults); |
722 return settings.digilibBaseUrl + '?' + queryString; | 723 return settings.digilibBaseUrl + '?' + queryString; |
723 }; | 724 }; |
724 | 725 |
725 // loads image information from digilib server via HTTP (and calls complete-fn) | 726 // loads image information from digilib server via HTTP |
726 var loadImageInfo = function (data, complete) { | 727 var loadImageInfo = function (data) { |
727 var settings = data.settings; | 728 var settings = data.settings; |
728 var p = settings.scalerBaseUrl.indexOf('/servlet/Scaler'); | 729 var p = settings.scalerBaseUrl.indexOf('/servlet/Scaler'); |
729 var url = settings.scalerBaseUrl.substring(0, p) + '/ImgInfo-json.jsp'; | 730 var url = settings.scalerBaseUrl.substring(0, p) + '/ImgInfo-json.jsp'; |
730 url += '?' + getParamString(settings, ['fn', 'pn'], defaults); | 731 url += '?' + getParamString(settings, ['fn', 'pn'], defaults); |
731 // TODO: better error handling | 732 // TODO: better error handling |
732 $.getJSON(url, function (json) { | 733 $.getJSON(url, function (json) { |
733 console.debug("got json data=", json); | 734 console.debug("got json data=", json); |
734 data.imgInfo = json; | 735 data.imgInfo = json; |
735 if (complete != null) { | 736 // send event |
736 complete.call(this, data, json); | 737 $(data).trigger('imageInfo', [json]); |
737 } | |
738 }); | 738 }); |
739 }; | 739 }; |
740 | 740 |
741 // processes some parameters into objects and stuff | 741 // processes some parameters into objects and stuff |
742 var unpackParams = function (data) { | 742 var unpackParams = function (data) { |
1203 data.scaleMode, data); | 1203 data.scaleMode, data); |
1204 // console.debug("imgTrafo=", data.imgTrafo); | 1204 // console.debug("imgTrafo=", data.imgTrafo); |
1205 } | 1205 } |
1206 }; | 1206 }; |
1207 | 1207 |
1208 // returns function for load event of scaler img | 1208 // returns handler for load event of scaler img |
1209 var scalerImgLoadedHandler = function (data) { | 1209 var scalerImgLoadedHandler = function (data) { |
1210 return function () { | 1210 return function () { |
1211 var $img = $(this); | 1211 var $img = $(this); |
1212 console.debug("scaler img loaded=",$img); | 1212 console.debug("scaler img loaded=",$img); |
1213 var $scaler = data.$scaler; | 1213 var $scaler = data.$scaler; |
1220 // update display (render marks, etc.) | 1220 // update display (render marks, etc.) |
1221 updateDisplay(data); | 1221 updateDisplay(data); |
1222 }; | 1222 }; |
1223 }; | 1223 }; |
1224 | 1224 |
1225 // handler for imageInfo loaded event | |
1226 var handleImageInfo = function (evt, json) { | |
1227 var data = this; | |
1228 updateDisplay(data); | |
1229 }; | |
1230 | |
1225 // place marks on the image | 1231 // place marks on the image |
1226 var renderMarks = function (data) { | 1232 var renderMarks = function (data) { |
1227 if (data.$img == null || data.imgTrafo == null) return; | 1233 if (data.$img == null || data.imgTrafo == null) return; |
1228 console.debug("rendermarks img=",data.$img," imgtrafo=",data.imgTrafo); | 1234 console.debug("rendermarks img=",data.$img," imgtrafo=",data.imgTrafo); |
1229 var $elem = data.$elem; | 1235 var $elem = data.$elem; |