[ImageJ-devel] Tutorial problems

Barry DeZonia bdezonia at gmail.com
Tue Oct 23 14:54:38 CDT 2012


Hi Johannes,

Did you file a ticket for this bug? If not I can file one and reference
this thread.

On Sat, Oct 20, 2012 at 5:36 AM, Johannes Schindelin <
Johannes.Schindelin at gmx.de> wrote:

> Hi all,
>
> while playing around with ImgLib2, I realized that the imagej-tutorials do
> not work anymore. If you try to load and display a dataset, it gets loaded
> but not displayed.
>
> Now, I do not want to be a lame developer who just fires bug reports and
> forgets about them, so I investigated a little. The culprit seems to be
> the changes in the way UserInterfaces are instantiated. Earlier -- when
> the tutorial was written -- there was only one UserInterface and if you
> did not call createUI() on it (to show the main window) it still was able
> to show images with said UserInterface.
>
> In the meantime, we can show multiple user interfaces side by side, but
> that comes at a price: when looking for user interfaces to display images,
> the default one might not even be visible, resulting in -- nothing.
>
> I have a proposed fix on the 'tutorials' branch, where getVisibleUIs()
> falls back to the default UI if none was shown, but I have a hunch that we
> need a better solution where the default UI is the only visible UI in the
> beginning but as soon as createUI() has been called, the default UI is no
> longer being considered automatically visible.
>
> Hmm?
>
> Ciao,
> Dscho
>
> P.S.: there is a nasty issue with the {Bg,Fg}ColorButton when showing a
> stack without calling createUI() since it tries very, very, very hard to
> always update the button even if the main window was never shown. The
> stack trace looks like this:
>
> java.lang.IllegalArgumentException: There is no button associated with the
> specified tool
>         at
> imagej.ui.swing.SwingIconService$SwingIconDrawer.<init>(SwingIconService.java:86)
>         at
> imagej.ui.swing.SwingIconService.acquireDrawer(SwingIconService.java:68)
>         at
> imagej.core.tools.AbstractColorTool.acquireDrawer(AbstractColorTool.java:221)
>         at
> imagej.core.tools.AbstractColorTool.draw(AbstractColorTool.java:201)
>         at
> imagej.core.tools.AbstractColorTool.drawIcon(AbstractColorTool.java:170)
>         at
> imagej.core.tools.AbstractColorTool.onEvent(AbstractColorTool.java:195)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:616)
>         at
> imagej.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:226)
>         at
> imagej.event.DefaultEventService$ProxySubscriber.onEvent(DefaultEventService.java:201)
>         at
> org.bushe.swing.event.ThreadSafeEventService.publish(ThreadSafeEventService.java:971)
>         at imagej.event.DefaultEventBus.access$201(DefaultEventBus.java:61)
>         at imagej.event.DefaultEventBus$2.run(DefaultEventBus.java:226)
>         at
> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
>         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:670)
>         at java.awt.EventQueue.access$400(EventQueue.java:96)
>         at java.awt.EventQueue$2.run(EventQueue.java:631)
>         at java.awt.EventQueue$2.run(EventQueue.java:629)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
>         at java.awt.EventQueue.dispatchEvent(EventQueue.java:640)
>         at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
>         at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
>         at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
>         at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
>         at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
>         at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
>
> I wonder whether it makes sense to instantiate the ToolsService at all if
> the main window was not even shown?
>
> _______________________________________________
> ImageJ-devel mailing list
> ImageJ-devel at imagej.net
> http://imagej.net/mailman/listinfo/imagej-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://imagej.net/pipermail/imagej-devel/attachments/20121023/bd454a5f/attachment.html>


More information about the ImageJ-devel mailing list