Hello, I have just created a patch (attached) for the current MochiKit.Signal implementation to achieve something very similar to the former NotificationCenter.
I have also updated the relative tests. I have not updated the documentation yet, but if you consider including the patch into the repository, I will be pleased to update the documentation too. Any feedback is welcome. Best regards, Giulio Cesare On Wed, Nov 21, 2007 at 11:32 AM, Giulio Cesare Solaroli <[EMAIL PROTECTED]> wrote: > Here you are: > http://clipperz.googlecode.com/svn/trunk/src/js/Clipperz/NotificationCenter.js > > Sorry again for the trouble. > > Feel free to ask for any question. > > Best regards, > > Giulio Cesare > > > On 11/21/07, Giulio Cesare Solaroli <[EMAIL PROTECTED]> wrote: >> Sorry!!!! My fault. :-( >> >> I must have screwed something on the build script. >> >> I will try to fix it as soon as possible. If you want to take a look >> at the code in the meanwhile, the same code could be found buried with >> the full source of our application (the code of the application is >> released with a "reference licence", not with the BSD licence used for >> the crypto library). >> >> You can find the link to the code and details on the licence here: >> http://www.clipperz.com/learn_more/reviewing_the_code >> >> I will post back as soon as I managed to commit the NotificationCenter >> into the code.google SVN repository. >> >> Sorry for the trouble. >> >> Best regards, >> >> Giulio Cesare >> >> >> >> On 11/21/07, Per Cederberg <[EMAIL PROTECTED]> wrote: >> > >> > Ehm... I couldn't find the NotificationCenter class anywhere in the >> > svn repo. Perhaps I'm looking at the wrong place? Found a reference >> > to the class here, but no source code: >> > >> > http://clipperz.googlecode.com/svn/trunk/src/js/Clipperz/Crypto/PRNG.js >> > >> > /Per >> > >> > On Nov 15, 1:50 pm, "Giulio Cesare Solaroli" <[EMAIL PROTECTED]> >> > wrote: >> > > Hello, >> > > >> > > I have implemented a NotificationCenter class similar to the one >> > > available on the MacOSX foundation library (rooted back in the NeXT >> > > NSFoundation library). >> > > >> > > The NotificationCenter allows loosely binding between notifying >> > > objects and listeners, and it is included in the open source crypto >> > > library we have released as part of our project. >> > > >> > > There is no documentation, but the code should be quite clean, and >> > > there are some automatic tests where you should get some ideas on how >> > > to use it. For any other question, feel free to contact me. >> > > >> > > You can find the library here: >> > > -http://code.google.com/p/clipperz >> > > >> > > If you are interested on our project, you can find all the details here: >> > > -http://www.clipperz.com >> > > >> > > Hope this helps. >> > > >> > > Regards, >> > > >> > > Giulio Cesare >> > > >> > > On Nov 15, 2007 12:30 PM, Zsolt <[EMAIL PROTECTED]> wrote: >> > > >> > > >> > > >> > > > I needed the ability to have two or more objects of the same type talk >> > > > to each other and respond to each others events. For example when one >> > > > gets updated the other one should also do something. My first thought >> > > > was to use MochiKit.Signal.signal but that needs a source as a first >> > > > arg so that is not good because i do not know the name of the other >> > > > object so i modified signal and came up with >> > > >> > > > MochiKit.Base.update(MochiKit.Signal,{ >> > > > 'signalAll' : function(sig){ >> > > > var self= MochiKit.Signal; >> > > > var observers = self._observers; >> > > > var args = MochiKit.Base.extend(null, arguments, 1); >> > > > var errors = []; >> > > > self._lock = true; >> > > > for (var i = 0; i < observers.length; i++) { >> > > > var ident = observers[i]; >> > > > if (ident.signal === sig && ident.connected) { >> > > > try { >> > > > ident.listener.apply(ident.source, args); >> > > > } catch (e) { >> > > > errors.push(e); >> > > > } >> > > > } >> > > > } >> > > > self._lock = false; >> > > > if (self._dirty) { >> > > > self._dirty = false; >> > > > for (var i = observers.length - 1; i >= 0; i--) { >> > > > if (!observers[i].connected) { >> > > > observers.splice(i, 1); >> > > > } >> > > > } >> > > > } >> > > > if (errors.length == 1) { >> > > > throw errors[0]; >> > > > } else if (errors.length > 1) { >> > > > var e = new Error("Multiple errors thrown in handling >> > > > 'sig', see errors property"); >> > > > e.errors = errors; >> > > > throw e; >> > > > } >> > > > } >> > > > }); >> > > >> > > > Basicly you can now just call MochiKit.Signal.signalAll('onupdate'); >> > > > and every object connected to that signal will get notified. >> > >> > >> > >> > >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "MochiKit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~----------~----~----~----~------~----~------~--~---
MochiKit.notificationCenter.patch
Description: Binary data
