Spring-RCP's mission is to provide an elegant way to build highly-configurable, GUI-standards-following rich-client applications faster by leveraging the Spring Framework, and a rich library of UI factories and support classes.
The Spring Rich Client Project (RCP) is a sub-project of The Spring Framework. Spring-RCP's mission is to provide an elegant way to build highly-configurable, GUI-standards-following rich-client applications faster by leveraging the Spring Framework, and a rich library of UI factories and support classes. Initial focus is on providing support for Swing applications but a goal of Spring-RCP is to be view agnostic as much as possible.
The goal of the Spring Rich Client Project (Spring Rich) is to provide a viable option for developers that need a platform and a best-practices guide for constructing Swing applications quickly.
Specifically, spring-richclient seeks to:
Provide a way to build structured, highly-configurable, GUI-standards-following Swing applications faster by leveraging the Spring Framework.
Foster integration with existing rich-client-related projects where it make sense. For example, jgoodies-forms and TableLayout are two good layout managers. We don't need to develop another one.
Adhere to the principles set forth by the Spring Framework--programming to interfaces; the importance of sound OO design, documentation, and testing.
Some features of the platform under development include:
A command framework that provides centralized configuration of Swing actions and appropriate handler registration based on the current active view. Command configuration, as well as action bar contribution policies (to menus or toolbars), can be defined centrally and externalized in Spring bean defintions.
A forms data binding and validation framework, for connecting edits made in your UI controls with your domain model automatically--with as you type feedback.
Support for multiple window management, page configuration, and view management. The concepts here are inspired by Eclipse's perspective/view constructs. Views can be defined in the Spring container, associated with one or more pages, and a default page can be configured to be loaded at startup.
Common support classes addressing various rich client requirements including: well formed dialogs, wizards, input validation (typing hints and validation results reporting), button bars, internationalization, image/icon caching, progress monitoring, UI threading (classes cleanly promoting responsive UIs), treetable/property sheet, table sorting/high-volume table updates, GUI standards builders/helpers, help/about, etc.
Spring-rich adds value for people needing to develop Swing applications and do so in a way that promotes consistent, well-designed, configurable Swing applications. The spring-rich developers strongly feel the old days of Swing apps not looking native and not being performant or web-accessible are gone with JDK1.4.2 and 1.5 and webstart. It is our belief the only problem with Swing is that there are a limited number of higher-level abstractions available that assist in making the toolkit simpler and easier to use, and a limited number of design best practices. The goal of spring-richclient is to provide that.