|
@@ -1,22 +1,15 @@ |
1 |
1 |
|
package com.temp.client.foundation.widget.input.fieldsupport; |
2 |
2 |
|
|
3 |
|
- |
import com.google.gwt.event.dom.client.ChangeEvent; |
4 |
|
- |
import com.google.gwt.event.dom.client.ChangeHandler; |
5 |
|
- |
import com.google.gwt.user.client.ui.HasEnabled; |
6 |
|
- |
import com.google.gwt.user.client.ui.HasName; |
7 |
|
- |
import com.google.gwt.user.client.ui.Widget; |
8 |
|
- |
import com.temp.client.foundation.widget.NameToID; |
9 |
|
- |
import com.temp.client.foundation.widget.input.InputField; |
10 |
|
- |
import com.temp.shared.ValueValidator; |
11 |
|
- |
import org.litesoft.core.util.externalization.E13nData; |
12 |
|
- |
import org.litesoft.core.util.externalization.E13nResolver; |
13 |
|
- |
import org.litesoft.core.util.externalization.OptionallyPrefixingE13nResolver; |
14 |
|
- |
import com.temp.shared.utils.ObjectUtils; |
15 |
|
- |
import com.temp.shared.utils.StringUtils; |
16 |
|
- |
import com.temp.shared.utils.Validate; |
|
3 |
+ |
import org.litesoft.core.util.externalization.*; |
17 |
4 |
|
|
18 |
|
- |
import java.util.ArrayList; |
19 |
|
- |
import java.util.List; |
|
5 |
+ |
import com.google.gwt.event.dom.client.*; |
|
6 |
+ |
import com.google.gwt.user.client.ui.*; |
|
7 |
+ |
import com.temp.client.foundation.widget.*; |
|
8 |
+ |
import com.temp.client.foundation.widget.input.*; |
|
9 |
+ |
import com.temp.shared.*; |
|
10 |
+ |
import com.temp.shared.utils.*; |
|
11 |
+ |
|
|
12 |
+ |
import java.util.*; |
20 |
13 |
|
|
21 |
14 |
|
/** |
22 |
15 |
|
* Common abstract helper for both the generated Widget and the Proxied versions of the InputField. |
|
@@ -42,51 +35,52 @@ |
42 |
35 |
|
} |
43 |
36 |
|
|
44 |
37 |
|
@Override |
45 |
|
- |
public final void setName(String name) { |
46 |
|
- |
assertBuildMode("setName"); |
47 |
|
- |
setValidatedName(Validate.noEmptyIdentifier("Name", name)); |
|
38 |
+ |
public final void setName( String name ) { |
|
39 |
+ |
assertBuildMode( "setName" ); |
|
40 |
+ |
setValidatedName( Validate.noEmptyIdentifier( "Name", name ) ); |
48 |
41 |
|
} |
49 |
42 |
|
|
50 |
|
- |
public final C name(String name) { |
51 |
|
- |
assertBuildMode("name"); |
52 |
|
- |
setValidatedName(Validate.noEmptyIdentifier("Name", name)); |
|
43 |
+ |
public final C name( String name ) { |
|
44 |
+ |
assertBuildMode( "name" ); |
|
45 |
+ |
setValidatedName( Validate.noEmptyIdentifier( "Name", name ) ); |
53 |
46 |
|
return inheritanceLeaf(); |
54 |
47 |
|
} |
55 |
48 |
|
|
56 |
|
- |
protected void setValidatedName(String name) { |
|
49 |
+ |
protected void setValidatedName( String name ) { |
57 |
50 |
|
this.name = name; |
58 |
51 |
|
} |
59 |
52 |
|
|
60 |
53 |
|
/** |
61 |
54 |
|
* The 'Builder' to 'Run' state transition method fully constructs/populates the InputField's Widget / container. |
62 |
55 |
|
* |
63 |
|
- |
* @return this for method chaining |
64 |
56 |
|
* @param parentResolver |
|
57 |
+ |
* |
|
58 |
+ |
* @return this for method chaining |
65 |
59 |
|
*/ |
66 |
60 |
|
@Override |
67 |
|
- |
public final void init(E13nResolver parentResolver) { |
68 |
|
- |
Validate.notNull("resolver", parentResolver); |
69 |
|
- |
if (name == null) { |
70 |
|
- |
throw new IllegalStateException("Unable to init, Name not set"); |
|
61 |
+ |
public final void init( E13nResolver parentResolver ) { |
|
62 |
+ |
Validate.notNull( "resolver", parentResolver ); |
|
63 |
+ |
if ( name == null ) { |
|
64 |
+ |
throw new IllegalStateException( "Unable to init, Name not set" ); |
71 |
65 |
|
} |
72 |
|
- |
assertBuildMode("init"); |
|
66 |
+ |
assertBuildMode( "init" ); |
73 |
67 |
|
|
74 |
|
- |
E13nResolver resolver = new OptionallyPrefixingE13nResolver(name, parentResolver); // add our name to keys! |
|
68 |
+ |
E13nResolver resolver = new OptionallyPrefixingE13nResolver( name, parentResolver ); // add our name to keys! |
75 |
69 |
|
|
76 |
|
- |
completeInputFieldAccessor = buildActualWidget(resolver); |
77 |
|
- |
completeInputFieldAccessor.init(enabled, // propagate current enabled state |
78 |
|
- |
new FocusChangedListener() { |
79 |
|
- |
@Override |
80 |
|
- |
public void focusChanged() { |
81 |
|
- |
processFocusChanged(); |
82 |
|
- |
} |
83 |
|
- |
}); |
84 |
|
- |
completeInputFieldAccessor.getInput().addChangeHandler(new ChangeHandler() { |
|
70 |
+ |
completeInputFieldAccessor = buildActualWidget( resolver ); |
|
71 |
+ |
completeInputFieldAccessor.init( enabled, // propagate current enabled state |
|
72 |
+ |
new FocusChangedListener() { |
|
73 |
+ |
@Override |
|
74 |
+ |
public void focusChanged() { |
|
75 |
+ |
processFocusChanged(); |
|
76 |
+ |
} |
|
77 |
+ |
} ); |
|
78 |
+ |
completeInputFieldAccessor.getInput().addChangeHandler( new ChangeHandler() { |
85 |
79 |
|
@Override |
86 |
|
- |
public void onChange(ChangeEvent event) { |
|
80 |
+ |
public void onChange( ChangeEvent event ) { |
87 |
81 |
|
processDataChanged(); |
88 |
82 |
|
} |
89 |
|
- |
}); |
|
83 |
+ |
} ); |
90 |
84 |
|
} |
91 |
85 |
|
|
92 |
86 |
|
@Override |
|
@@ -95,27 +89,27 @@ |
95 |
89 |
|
} |
96 |
90 |
|
|
97 |
91 |
|
public final ValueValidator<T>[] getValidators() { |
98 |
|
- |
return ObjectUtils.cast(validators.isEmpty() ? ValueValidator.EMPTY_ARRAY : validators.toArray(new ValueValidator[validators.size()])); |
|
92 |
+ |
return ObjectUtils.cast( validators.isEmpty() ? ValueValidator.EMPTY_ARRAY : validators.toArray( new ValueValidator[validators.size()] ) ); |
99 |
93 |
|
} |
100 |
94 |
|
|
101 |
|
- |
public final InputField<T> add(ValueValidator<T> validator) { |
102 |
|
- |
if (validator != null) { |
103 |
|
- |
validators.add(validator); |
104 |
|
- |
validatorAdded(validator); |
|
95 |
+ |
public final InputField<T> add( ValueValidator<T> validator ) { |
|
96 |
+ |
if ( validator != null ) { |
|
97 |
+ |
validators.add( validator ); |
|
98 |
+ |
validatorAdded( validator ); |
105 |
99 |
|
} |
106 |
100 |
|
return this; |
107 |
101 |
|
} |
108 |
102 |
|
|
109 |
|
- |
public final InputField<T> add(ValueValidator<T>... additionalValidators) { |
110 |
|
- |
if (additionalValidators != null) { |
111 |
|
- |
for (ValueValidator<T> validator : additionalValidators) { |
112 |
|
- |
add(validator); // null OK will be filter later |
|
103 |
+ |
public final InputField<T> add( ValueValidator<T>... additionalValidators ) { |
|
104 |
+ |
if ( additionalValidators != null ) { |
|
105 |
+ |
for ( ValueValidator<T> validator : additionalValidators ) { |
|
106 |
+ |
add( validator ); // null OK will be filter later |
113 |
107 |
|
} |
114 |
108 |
|
} |
115 |
109 |
|
return this; |
116 |
110 |
|
} |
117 |
111 |
|
|
118 |
|
- |
abstract protected void validatorAdded(ValueValidator<T> validator); |
|
112 |
+ |
abstract protected void validatorAdded( ValueValidator<T> validator ); |
119 |
113 |
|
|
120 |
114 |
|
protected final HasEnabled getEnableable() { |
121 |
115 |
|
return completeInputFieldAccessor; |
|
@@ -131,7 +125,7 @@ |
131 |
125 |
|
} |
132 |
126 |
|
|
133 |
127 |
|
@Override |
134 |
|
- |
public final T setCurrentValue(T value) { |
|
128 |
+ |
public final T setCurrentValue( T value ) { |
135 |
129 |
|
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode( "setCurrentValue" ); |
136 |
130 |
|
updateCurrentValue( fieldAccessor, value ); |
137 |
131 |
|
return fieldAccessor.getInput().getValue(); |
|
@@ -139,12 +133,12 @@ |
139 |
133 |
|
|
140 |
134 |
|
@Override |
141 |
135 |
|
public final T getCurrentValue() { |
142 |
|
- |
return checkRunMode("getCurrentValue").getInput().getValue(); |
|
136 |
+ |
return checkRunMode( "getCurrentValue" ).getInput().getValue(); |
143 |
137 |
|
} |
144 |
138 |
|
|
145 |
139 |
|
@Override |
146 |
140 |
|
public final T getBaseValue() { |
147 |
|
- |
return checkRunMode("getBaseValue").getInput().getBaseValue(); |
|
141 |
+ |
return checkRunMode( "getBaseValue" ).getInput().getBaseValue(); |
148 |
142 |
|
} |
149 |
143 |
|
|
150 |
144 |
|
@Override |
|
@@ -153,110 +147,109 @@ |
153 |
147 |
|
updateCurrentValue( fieldAccessor, fieldAccessor.getInput().getBaseValue() ); |
154 |
148 |
|
} |
155 |
149 |
|
|
156 |
|
- |
protected final void updateCurrentValue(CompleteInputFieldAccessor<T> fieldAccessor, T value) { |
|
150 |
+ |
protected final void updateCurrentValue( CompleteInputFieldAccessor<T> fieldAccessor, T value ) { |
157 |
151 |
|
fieldAccessor.getInput().setValue( value ); |
158 |
|
- |
clearError(fieldAccessor); |
|
152 |
+ |
clearError( fieldAccessor ); |
159 |
153 |
|
} |
160 |
154 |
|
|
161 |
|
- |
protected final void clearError( CompleteInputFieldAccessor<T> fieldAccessor ) |
162 |
|
- |
{ |
|
155 |
+ |
protected final void clearError( CompleteInputFieldAccessor<T> fieldAccessor ) { |
163 |
156 |
|
updateErrorLabel( fieldAccessor.getErrorLabel(), null ); |
164 |
157 |
|
} |
165 |
158 |
|
|
166 |
159 |
|
@Override |
167 |
160 |
|
public final boolean isChanged() { |
168 |
|
- |
return checkRunMode("isChanged").getInput().isChanged(); |
|
161 |
+ |
return checkRunMode( "isChanged" ).getInput().isChanged(); |
169 |
162 |
|
} |
170 |
163 |
|
|
171 |
164 |
|
@Override |
172 |
165 |
|
public final Boolean isFocused() { |
173 |
|
- |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode("isFocused"); |
|
166 |
+ |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode( "isFocused" ); |
174 |
167 |
|
Boolean focused = fieldAccessor.isFocused(); |
175 |
|
- |
return Boolean.TRUE.equals(focused) ? isVisible() : focused; |
|
168 |
+ |
return Boolean.TRUE.equals( focused ) ? isVisible() : focused; |
176 |
169 |
|
} |
177 |
170 |
|
|
178 |
171 |
|
@Override |
179 |
172 |
|
public final boolean isErrored() { |
180 |
|
- |
return (null != checkRunMode("isErrored").getValidator().getErrorData()); |
|
173 |
+ |
return (null != checkRunMode( "isErrored" ).getValidator().getErrorData()); |
181 |
174 |
|
} |
182 |
175 |
|
|
183 |
176 |
|
@Override |
184 |
177 |
|
public final E13nData getErrorData() { |
185 |
|
- |
return checkRunMode("getErrorData").getValidator().getErrorData(); |
|
178 |
+ |
return checkRunMode( "getErrorData" ).getValidator().getErrorData(); |
186 |
179 |
|
} |
187 |
180 |
|
|
188 |
181 |
|
@Override |
189 |
182 |
|
public final boolean validate() { |
190 |
|
- |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode("validate"); |
|
183 |
+ |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode( "validate" ); |
191 |
184 |
|
E13nData error = fieldAccessor.getValidator().validate(); |
192 |
|
- |
updateStyle(fieldAccessor); |
193 |
|
- |
updateErrorLabel(fieldAccessor.getErrorLabel(), error); |
|
185 |
+ |
updateStyle( fieldAccessor ); |
|
186 |
+ |
updateErrorLabel( fieldAccessor.getErrorLabel(), error ); |
194 |
187 |
|
return (error == null); |
195 |
188 |
|
} |
196 |
189 |
|
|
197 |
190 |
|
@Override |
198 |
191 |
|
public final boolean setFocused() { |
199 |
|
- |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode("setFocused"); |
|
192 |
+ |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode( "setFocused" ); |
200 |
193 |
|
return isVisible() && fieldAccessor.setFocused(); |
201 |
194 |
|
} |
202 |
195 |
|
|
203 |
196 |
|
@Override |
204 |
197 |
|
public final E13nResolver getE13nResolver() { |
205 |
|
- |
return checkRunMode("E13nResolver").getE13nResolver(); |
|
198 |
+ |
return checkRunMode( "E13nResolver" ).getE13nResolver(); |
206 |
199 |
|
} |
207 |
200 |
|
|
208 |
201 |
|
public final Widget getInputWidget() { |
209 |
|
- |
return checkRunMode("InputWidget").getInputWidget(); |
|
202 |
+ |
return checkRunMode( "InputWidget" ).getInputWidget(); |
210 |
203 |
|
} |
211 |
204 |
|
|
212 |
205 |
|
public final InputWidgetChangeFilter<T> getInput() { |
213 |
|
- |
return checkRunMode("Input").getInput(); |
|
206 |
+ |
return checkRunMode( "Input" ).getInput(); |
214 |
207 |
|
} |
215 |
208 |
|
|
216 |
209 |
|
public final InputWidgetValidator<T> getValidator() { |
217 |
|
- |
return checkRunMode("Validator").getValidator(); |
|
210 |
+ |
return checkRunMode( "Validator" ).getValidator(); |
218 |
211 |
|
} |
219 |
212 |
|
|
220 |
213 |
|
public final Widget getLabelLabel() { |
221 |
|
- |
return checkRunMode("LabelLabel").getLabelLabel(); |
|
214 |
+ |
return checkRunMode( "LabelLabel" ).getLabelLabel(); |
222 |
215 |
|
} |
223 |
216 |
|
|
224 |
217 |
|
public final Widget getExtendedLabel() { |
225 |
|
- |
return checkRunMode("ExtendedLabel").getExtendedLabel(); |
|
218 |
+ |
return checkRunMode( "ExtendedLabel" ).getExtendedLabel(); |
226 |
219 |
|
} |
227 |
220 |
|
|
228 |
221 |
|
public final Widget getExampleLabel() { |
229 |
|
- |
return checkRunMode("ExampleLabel").getExampleLabel(); |
|
222 |
+ |
return checkRunMode( "ExampleLabel" ).getExampleLabel(); |
230 |
223 |
|
} |
231 |
224 |
|
|
232 |
225 |
|
public final Widget getErrorLabel() { |
233 |
|
- |
return checkRunMode("ErrorLabel").getErrorLabel(); |
|
226 |
+ |
return checkRunMode( "ErrorLabel" ).getErrorLabel(); |
234 |
227 |
|
} |
235 |
228 |
|
|
236 |
229 |
|
public final Widget getHelpWidget() { |
237 |
|
- |
return checkRunMode("HelpWidget").getHelpWidget(); |
|
230 |
+ |
return checkRunMode( "HelpWidget" ).getHelpWidget(); |
238 |
231 |
|
} |
239 |
232 |
|
|
240 |
233 |
|
@Override |
241 |
|
- |
public NameToID addNamedWidgetsTo(NameToID nameToID) { |
242 |
|
- |
assertRunMode("addNamedWidgetsTo"); |
243 |
|
- |
return nameToID.add(namedWidgets); |
|
234 |
+ |
public NameToID addNamedWidgetsTo( NameToID nameToID ) { |
|
235 |
+ |
assertRunMode( "addNamedWidgetsTo" ); |
|
236 |
+ |
return nameToID.add( namedWidgets ); |
244 |
237 |
|
} |
245 |
238 |
|
|
246 |
239 |
|
// Support Methods... |
247 |
240 |
|
|
248 |
|
- |
protected final <W extends Widget & HasName> W addNamedWidgetWithStyle(W widget, String style) { |
249 |
|
- |
widget.addStyleName(style); |
250 |
|
- |
return addNamedWidgetWithNameExtension(widget, style); |
|
241 |
+ |
protected final <W extends Widget & HasName> W addNamedWidgetWithStyle( W widget, String style ) { |
|
242 |
+ |
widget.addStyleName( style ); |
|
243 |
+ |
return addNamedWidgetWithNameExtension( widget, style ); |
251 |
244 |
|
} |
252 |
245 |
|
|
253 |
|
- |
protected final <W extends HasName> W addNamedWidgetWithNameExtension(W widget, String nameExtension) { |
254 |
|
- |
widget.setName(getName() + "_" + nameExtension); |
255 |
|
- |
return addNamedWidget(widget); |
|
246 |
+ |
protected final <W extends HasName> W addNamedWidgetWithNameExtension( W widget, String nameExtension ) { |
|
247 |
+ |
widget.setName( getName() + "_" + nameExtension ); |
|
248 |
+ |
return addNamedWidget( widget ); |
256 |
249 |
|
} |
257 |
250 |
|
|
258 |
|
- |
protected final <W extends HasName> W addNamedWidget(W widget) { |
259 |
|
- |
namedWidgets.add(widget); |
|
251 |
+ |
protected final <W extends HasName> W addNamedWidget( W widget ) { |
|
252 |
+ |
namedWidgets.add( widget ); |
260 |
253 |
|
return widget; |
261 |
254 |
|
} |
262 |
255 |
|
|
|
@@ -268,28 +261,28 @@ |
268 |
261 |
|
} |
269 |
262 |
|
|
270 |
263 |
|
protected void processFocusChanged() { |
271 |
|
- |
updateStyle(checkRunMode("processFocusChanged")); |
|
264 |
+ |
updateStyle( checkRunMode( "processFocusChanged" ) ); |
272 |
265 |
|
notifyFocusChangeListeners(); |
273 |
266 |
|
} |
274 |
267 |
|
|
275 |
|
- |
protected void updateStyle(CompleteInputFieldAccessor<T> fieldAccessor) { |
276 |
|
- |
updateStyle(StateInputField.BASE // |
277 |
|
- |
.errored(fieldAccessor.getValidator().getErrorData() != null) // |
278 |
|
- |
.focused(Boolean.TRUE.equals(fieldAccessor.isFocused())) // |
279 |
|
- |
.changed(fieldAccessor.getInput().isChanged())); |
|
268 |
+ |
protected void updateStyle( CompleteInputFieldAccessor<T> fieldAccessor ) { |
|
269 |
+ |
updateStyle( StateInputField.BASE // |
|
270 |
+ |
.errored( fieldAccessor.getValidator().getErrorData() != null ) // |
|
271 |
+ |
.focused( Boolean.TRUE.equals( fieldAccessor.isFocused() ) ) // |
|
272 |
+ |
.changed( fieldAccessor.getInput().isChanged() ) ); |
280 |
273 |
|
} |
281 |
274 |
|
|
282 |
|
- |
protected String revolve(String method, E13nData error) { |
283 |
|
- |
if (error != null) { |
284 |
|
- |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode(method); |
285 |
|
- |
String resolved = fieldAccessor.getE13nResolver().resolve(error); |
286 |
|
- |
return StringUtils.noEmpty(StringUtils.convertNBSPsToSpaces(resolved)); |
|
275 |
+ |
protected String revolve( String method, E13nData error ) { |
|
276 |
+ |
if ( error != null ) { |
|
277 |
+ |
CompleteInputFieldAccessor<T> fieldAccessor = checkRunMode( method ); |
|
278 |
+ |
String resolved = fieldAccessor.getE13nResolver().resolve( error ); |
|
279 |
+ |
return StringUtils.noEmpty( StringUtils.convertNBSPsToSpaces( resolved ) ); |
287 |
280 |
|
} |
288 |
281 |
|
return null; |
289 |
282 |
|
} |
290 |
283 |
|
|
291 |
|
- |
protected final CompleteInputFieldAccessor<T> checkRunMode(String method) { |
292 |
|
- |
assertRunMode(method); |
|
284 |
+ |
protected final CompleteInputFieldAccessor<T> checkRunMode( String method ) { |
|
285 |
+ |
assertRunMode( method ); |
293 |
286 |
|
return completeInputFieldAccessor; |
294 |
287 |
|
} |
295 |
288 |
|
|
|
@@ -297,7 +290,7 @@ |
297 |
290 |
|
return completeInputFieldAccessor; |
298 |
291 |
|
} |
299 |
292 |
|
|
300 |
|
- |
abstract protected CompleteInputFieldAccessor<T> buildActualWidget(E13nResolver resolver); |
|
293 |
+ |
abstract protected CompleteInputFieldAccessor<T> buildActualWidget( E13nResolver resolver ); |
301 |
294 |
|
|
302 |
|
- |
abstract protected void updateErrorLabel(Widget errorLabel, E13nData error); |
|
295 |
+ |
abstract protected void updateErrorLabel( Widget errorLabel, E13nData error ); |
303 |
296 |
|
} |