Hi Grant et. al,<br><br>Grant and I discussed this further, and we agree that it is much preferred to avoid depending on or altering the order events are delivered to subscribers. It should always be possible to create additional event types to discriminate more finely, as Lee describes.<br>

<br>So Grant, I propose that we remove the PriorityEventSubscriber stuff we added the other day, to avoid complexifying the events package. What do you think?<br><br>-Curtis<br><br><div class="gmail_quote">On Thu, Jun 23, 2011 at 12:38 PM, Lee Kamentsky <span dir="ltr">&lt;<a href="mailto:leek@broadinstitute.org">leek@broadinstitute.org</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">IMHO - if you depend on order for events, there&#39;s a good chance you&#39;re not doing something right. If you depend on order, I&#39;m guessing that a direct function call is the appropriate solution or that you are not properly modeling what is really happening.<br>


<br>
I&#39;m guessing that this has to do with the overlay manager - that you&#39;ve received an overlay created/deleted event and you don&#39;t know whether it&#39;s in the overlay manager or not. There are two different events here:<br>


* an overlay object was created or deleted<br>
* the overlay manager added or removed an overlay<br>
so, the code that is experiencing difficulty should respond to the appropriate event. If you have a user interface that shows the overlays in the manager, it&#39;s the second event that you want. If I guessed wrong, perhaps it follows the same pattern?<br>

<font color="#888888">
<br>
--Lee</font><div><div></div><div class="h5"><br>
<br>
On 6/23/2011 12:58 PM, Grant B. Harris wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ooops... My bad.  I thought we were using 1.2... We are already using 1.4.  But we need to change Events framework.  I&#39;ll take a stab at it today.<br>
-- Grant<br>
<br>
On 6/23/2011 12:55 PM, Grant B. Harris wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think EventBus can serve us well, but I have run into a serious issue that demands that we move from EventBus version 1.2 to 1.4.<br>
<br>
Because &quot;subscribers are called in the order in which they subscribed&quot;, we cannot use the EventBus (1.2) in ways that we need.  If I have a class which is watching things (say a ROI Manager or the Window menu list of open displays) it&#39;s behavior depends on when it was subscribed.  I&#39;ve been working on this for a week and I have not found a way to manage this.  Fortunately I discovered that as of version 1.3 there is a PrioritizedEventSubscriber  (<a href="http://www.jarvana.com/jarvana/view/org/bushe/eventbus/1.3/eventbus-1.3-javadoc.jar%21/org/bushe/swing/event/Prioritized.html" target="_blank">http://www.jarvana.com/<u></u>jarvana/view/org/bushe/<u></u>eventbus/1.3/eventbus-1.3-<u></u>javadoc.jar!/org/bushe/swing/<u></u>event/Prioritized.html</a>)  I think this is just what we need.<br>


<br>
(Using this priority mechanism may also eliminate the need for the ObjectsUpdatedEvent that I added last week.)<br>
<br>
EventBus version 1.4 is here: <a href="http://mvnrepository.com/artifact/org.bushe/eventbus/1.4" target="_blank">http://mvnrepository.com/<u></u>artifact/org.bushe/eventbus/1.<u></u>4</a><br>
<br>
We will need to change the Events framework a bit to add Prioritized Event Subscription, but otherwise I don&#39;t think it will require any refactoring except for the subscribers that need to set priority.<br>
<br>
-- Grant<br>
<br>
<br>
______________________________<u></u>_________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagejdev.org" target="_blank">ImageJ-devel@imagejdev.org</a><br>
<a href="http://imagejdev.org/mailman/listinfo/imagej-devel" target="_blank">http://imagejdev.org/mailman/<u></u>listinfo/imagej-devel</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagejdev.org" target="_blank">ImageJ-devel@imagejdev.org</a><br>
<a href="http://imagejdev.org/mailman/listinfo/imagej-devel" target="_blank">http://imagejdev.org/mailman/<u></u>listinfo/imagej-devel</a><br>
</blockquote>
<br>
<br>
______________________________<u></u>_________________<br>
ImageJ-devel mailing list<br>
<a href="mailto:ImageJ-devel@imagejdev.org" target="_blank">ImageJ-devel@imagejdev.org</a><br>
<a href="http://imagejdev.org/mailman/listinfo/imagej-devel" target="_blank">http://imagejdev.org/mailman/<u></u>listinfo/imagej-devel</a><br>
</div></div></blockquote></div><br>