[ImageJ-devel] MacOSX platform service issues
Johannes Schindelin
schindelin at wisc.edu
Sun Jul 21 21:41:21 CDT 2013
Hi Barry,
thanks for bringing the issue to my attention that my recent fix for Fiji
(which now relies on ij-legacy to do the legacy patching in the hope that
we can stabilize the code better that has been moved from fiji-compat to
reconcile the Fiji and ImageJ2 legacy patches) broke the MacOSX-specific
platform service startup.
The issue is that when dropping a file (in particular, an image file) onto
the Fiji (or for that matter, ImageJ) icon, contrary to widespread belief,
MacOSX does *not* pass the path of said file to the program to-be-started
via the command-line. Instead, it sends a platform-specific message that
applications are expected to consume in a special, MacOSX-specific
handler.
You could call that a Cupertino time tax.
Now, ImageJ 1.x solves this by adding an ApplicationListener. It has to --
despite fact that the ApplicationListener is deprecated in very recent
MacOSX versions -- to maintain backwards-compatibility with the last
MacOSX versions supporting PowerPC-based computers.
ImageJ2, in contrast, targets MacOSX 10.6 or newer, so it uses the new
method -- which astonishingly does not allow adding ApplicationListeners,
hence the problem you observed where the MacAdapter of ImageJ 1.x
registering itself prevents ImageJ2 from starting up.
The topic branch I started is designed to help the issue for 10.6 and
newer by having a custom solution for the legacy mode: it registers an
event listener and reacts upon the -- now platform-independent -- events.
The only thing I need to change on that branch is to ensure that the
MacOSX-specific part of the platform service starts up correctly and
handles the MacOSX-specific event handling, delegating to the
platform-independent event service of ImageJ2.
After that, I still have to ascertain that things work correctly with
MacOSX 10.5, the oldest MacOSX version I care to support with Fiji (10.4
is too old because Apple limited the Java versions available for that
MacOSX version to Java 1.4 -- which is really, really too limiting, not to
mention old and slow).
In essence: I ask you to have a little more patience while I work out a
fix.
Ciao,
Johannes
More information about the ImageJ-devel
mailing list