Login  Register

Re: Rich Client Interface for ImageJ

Posted by ctrueden on Jul 13, 2011; 6:08pm
URL: http://imagej.273.s1.nabble.com/Rich-Client-Interface-for-ImageJ-tp3683907p3683909.html

Hi Marco,

I'm looking into the feasibility to implement an ImageJ rich client
> interface in Eclipse IDE or RCP.  I checked the ImageJDev a.k.a. ImageJ
> 2.0 design http://imagejdev.org/design, there is only a planned one based
> on the NetBeans RCP without a trace on the roadmap.  Threre is an existing
> Eclipse RCP, Bio7 http://bio7.org/, incorporated ImageJ but only the
> toolbar, pulldown menus and the main image window are integrated.
>

The plan for the first release of ImageJ 2.0 is a Swing-based application
that generally replicates the functionality and look/feel of ImageJ1, but
build on top of an entirely new infrastructure. Important aspects of the new
design include:

1) GUI toolkit independence, which affords the development of applications
using your toolkit of choice (AWT, Swing, SWT, Pivot, etc.). We will be
implementing the primary ImageJ user interface in Swing, as well as many
application components for Swing, pure AWT, SWT and Pivot. We will also have
application components intended for headless use. And as time allows, we are
developing barebones/prototype GUIs in AWT, SWT and Pivot as well.

2) To the extent possible, core functionality is provided by plugins. The
IJ2 plugin framework is designed such that inputs and outputs are declared
independent of UI, and processing can be done with no dependence on any
particular widget toolkit.

3) To facilitate usage of IJ2 in environments where AWT is not available
(GWT, Android, etc.), we are striving to keep all usage of AWT out of the
core IJ2 packages. We are using the EventBus (http://eventbus.org/)
publish/subscribe mechanism with our own hierarchy of event classes
including mouse and keyboard events, to eliminate dependence on the
java.awt.event implementation.

Version 2.0 of ImageJ will not be built on a rich client platform, though a
later version might be. We did explore usage of the NetBeans RCP,
specifically building a client codenamed Envisaje, based on Imagine (
http://java.net/projects/imagine/). Pursuing that development further is
mostly an issue of prioritization; our primary goal for the 2.0 release is
compatibility, rather than converting ImageJ into an RCP-based application.

That said, a major goal is for the IJ2 core classes to be embeddable into
any conceivable application, including RCPs. The publish/subscribe event
paradigm enables a highly decoupled design, so it should mostly be a matter
of subscribing to the appropriate events, and reusing the appropriate UI
components, within your application framework. In short, we want IJ2's core
functionality to be easily usable in an RCP context, but not dependent on
it.

At the last ImageJ conference I spoke with Marcel Austenfeld, author of
Bio7, and he has offered to share code and insights into building an Eclipse
RCP version of ImageJ. In the future, we hope it will be easier to maintain
Bio7 against ImageJ2 than it has been with ImageJ1, since it should no
longer be necessary to fork any of the ImageJ class implementations. But it
will be a substantial endeavor to update Bio7 to ImageJ2, so I concur with
Johannes that depending on your level of patience, you may need to "Do It
Yourself" for quickest results.

I suggest waiting until at least the beta period (later this summer) before
getting too invested in IJ2 programming, since the APIs are still evolving.
At that point, we would love to have your feedback on the design, and would
be happy to answer questions and offer guidance on integrating IJ2 with an
RCP application.

Regards,
Curtis Rueden
ImageJDev project lead
http://imagejdev.org/

On Tue, Jul 12, 2011 at 2:45 AM, Marco LO <[hidden email]> wrote:

> Dear Listers,
>
> I'm looking into the feasibility to implement an ImageJ rich client
> interface in Eclipse IDE or RCP.  I checked the ImageJDev a.k.a. ImageJ
> 2.0 design http://imagejdev.org/design, there is only a planned one based
> on the NetBeans RCP without a trace on the roadmap.  Threre is an existing
> Eclipse RCP, Bio7 http://bio7.org/, incorporated ImageJ but only the
> toolbar, pulldown menus and the main image window are integrated.
>
> As far as I see, there are two options to do the Eclipse interface, either
> complete the Bio7 implementation or wait for the NetBeans RCP and port it
> to the Eclipse one.
>
> The rich client interface could be very helpful especially if ImageJ is
> used together with other software like that in Bio7, ecology, or any other
> displicine.  It would boost efficiency dramatically.  I wonder how we could
> influence the ImageJDev team to finalize the NetBeans RCP plan or even add
> Eclipse in the paln given that ImagJ has so much diversified and so wide
> user bases.
>
> What would be your comments?
>