Our main goal is to develop the new architecture described in the project aims (as ImageJ v2.x) while maintaining total or near-total backward compatibility with the current version of ImageJ (v1.x). Major development will occur in a new package tree (perhaps ijx.* or imagej.*), with core functionality migrating from the old ij.* package structure into the ijx one over time. Ultimately, the classic ImageJ user interface will be a "compatibility layer," consisting largely of delegation code and adapters that call into the ijx functionality. This UI will change as little as possible—continue to use AWT, etc., integrating only those additions that Wayne Rasband and the user community see fit to include.
Meanwhile, we will also develop a next-generation Swing interface exposing new capabilities [such as?]. While it will still be modeled after the original ImageJ interface, there will be more flexibility in the ability to configure it.
Tentative components:
- ImageJ.core – Core ImageJ image processing framework
- Explore (optional?) deployment/integration via Java Advanced Imaging framework
- ImageJ.ui – ImageJ UI toolkit interfaces
- UI-agnostic event notification system
- See if anyone has already done this in a general way
- Too ambitious?
- ImageJ.widgets – ImageJ UI widget toolkit implementation possibilities
- ImageJ.jfc – Swing
- ImageJ.awt – AWT
- ImageJ.swt – SWT
- ImageJ.qt – QT
- ImageJ.gtk – GTK
- ImageJ.android – Android mobile platform (because Android ships with a stripped down version of Java)
- ImageJ end-user applications
- ImageJ.classic – Classic "ij" interface using AWT
- ImageJ.neo – Next-gen "ijx" interface using Swing
- ImageJ.mobile – Example mobile interface using Android?
- ImageJ.scripts – Bindings to call into ImageJ functions at various tiers
- How Fiji is accomplishing this goal now?
- Could Ice be useful for this?
- Respond to concern that multi-language scripting support could actually be worse (confusing for users, lack of one standard language)
- ImageJ extensions that equip the program to function particularly well for specific disciplines
- VisBio – will become an ImageJ extension for multidimensional biological image visualization and analysis
