Skip to content, Skip to search


SciJava Common

36 bytes removed, 13:53, 24 September 2015
Use wikipedia wiki links
| Whereas [[ImageJ1]] is a [https[wikipedia:// Singleton pattern|singleton]], with static methods to access much of its functionality, [[ImageJ2]] encapsulates its program state in the application context, allowing multiple simultaneous such contexts in the same JVM.
ImageJ encapsulates its various parts as separate "services" that provide related state functionality and track related program state. An instance of the {{Javadoc | package = net/imagej | class = ImageJ}} class is nothing more than a collection of these services; this instance is referred to as the "application gateway." Services are defined as interfaces, with concrete implementations as plugins. This design provides [ seams] in the right places so that behavior at every level can be customized and overridden.
* '''{{Javadoc | package = org/scijava/app | class = AppService}}''' - Tracks software applications (SCIFIO, ImageJ, etc.) present in the context.
* '''{{Javadoc | package = org/scijava/display | class = DisplayService}}''' - Tracks available displays, as well as the active display, and provides the means to create new displays to visualize data.
* '''{{Javadoc | package = org/scijava/event | class = EventService}}''' - Publishes events to the [https[wikipedia:// 93subscribe pattern|event bus]], and allows interested parties to subscribe to them. The service provides the central means of communication between various parts of the codebase.
* '''{{Javadoc | package = org/scijava/io | class = IOService}}''' - General tools for opening and saving data within the context.
* '''{{Javadoc | package = org/scijava/menu | class = MenuService}}''' - Builds the application menu structure.
Bureaucrat, emailconfirmed, incoming, administrator, uploaders