comparison client/digitallibrary/jquery/jquery.digilib.js @ 799:12f790cb30de jquery

started to adapt regions plugin to new plugin mechanism
author hertzhaft
date Fri, 18 Feb 2011 23:13:26 +0100
parents b07d1824ca2a
children 1b1728926534
comparison
equal deleted inserted replaced
798:b07d1824ca2a 799:12f790cb30de
1594 setScaleMode : setScaleMode, 1594 setScaleMode : setScaleMode,
1595 isFullArea : isFullArea, 1595 isFullArea : isFullArea,
1596 getBorderWidth : getBorderWidth 1596 getBorderWidth : getBorderWidth
1597 }; 1597 };
1598 1598
1599 // hook plugin into jquery 1599 // hook digilib plugin into jquery
1600 $.fn.digilib = function (action) { 1600 $.fn.digilib = function (action) {
1601 // plugin extension mechanism 1601 // plugin extension mechanism, called when the plugins' code is read
1602 if (action === 'plugin') { 1602 if (action === 'plugin') {
1603 var plugin = arguments[1]; 1603 var plugin = arguments[1];
1604 // each plugin needs a name 1604 // each plugin needs a name
1605 if (plugin.name != null) { 1605 if (plugin.name != null) {
1606 plugins[plugin.name] = plugin; 1606 plugins[plugin.name] = plugin;
1613 // and install 1613 // and install
1614 if (typeof plugin.install === 'function') { 1614 if (typeof plugin.install === 'function') {
1615 plugin.install(plugin); 1615 plugin.install(plugin);
1616 } 1616 }
1617 } 1617 }
1618 // initialisation of plugins done later 1618 // plugins will be initialised when action.init is called
1619 } else if (actions[action]) { 1619 } else if (actions[action]) {
1620 // call action on this with the remaining arguments (inserting data as first argument) 1620 // call action on this with the remaining arguments (inserting data as first argument)
1621 var $elem = $(this); 1621 var $elem = $(this);
1622 var data = $elem.data('digilib'); 1622 var data = $elem.data('digilib');
1623 var args = Array.prototype.slice.call(arguments, 1); 1623 var args = Array.prototype.slice.call(arguments, 1);
1624 args.unshift(data); 1624 args.unshift(data);
1625 return actions[action].apply(this, args); 1625 return actions[action].apply(this, args);
1626 } else if (typeof action === 'object' || !action) { 1626 } else if (typeof action === 'object' || !action) {
1627 // call init on this 1627 // call init on the digilib jQuery object
1628 return actions.init.apply(this, arguments); 1628 return actions.init.apply(this, arguments);
1629 } else { 1629 } else {
1630 $.error('action ' + action + ' does not exist on jQuery.digilib'); 1630 $.error('action ' + action + ' does not exist on jQuery.digilib');
1631 } 1631 }
1632 }; 1632 };