Revision: 1753 http://svn.sourceforge.net/spring-rich-c/?rev=1753&view=rev Author: jhoskens Date: 2007-05-22 04:54:14 -0700 (Tue, 22 May 2007)
Log Message: ----------- Added some javadocs Registering listeners for Guards/MessageReceiver will also trigger a first time check. (ValidationResultsModel can already contain results that need to be processed) Modified Paths: -------------- trunk/spring-richclient/support/src/main/java/org/springframework/richclient/form/builder/support/ValidationInterceptor.java Modified: trunk/spring-richclient/support/src/main/java/org/springframework/richclient/form/builder/support/ValidationInterceptor.java =================================================================== --- trunk/spring-richclient/support/src/main/java/org/springframework/richclient/form/builder/support/ValidationInterceptor.java 2007-05-22 11:12:28 UTC (rev 1752) +++ trunk/spring-richclient/support/src/main/java/org/springframework/richclient/form/builder/support/ValidationInterceptor.java 2007-05-22 11:54:14 UTC (rev 1753) @@ -28,74 +28,109 @@ import org.springframework.richclient.dialog.Messagable; /** + * Adds basic functionality to deal with Validation. Guards and messageReceivers + * can be added to the [EMAIL PROTECTED] ValidationResultsModel} of the + * [EMAIL PROTECTED] ValidatingFormModel}. + * * @author oliverh */ public abstract class ValidationInterceptor extends AbstractFormComponentInterceptor { - private final ValidationResultsModel validationResults; + private final ValidationResultsModel validationResults; - public ValidationInterceptor(FormModel formModel) { - super(formModel); - validationResults = ((ValidatingFormModel)formModel).getValidationResults(); - } + /** + * @param formModel the [EMAIL PROTECTED] ValidatingFormModel} to operate on. + */ + public ValidationInterceptor(FormModel formModel) { + super(formModel); + validationResults = ((ValidatingFormModel) formModel).getValidationResults(); + } - protected ValidationListener registerMessageReceiver(String propertyName, Messagable messageReceiver) { - MessagableValidationListener messagableValidationListener = new MessagableValidationListener(propertyName, - messageReceiver); - validationResults.addValidationListener(propertyName, messagableValidationListener); - return messagableValidationListener; - } + /** + * Register a messageReceiver on a specific property. To keep things in + * sync, it also triggers a first time check. (validationResultsModel can + * already be populated) + * + * @param propertyName property to listen for. + * @param messageReceiver message capable component. + * @return [EMAIL PROTECTED] ValidationListener} created during the process. + */ + protected ValidationListener registerMessageReceiver(String propertyName, Messagable messageReceiver) { + MessagableValidationListener messagableValidationListener = new MessagableValidationListener(propertyName, + messageReceiver); + validationResults.addValidationListener(propertyName, messagableValidationListener); + messagableValidationListener.validationResultsChanged(validationResults); + return messagableValidationListener; + } - protected ValidationListener registerGuarded(String propertyName, Guarded guarded) { - GuardedValidationListener guardedValidationListener = new GuardedValidationListener(propertyName, guarded); - validationResults.addValidationListener(propertyName, guardedValidationListener); - return guardedValidationListener; - } + /** + * Register a guarded object on a specific property. To keep things in sync, + * it also triggers a first time check. (validationResultsModel can already + * be populated) + * + * @param propertyName property to listen for. + * @param guarded component that needs guarding. + * @return [EMAIL PROTECTED] ValidationListener} created during the process. + */ + protected ValidationListener registerGuarded(String propertyName, Guarded guarded) { + GuardedValidationListener guardedValidationListener = new GuardedValidationListener(propertyName, guarded); + validationResults.addValidationListener(propertyName, guardedValidationListener); + guardedValidationListener.validationResultsChanged(validationResults); + return guardedValidationListener; + } - private static class MessagableValidationListener implements ValidationListener { - private final String propertyName; + /** + * [EMAIL PROTECTED] ValidationListener} that will handle validation messages of the + * given property. + */ + private static class MessagableValidationListener implements ValidationListener { + private final String propertyName; - private final Messagable messageReceiver; + private final Messagable messageReceiver; - public MessagableValidationListener(String propertyName, Messagable messageReceiver) { - this.propertyName = propertyName; - this.messageReceiver = messageReceiver; - } + public MessagableValidationListener(String propertyName, Messagable messageReceiver) { + this.propertyName = propertyName; + this.messageReceiver = messageReceiver; + } - public void validationResultsChanged(ValidationResults results) { - if (results.getMessageCount(propertyName) > 0) { - ValidationMessage message = getNewestMessage(results); - messageReceiver.setMessage(new Message(message.getMessage(), message.getSeverity())); - } - else { - messageReceiver.setMessage(null); - } - } + public void validationResultsChanged(ValidationResults results) { + if (results.getMessageCount(propertyName) > 0) { + ValidationMessage message = getNewestMessage(results); + messageReceiver.setMessage(new Message(message.getMessage(), message.getSeverity())); + } + else { + messageReceiver.setMessage(null); + } + } - protected ValidationMessage getNewestMessage(ValidationResults results) { - ValidationMessage newestMessage = null; - for (Iterator i = results.getMessages(propertyName).iterator(); i.hasNext();) { - ValidationMessage message = (ValidationMessage)i.next(); - if (newestMessage == null || newestMessage.getTimeStamp() < message.getTimeStamp()) { - newestMessage = message; - } - } - return newestMessage; - } - } + protected ValidationMessage getNewestMessage(ValidationResults results) { + ValidationMessage newestMessage = null; + for (Iterator i = results.getMessages(propertyName).iterator(); i.hasNext();) { + ValidationMessage message = (ValidationMessage) i.next(); + if (newestMessage == null || newestMessage.getTimeStamp() < message.getTimeStamp()) { + newestMessage = message; + } + } + return newestMessage; + } + } - private static class GuardedValidationListener implements ValidationListener { - private final String propertyName; + /** + * [EMAIL PROTECTED] ValidationListener} that will handle the enabling of the guard + * according to the validation of the given property. + */ + private static class GuardedValidationListener implements ValidationListener { + private final String propertyName; - private final Guarded guarded; + private final Guarded guarded; - public GuardedValidationListener(String propertyName, Guarded guarded) { - this.propertyName = propertyName; - this.guarded = guarded; - } + public GuardedValidationListener(String propertyName, Guarded guarded) { + this.propertyName = propertyName; + this.guarded = guarded; + } - public void validationResultsChanged(ValidationResults results) { - guarded.setEnabled(results.getMessageCount(propertyName) == 0); - } - } + public void validationResultsChanged(ValidationResults results) { + guarded.setEnabled(results.getMessageCount(propertyName) == 0); + } + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ spring-rich-c-cvs mailing list spring-rich-c-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs