[ImageJ-devel] Design meeting notes

Lee Kamentsky leek at broadinstitute.org
Tue Oct 12 09:56:21 CDT 2010

  On 10/12/2010 10:07 AM, Curtis Rueden wrote:
> Hi Lee,
> The only tricky thing about this approach is how to handle 
> programmatically generated changes. For example, if widget A'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.
I'll use CellProfiler as an example here: the UI repaints itself after 
any change, with the validation callbacks fired, but the validation 
callbacks aren't allowed to change parameter values. The exception that 
they throw indicates the parameter that's most at fault for the problem, 
and some hopefully informative message about why.

So call depth = 1, respect the user's choice of parameters (which may be 
transitory if they are editing several at once) and indicate, but not 
prevent misconfiguration.


More information about the ImageJ-devel mailing list