-
Notifications
You must be signed in to change notification settings - Fork 5
Features
Patrick Moawad edited this page Oct 22, 2013
·
11 revisions
The ValidationFramework can already be used and will continue to grow. The expected features are given in the list below.
Items marked with (v) are already implemented and are part of the framework. Items marked with (~) are partially implemented in the framework. Items marked with (-) are yet to be implemented but will be part of the framework in the future. But this does not mean that they cannot be built using this framework.
Input validation
- (v) Instant validation (for example, on each key stroke);
- (v) Delayed validation (for example, when focus is lost or when the ENTER key is pressed, or when Apply button is pressed);
- (v) Validation on individual components;
- (v) Validation on groups of components without inter-dependencies;
- (v) Validation on groups of components with inter-dependencies;
- (v) Validation of groups within groups;
- (v) Validation of heterogeneous fields and sub-groups;
- (v) Validation on another thread than the one triggering it;
- (v) Syntax validation and semantic validation;
- (v) Support for tables: per-cell validation;
- (v) Support for tables: per-column validation.
Feedback
- (v) Instant feedback;
- (v) Delayed feedback;
- (v) Feedback on another thread than the one of the validation;
- (-) Value proposal in case of error (either automatic proposal for related components within a group), that is to say automatic correction of related components;
- (v) Conditional logic for components (for example, enabling/disabling of an Apply button in case of valid/invalid input);
- (v) Simple set of decorations for user assistance (icons, convenient tooltips, hints, etc.), staying close to the current look-and-feel.
- (~) Extended set of decorations for user assistance.
Easy and extendable
- (v) Very simple to use;
- (v) Most generic concepts as possible (validation trigger -> data reader -> validation algorithm -> validation rules -> validation results -> feedback to user -> component decorations);
- (v) Easily pluggable to custom/special components;
- (v) Bundled support for Swing components;
- (~) Bundled support for JavaFX 2;
- (-) Bundled support for other libraries;
- (v) Allow validation not only for GUI components through pluggable architecture (however, GUI validation is the focus of the framework);
- (v) Flexibility of use (one validator for the whole application, or one validator per input component, or whatever);
- (v) Ease of use (for the programmer), possibly through a simple DSL;
- (~) Extended DSL for even more convenient use;
- (v) Allow to plug custom rules (of course);
- (v) Allow to plug custom feedbacks;
- (v) Allow to plug custom decorations;
- (v) Allow to plug custom validation/feedback algorithms;
- (v) Consistent implementation of input validation throughout a whole application;
- (-) Set the validation to a certain state (for example, forcing invalidation and/or its feedback);
- (~) Anything useful you can imagine.
Misc
- (-) Support for runtime look-and-feel switches for bundled feedback implementations;
- (-) Easily pluggable to some other validation frameworks like Commons Validator framework from Jakarta, etc.