diff options
author | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-03-24 10:05:38 +0000 |
---|---|---|
committer | Matti Tahvonen <matti.tahvonen@itmill.com> | 2010-03-24 10:05:38 +0000 |
commit | 4e1d1321ec50c130aafca8d1251a71f12f5e28d1 (patch) | |
tree | 1e90d6c509563ecdd84a9946d45dd81649075e31 /src/com/vaadin/ui/Button.java | |
parent | 1b55615e5157517eed59265776bad0dcbbdc53d3 (diff) | |
download | vaadin-framework-4e1d1321ec50c130aafca8d1251a71f12f5e28d1.tar.gz vaadin-framework-4e1d1321ec50c130aafca8d1251a71f12f5e28d1.zip |
fixes #3913
svn changeset:12055/svn branch:6.3
Diffstat (limited to 'src/com/vaadin/ui/Button.java')
-rw-r--r-- | src/com/vaadin/ui/Button.java | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/src/com/vaadin/ui/Button.java b/src/com/vaadin/ui/Button.java index 004bf43a8f..038186ce16 100644 --- a/src/com/vaadin/ui/Button.java +++ b/src/com/vaadin/ui/Button.java @@ -11,6 +11,11 @@ import java.util.Map; import com.vaadin.data.Property; import com.vaadin.event.ShortcutListener; +import com.vaadin.event.FieldEvents; +import com.vaadin.event.FieldEvents.BlurEvent; +import com.vaadin.event.FieldEvents.BlurListener; +import com.vaadin.event.FieldEvents.FocusEvent; +import com.vaadin.event.FieldEvents.FocusListener; import com.vaadin.terminal.PaintException; import com.vaadin.terminal.PaintTarget; import com.vaadin.terminal.gwt.client.ui.VButton; @@ -26,7 +31,8 @@ import com.vaadin.ui.themes.BaseTheme; */ @SuppressWarnings("serial") @ClientWidget(VButton.class) -public class Button extends AbstractField { +public class Button extends AbstractField implements FieldEvents.BlurNotifier, + FieldEvents.FocusNotifier { /* Private members */ @@ -143,7 +149,7 @@ public class Button extends AbstractField { * @param variables */ @Override - public void changeVariables(Object source, Map variables) { + public void changeVariables(Object source, Map<String, Object> variables) { super.changeVariables(source, variables); if (!isReadOnly() && variables.containsKey("state")) { @@ -173,6 +179,13 @@ public class Button extends AbstractField { } } } + + if (variables.containsKey(FocusEvent.EVENT_ID)) { + fireEvent(new FocusEvent(this)); + } + if (variables.containsKey(BlurEvent.EVENT_ID)) { + fireEvent(new BlurEvent(this)); + } } /** @@ -348,6 +361,25 @@ public class Button extends AbstractField { super.setInternalValue(newValue); } + public void addListener(BlurListener listener) { + addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener, + BlurListener.blurMethod); + } + + public void removeListener(BlurListener listener) { + removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener); + } + + public void addListener(FocusListener listener) { + addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener, + FocusListener.focusMethod); + } + + public void removeListener(FocusListener listener) { + removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener); + + } + /* * Actions */ |