litesoft
@ 948
litesoft / trunk / GWT_Sandbox / FormEngine / src / com / temp / client / foundation / widget / input / fieldsupport / InputWidgetValidator.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
package com.temp.client.foundation.widget.input.fieldsupport; import org.litesoft.core.util.externalization.*; import com.google.gwt.event.dom.client.*; import com.google.gwt.event.shared.*; import com.temp.client.foundation.widget.input.support.*; import com.temp.client.foundation.widget.input.support.events.*; import com.temp.shared.*; import java.util.*; public class InputWidgetValidator<T> implements InputWidgetValueAdapter<T> { protected final NonDomHandlerManager<ChangeHandler> handlerManager; protected final InputWidgetValueAdapter<T> delegate; protected final List<ValueValidator<T>> validators = new ArrayList<ValueValidator<T>>(); protected E13nData errorData; public InputWidgetValidator( InputWidgetValueAdapter<T> delegate ) { handlerManager = new NonDomHandlerManager<ChangeHandler>( this ); this.delegate = delegate; delegate.addChangeHandler( new ChangeHandler() { @Override public void onChange( ChangeEvent event ) { validateWithErrorStateChangeNotification(); } } ); } public InputWidgetValidator( InputWidgetValueAdapter<T> delegate, ValueValidator<T> validator1, ValueValidator<T>... additionalValidators ) { this( delegate ); add( validator1 ); if ( additionalValidators != null ) { for ( ValueValidator<T> validator : additionalValidators ) { add( validator ); } } if ( !validators.isEmpty() ) { validate(); } } protected boolean add( ValueValidator<T> validator ) { if ( validator != null ) { validators.add( validator ); return true; } return false; } public void addValidator( ValueValidator<T> validator ) { if ( add( validator ) ) { validateWithErrorStateChangeNotification(); } } public void addValidators( ValueValidator<T>... additionalValidators ) { if ( additionalValidators != null ) { boolean anyAdded = false; for ( ValueValidator<T> validator : additionalValidators ) { anyAdded |= add( validator ); } if ( anyAdded ) { validateWithErrorStateChangeNotification(); } } } /** * @return null if currently valid, otherwise the data to generate the Error Text */ public E13nData validate() { T value = getValue(); errorData = null; for ( ValueValidator<T> validator : validators ) { errorData = validator.checkValue( value ); if ( errorData != null ) { break; } } return getErrorData(); } /** * @return null if currently valid, otherwise the data to generate the Error Text */ public E13nData getErrorData() { return errorData; } public HandlerRegistration addErrorStateChangeHandler( ChangeHandler handler ) { return handler == null ? null : registerErrorStateChangeHandler( handler ); } @Override public HandlerRegistration addChangeHandler( ChangeHandler handler ) { return delegate.addChangeHandler( handler ); } @Override public T getValue() { return delegate.getValue(); } @Override public void setValue( T value ) { delegate.setValue( value ); validateWithErrorStateChangeNotification(); } protected void validateWithErrorStateChangeNotification() { boolean hadError = (null != getErrorData()); boolean hasError = (null != validate()); if ( hadError != hasError ) { notifyErrorStateChangeHandlers(); } } protected void notifyErrorStateChangeHandlers() { handlerManager.fireEvent( new NonDomChangeEvent() ); } protected HandlerRegistration registerErrorStateChangeHandler( ChangeHandler handler ) { return handlerManager.addHandler( handler ); } } |
Commits for litesoft/trunk/GWT_Sandbox/FormEngine/src/com/temp/client/foundation/widget/input/fieldsupport/InputWidgetValidator.java
Revision | Author | Commited | Message |
---|---|---|---|
948 Diff | GeorgeS | Sat 07 Jun, 2014 23:42:39 +0000 | Jusefuls Formatter Updated to New Code Format |
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
724 Diff | GeorgeS | Mon 11 Jun, 2012 00:47:26 +0000 | |
629 Diff | GeorgeS | Tue 17 Apr, 2012 05:47:55 +0000 | |
626 | GeorgeS | Wed 11 Apr, 2012 19:39:41 +0000 |