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
>> [email protected]
>> <mailto:[email protected]>
>> 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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel