Scope is an open source framework built around an extensible implementation of the Hierarchical Model-View-Controller (HMVC) design pattern. It provides an easy-to-use Java library that can be used as a basis for component-oriented application development following a layered architecture.
Benefits of Scope
An HMVC implementation in which Controllers respond to Control objects issued from Views as a result of user interaction, or from child Controllers in the chain of responsibility.
Infrastructure for binding models to views with full two-way synchronisation: change the view and the model is updated, and vice-versa.
Wrappers around common Swing components to implement full data binding with validation.
Infrastructure that allows Scope to act on arbitrary JavaBean model objects. This infrastructure is designed to be decoupled in such a way that an alternative can be plugged in, for example to act on JMX MBeans.
An implementation of "active" model objects that broadcast changes in their state to allow views to update automatically. A set of "active" collection models are also provided. Use of these base classes is optional but convenient in complex applications that use a rich GUI, eg Swing, in which fully automated synchronisation between model and view is desirable. However, even where this is not feasible, Scope's Swing implementation without "active" models enables simple semi-automatic data-binding -- see the samples.
Support for localisation of user messages.
Support for conversion of arbitrary datatypes to and from their String representation.
comprehensive unit test suite to ensure a known quality level.
Why Scope is Cool ?
The Scope framework provides many application functions :
Built in logging
The ability to bubble up controls to the main controller