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