BroadcastEverywhere should be rarely used, and eventually we may eliminate it. Typically you should use BroadcastInsideMyEventBoundary, which broadcasts to all the blocks inside an event boundary, containing the block that sent the event, or BroadcastInsideActiveViewEventBoundary, which broadcasts to all the blocks inside an event boundary containing the active view. BroadcastEverywhere broadcasts to all the blocks that are rendered, which is slow (especially during UpdateUIEvents) and doesn't allow different parcels to have a different namespace for events.

Let me know if none of the dispatch mechanisms, except BroadcastEverywhere, are convenient for you and I'll try to come up with an alternate dispatch mechanism.

John

Brendan O'Connor wrote:

In our dynamic user interface, where blocks come and go, it's handy to have a mechanism that sends an event to whichever block is available to handle that event. For this reason CPIA has had the ability to dispatch to events using the event's name. This is implemented as an attribute "eventsForNamedDispatch" on Block. Essentially, this allows the block to publish events that it, or its children blocks, can handle. This feature has not been widely used, until now.


Donn, is this in general preferable to using BroadcastEverywhere? More and more BroadcastEverywhere events are being sent around in the block-ified main calendar, but they do so because of the reason you're advocating eventsForNamedDispatch, namely that you can assign an arbitrary number of listeners and the sender doesn't have to worry about who' listening ... some notes on http://bugzilla.osafoundation.org/show_bug.cgi?id=3607

Brendan
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to