Subversion Repository Public Repository

litesoft

Diff Revisions 199 vs 200 for /trunk/Java/GWT/Client/src/org/litesoft/GWT/forms/client/QBE_FormEngine.java

Diff revisions: vs.
  @@ -12,6 +12,7 @@
12 12
13 13 public class QBE_FormEngine extends FormEngine
14 14 {
15 + protected UpdateFilterTransformer mFilterTransformer = NormalUpdateFilterTransformer.INSTANCE;
15 16 protected BoAccessorFilter mFilter;
16 17 protected SearchStateDefaultRequestable mSSDR;
17 18 protected SizeableQBEboxedPanel mQBEboxedPanel;
  @@ -109,14 +110,17 @@
109 110
110 111 protected void updateFilter( String pName, String pValStr )
111 112 {
112 - if ( isUnique( pName ) )
113 - {
114 - mFilter.uniqueFilterValueChanged( pName, pValStr );
115 - }
116 - else
117 - {
118 - mFilter.nonUniqueFilterValueChanged( pName, pValStr );
119 - }
113 + mFilterTransformer.updateFilter( mFilter, isUnique( pName ), pName, pValStr );
114 + }
115 +
116 + public UpdateFilterTransformer getFilterTransformer()
117 + {
118 + return mFilterTransformer;
119 + }
120 +
121 + public void setFilterTransformer( UpdateFilterTransformer pFilterTransformer )
122 + {
123 + mFilterTransformer = (pFilterTransformer != null) ? pFilterTransformer : NormalUpdateFilterTransformer.INSTANCE;
120 124 }
121 125
122 126 private boolean isSearchFilter( IFormComponent pComponent )
  @@ -177,4 +181,22 @@
177 181 {
178 182 mSSDR.setSearching( Mode.Search.equals( mMode ) );
179 183 }
184 +
185 + private static class NormalUpdateFilterTransformer implements UpdateFilterTransformer
186 + {
187 + public static UpdateFilterTransformer INSTANCE = new NormalUpdateFilterTransformer();
188 +
189 + @Override
190 + public void updateFilter( BoAccessorFilter pFilter, boolean pUniqueAttribute, String pAttributeName, String pValue )
191 + {
192 + if ( pUniqueAttribute )
193 + {
194 + pFilter.uniqueFilterValueChanged( pAttributeName, pValue );
195 + }
196 + else
197 + {
198 + pFilter.nonUniqueFilterValueChanged( pAttributeName, pValue );
199 + }
200 + }
201 + }
180 202 }