Ticket #10 (new task) — at Version 2

Opened 10 years ago

Last modified 8 years ago

Explore MVC frameworks for separation of concerns

Reported by: curtis Owned by: gharris
Priority: blocker Milestone: imagej-2.0.0
Component: Core Version:
Severity: serious Keywords:
Cc: Blocked By:

Description (last modified by curtis) (diff)

Currently, ImageJ has several design issues that impact any possibility of running it without a GUI in a headless environment:

  • Commands are tied to specific AWT menu items
  • The macro system is tied to the AWT-driven GenericDialog
  • The code was generally designed assuming AWT GUI elements are available

We want to separate ImageJ into a (headless) library layer that performs image processing without a GUI, and one or more graphical layers that provide user interaction and call into the library to perform tasks.

As part of this task, we are exploring strategies to organize this separation, such as a  Model-View-Controller (MVC) architecture. There are various MVC frameworks available such as  Struts and  Spring, though they are generally targeted toward web applications rather than desktop ones. We plan to examine these, though it is equally likely we will avoid dependencies on third-party libraries in favor of a simpler design.

For relevant discussion, see the " Separation of concerns (MVC, AWT/Swing/etc.)" thread on the ImageJX discussion group.

Change History

comment:1 Changed 10 years ago by curtis

According to its author,  Endrov has a strict separation of concerns. And  Bio7 is built using the  Eclipse Rich Client Platform.

comment:2 Changed 10 years ago by curtis

  • Description modified (diff)
Note: See TracTickets for help on using tickets.