Hi Lee,<br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">Hopefully, the plugin would get the context by specifying different callbacks for each parameter?<br>

</blockquote>
<br>Yep, I think it would work.<br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">You could also put in some sort of validation mechanism - the callback can throw an exception to reject the proposed change...<br>

</blockquote>

<br>Good idea—solves both problems with one parameter.<br><br>The only tricky thing about this approach is how to handle programmatically generated changes. For example, if widget A&#39;s value depends on widget B, and both have callbacks... when user changes B, callbackB is called, which programmatically changes A... should callbackA then be invoked? Either way works—but if so, you have to be careful not to code mutual dependencies in a way that generates infinite recursion.<br>

<br>-Curtis<br><br><div class="gmail_quote">On Tue, Oct 12, 2010 at 7:52 AM, 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: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

 On 10/11/2010 3:11 PM, Johannes Schindelin wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi,<br>
</blockquote>
...<div class="im"><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


     @Parameter(label = &quot;Keep aspect ratio&quot;, callback = aspectRatioChanged)<br>
     public boolean keepAspectRatio = false;<br>
<br>
So that the developer defines their own callback methods for each<br>
parameter to which they want to react? Easy for each dialog<br>
implementation to attach listeners and callback by reflection, right?<br>
</blockquote>
That was my first idea. But how would the user interface tell the callback<br>
without String or java.lang.reflect.Field ugliness which input was<br>
modified by the user (and by that, what field should be changed<br>
accordingly), and how would the callback tell that it changed something,<br>
and what?<br>
<br>
</blockquote></div>
I&#39;d pick a signature that was pretty generic. The callback implementation strategy might be to reevaluate everything when anything changed. For the above, if there were aspect ratio and some other parameter, say, &quot;intensity&quot; with log and linear options, you&#39;d redo the whole image, applying the new aspect ratio and the new intensity transform.<br>


<br>
Hopefully, the plugin would get the context by specifying different callbacks for each parameter?<br>
<br>
You could also put in some sort of validation mechanism - the callback can throw an exception to reject the proposed change...<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Ciao,<br>
Dscho<br>
<br>
</blockquote>
<br>
</blockquote></div><br>