summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur.signell@itmill.com>2009-10-06 05:55:46 +0000
committerArtur Signell <artur.signell@itmill.com>2009-10-06 05:55:46 +0000
commitc949237cd6a33cf3e7b1bf856cb78fac7ba6e7e9 (patch)
treea1f4640ea708bf4c9f89b0b42ee8f32162b0cf4d
parentd1bf0de1161299f7211af688917c00b95b8ca7f4 (diff)
downloadvaadin-framework-c949237cd6a33cf3e7b1bf856cb78fac7ba6e7e9.tar.gz
vaadin-framework-c949237cd6a33cf3e7b1bf856cb78fac7ba6e7e9.zip
Merged: Fix for #3377 - VButton clicklistener should be overridable
svn changeset:9091/svn branch:6.2
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VButton.java41
1 files changed, 26 insertions, 15 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VButton.java b/src/com/vaadin/terminal/gwt/client/ui/VButton.java
index 93f06f9954..decf262a17 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VButton.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VButton.java
@@ -20,7 +20,7 @@ import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
import com.vaadin.terminal.gwt.client.VTooltip;
-public class VButton extends FocusWidget implements Paintable {
+public class VButton extends FocusWidget implements Paintable, ClickHandler {
public static final String CLASSNAME = "v-button";
private static final String CLASSNAME_PRESSED = "v-pressed";
@@ -86,18 +86,7 @@ public class VButton extends FocusWidget implements Paintable {
captionElement.setClassName(CLASSNAME + "-caption");
wrapper.appendChild(captionElement);
- addClickHandler(new ClickHandler() {
- public void onClick(ClickEvent event) {
- if (id == null || client == null) {
- return;
- }
- if (BrowserInfo.get().isSafari()) {
- VButton.this.setFocus(true);
- }
- client.updateVariable(id, "state", true, true);
- clickPending = false;
- }
- });
+ addClickHandler(this);
}
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
@@ -301,14 +290,36 @@ public class VButton extends FocusWidget implements Paintable {
}
/*
+ * (non-Javadoc)
+ *
+ * @see
+ * com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event
+ * .dom.client.ClickEvent)
+ */
+ public void onClick(ClickEvent event) {
+ if (id == null || client == null) {
+ return;
+ }
+ if (BrowserInfo.get().isSafari()) {
+ VButton.this.setFocus(true);
+ }
+ client.updateVariable(id, "state", true, true);
+
+ clickPending = false;
+ }
+
+ /*
* ALL BELOW COPY-PASTED FROM GWT CustomButton
*/
/**
- * Called when the user finishes clicking on this button. The default
- * behavior is to fire the click event to listeners. Subclasses that
+ * Called internally when the user finishes clicking on this button. The
+ * default behavior is to fire the click event to listeners. Subclasses that
* override {@link #onClickStart()} should override this method to restore
* the normal widget display.
+ * <p>
+ * To add custom code for a click event, override
+ * {@link #onClick(ClickEvent)} instead of this.
*/
protected void onClick() {
// Allow the click we're about to synthesize to pass through to the