Hi Gene,

thanks, you are right, this at least works in the Playground. But I'm 
still having problems in my actual code. My Application.js contains in 
its members section:
[CODE]

members : {

buildGUI : function () {

    if(hbtables.Application.messageBus.checkSubscription("CONFIG LOADED"));
        
qx.event.message.Bus.unsubscribe("CONFIG_LOADED",this.buildGUI,this);
}
    main : function () {

        hbtables.Application.messageBus = 
qx.event.message.Bus.getInstance();
        hbtables.Application.messageBus.subscribe("CONFIG LOADED", 
this.buildGUI,this);
}

}
[/CODE]

This does not work. Checking the output of

[CODE]
qx.dev.Debug.debugObject(hbtables.Application.messageBus.getSubscriptions());
[/CODE]

later in the source shows that the function is still in the subscriber's 
list - to be precise, I seem to get the whole document source in the 
output of the debugObject above, which irritates me. Is this the correct 
behavior?

Furthermore, the api documentation says about 
qx.event.message.Bus.unsubscribe:

"unsubscribe a listening method _if_ you supply the callback function 
and execution context, remove only this exact subscription _otherwise_ 
remove all subscriptions"

This, I think, suggests that the second and third parameter are 
optional. However, I'm not a native speaker.

Greets,
Michael

Gene Amtower schrieb:
> Michael,
>
> In my API docs, it lists 3 parameters for the Bus.subscribe and 
> Bus.unsubscribe methods...
>
> *subscribe(String **message**, Function **subscriber**, Object 
> **context**)*
> *unsubscribe(String **message**, Function **subscriber**, Object 
> **context**)*
>
> where the 3rd parameter is probably going to be "this" and appears to 
> be required per the API docs. 
>
> When I used all three parameters in my Playground for both subscribe 
> and unsubscribe, the error went away and both the subscibe and 
> unsubscribe work correctly.  I moved the dispatch statement around to 
> test the functionality, and it only worked when placed between the 
> subscribe and unsubscribe calls.
>
>
>> var messageBus = qx.event.message.Bus.getInstance();
>>
>> var message = new qx.event.message.Message("TEST");
>>
>>
>>
>> var myfunction = function() {
>>
>>    alert("Here I am");
>>
>> }
>>
>>
>>
>> messageBus.subscribe("TEST", myfunction, this);
>>
>> // messageBus.unsubscribe("TEST");
>> messageBus.unsubscribe("TEST", myfunction, this);
>>
>> messageBus.dispatch(message);
>>
>
> HTH,
>
>   Gene
>
>
> On Wed, 2009-06-10 at 20:11 +0200, Michael Helwig wrote:
>> Hi,
>>
>> how can I unsubscribe a function from a message bus 
>> (qx.event.message.Bus)?
>>
>> Calling messageBus.unsubscribe("MESSAGE_TEXT") yields an error 
>> ("sub[msgName] is null")
>> Running the following in the Playground app also yields an error:
>>
>> [CODE]
>> var messageBus = qx.event.message.Bus.getInstance();
>> var message = new qx.event.message.Message("TEST");
>>
>> var myfunction = function() {
>>    alert("Here I am");
>> }
>>
>> messageBus.subscribe("TEST", myfunction);
>> messageBus.unsubscribe("TEST");
>> [/CODE]
>>
>> Error:
>> playground.Application[p]: TypeError: k[l] is null
>>
>> The combinations
>> [CODE]
>> messageBus.unsubscribe("TEST", myfunction);
>> //OR
>> messageBus.unsubscribe(myfunction);
>> [/CODE]
>> have no effect, the function gets called if the message is dispatched 
>> anyway.
>>
>> Am I doing something wrong or is this a bug?
>>
>> Greetings,
>>
>> Michael
>>
>>
>> ------------------------------------------------------------------------------
>> Crystal Reports - New Free Runtime and 30 Day Trial
>> Check out the new simplified licensing option that enables unlimited
>> royalty-free distribution of the report engine for externally facing 
>> server and web deployment.
>> http://p.sf.net/sfu/businessobjects
>> _______________________________________________
>> qooxdoo-devel mailing list
>> qooxdoo-devel@lists.sourceforge.net 
>> <mailto:qooxdoo-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>>     
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> Crystal Reports - New Free Runtime and 30 Day Trial
> Check out the new simplified licensing option that enables unlimited
> royalty-free distribution of the report engine for externally facing 
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> ------------------------------------------------------------------------
>
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
>   


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to