Author: jmorliaguet Date: Sat Feb 25 12:03:26 2006 New Revision: 2453 Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Log:
- code simplifications Modified: cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js (original) +++ cpsskins/branches/jmo-perspectives/ui/framework/cpsskins.js Sat Feb 25 12:03:26 2006 @@ -92,28 +92,25 @@ }, unsubscribe: function(eventid, event) { - new_subscribers = []; - CPSSkins._subscribers[eventid].each(function(e) { - if (!(event.subscriber == e.subscriber && event.publisher == e.publisher)) { - new_subscribers.push(e); - } - }); - CPSSkins._subscribers[eventid] = new_subscribers; + var subscribers = CPSSkins._subscribers; + subscribers[eventid] = subscribers[eventid].reject(function(e) { + return (event.subscriber == e.subscriber && + event.publisher == e.publisher) + }); }, notify: function(eventid, event) { - var subscribers = CPSSkins._subscribers[eventid] || []; + var subscribers = CPSSkins._subscribers; var publisher = event.publisher; - subscribers.each(function(e) { - var event_publisher = e.publisher; - if (event_publisher == publisher || event_publisher == null) { - var handler = CPSSkins.getEventHandler(eventid, e.subscriber); - if (handler) { - // set the publisher in case no publisher is specified in the subscription. - event.subscriber = e.subscriber; - event.publisher = publisher; - handler(event); - } + (subscribers[eventid] || []).findAll(function(e) { + return (e.publisher == publisher || e.publisher == null) + }).each(function(e) { + var handler = CPSSkins.getEventHandler(eventid, e.subscriber); + if (handler) { + // set the publisher in case no publisher is specified. + event.subscriber = e.subscriber; + event.publisher = publisher; + handler(event); } }); }, @@ -127,12 +124,7 @@ }, getEventHandler: function(eventid, subscriber) { - var handlers = subscriber._handlers; - if (handlers) { - return handlers[eventid]; - } else { - return null; - } + return (subscriber._handlers || {})[eventid]; }, /* Document parsing */ @@ -164,7 +156,7 @@ } }); - elements.each(function(el, index) { + elements.each(function(el, index) { var url = el.getAttribute("cite"); if (url) { var options = { -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins