|
@@ -1,11 +1,9 @@ |
1 |
1 |
|
package com.temp.client.foundation.widget.input.fieldsupport; |
2 |
2 |
|
|
|
3 |
+ |
import com.google.gwt.user.client.ui.HasEnabled; |
3 |
4 |
|
import com.google.gwt.user.client.ui.Panel; |
4 |
|
- |
import com.google.gwt.user.client.ui.Widget; |
5 |
5 |
|
import com.temp.client.foundation.util.UtilsGwt; |
6 |
6 |
|
import com.temp.client.foundation.widget.input.InputField; |
7 |
|
- |
import com.temp.shared.externalization.E13nData; |
8 |
|
- |
import com.temp.shared.utils.Enableable; |
9 |
7 |
|
import com.temp.shared.utils.ObjectUtils; |
10 |
8 |
|
|
11 |
9 |
|
import java.util.HashSet; |
|
@@ -17,6 +15,7 @@ |
17 |
15 |
|
public abstract class AbstractInputField<T, C extends AbstractInputField<T, C>> implements InputField<T> { |
18 |
16 |
|
// Optionally set |
19 |
17 |
|
private Set<ChangeListener<T>> changeListeners = new HashSet<ChangeListener<T>>(); |
|
18 |
+ |
private Set<FocusChangedListener> focusChangeListeners = new HashSet<FocusChangedListener>(); |
20 |
19 |
|
|
21 |
20 |
|
protected boolean enabled = true; |
22 |
21 |
|
|
|
@@ -42,6 +41,25 @@ |
42 |
41 |
|
// Configuration Methods |
43 |
42 |
|
|
44 |
43 |
|
@Override |
|
44 |
+ |
public final InputField<T> add(FocusChangedListener focusChangedListener) { |
|
45 |
+ |
|
|
46 |
+ |
if (focusChangedListener != null) { |
|
47 |
+ |
focusChangeListeners.add(focusChangedListener); |
|
48 |
+ |
} |
|
49 |
+ |
return this; |
|
50 |
+ |
} |
|
51 |
+ |
|
|
52 |
+ |
@Override |
|
53 |
+ |
public final boolean remove(FocusChangedListener focusChangedListener) { |
|
54 |
+ |
return (focusChangedListener == null) ? false : focusChangeListeners.remove(focusChangedListener); |
|
55 |
+ |
} |
|
56 |
+ |
|
|
57 |
+ |
@Override |
|
58 |
+ |
public final void removeAllFocusChangeListeners() { |
|
59 |
+ |
focusChangeListeners.clear(); |
|
60 |
+ |
} |
|
61 |
+ |
|
|
62 |
+ |
@Override |
45 |
63 |
|
public final InputField<T> add(ChangeListener<T> changeListener) { |
46 |
64 |
|
if (changeListener != null) { |
47 |
65 |
|
changeListeners.add(changeListener); |
|
@@ -59,7 +77,7 @@ |
59 |
77 |
|
changeListeners.clear(); |
60 |
78 |
|
} |
61 |
79 |
|
|
62 |
|
- |
abstract protected Enableable getEnableable(); |
|
80 |
+ |
abstract protected HasEnabled getEnableable(); |
63 |
81 |
|
|
64 |
82 |
|
// Anytime Methods |
65 |
83 |
|
|
|
@@ -67,14 +85,14 @@ |
67 |
85 |
|
|
68 |
86 |
|
@Override |
69 |
87 |
|
public final boolean isEnabled() { |
70 |
|
- |
Enableable enableable = getEnableable(); |
|
88 |
+ |
HasEnabled enableable = getEnableable(); |
71 |
89 |
|
return (enableable != null) ? enableable.isEnabled() : enabled; |
72 |
90 |
|
} |
73 |
91 |
|
|
74 |
92 |
|
@Override |
75 |
93 |
|
public final void setEnabled(boolean enable) { |
76 |
94 |
|
enabled = enable; |
77 |
|
- |
Enableable enableable = getEnableable(); |
|
95 |
+ |
HasEnabled enableable = getEnableable(); |
78 |
96 |
|
if (enableable != null) { |
79 |
97 |
|
enableable.setEnabled(enable); |
80 |
98 |
|
} |
|
@@ -143,6 +161,12 @@ |
143 |
161 |
|
} |
144 |
162 |
|
} |
145 |
163 |
|
|
|
164 |
+ |
protected final void notifyFocusChangeListeners() { |
|
165 |
+ |
for (FocusChangedListener zListener : focusChangeListeners) { |
|
166 |
+ |
zListener.focusChanged(); |
|
167 |
+ |
} |
|
168 |
+ |
} |
|
169 |
+ |
|
146 |
170 |
|
protected final void notifyChangeListeners() { |
147 |
171 |
|
for (ChangeListener<T> zListener : changeListeners) { |
148 |
172 |
|
zListener.changed(this); |
|
@@ -169,6 +193,4 @@ |
169 |
193 |
|
} |
170 |
194 |
|
|
171 |
195 |
|
abstract protected Panel getContainer(); |
172 |
|
- |
|
173 |
|
- |
abstract protected void updateErrorLabel(Widget errorLabel, E13nData error); |
174 |
196 |
|
} |