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;