Just implement the interface HasClickHandlers in your custom button so you 
have an addClickHandler() method.

public CustomButton extends Composite implements HasClickHandlers {

  public HandlerRegistration addClickHandler(ClickHandler handler) {
    return addDomHandler(handler, ClickEvent.getType());
  }

}

-- J.


Am Samstag, 17. März 2012 21:58:50 UTC+1 schrieb Jonas:
>
> I have created a custom widget which is basically a HTMLPanel that extends 
> Composite and is styled as a button.
> I'm using the widget with UiBinder, but I want to use the @UiHandler 
> annotation inside the view where the button
> is located and catch its click event.
>
> How can I do this? I have tried doing something like this but it doesn't 
> work:
>
> @UiField
> HTMLPanel mainContainer;
>
> @UiConstructor
> public CustomButton(String text) 
> {        
>     initWidget(binder.createAndBindUi(this));
>     setText(text);
>     
>     mainContainer.addDomHandler(new ClickHandler()
>     {
>         @Override
>         public void onClick(ClickEvent event) 
>         {
>             Window.alert("Clicky");                
>             fireEvent(event);
>         }            
>     }, ClickEvent.getType());
> }
>
> In my view:
>
> @UiHandler("customButton")
> public void customButton(ClickEvent event)
> {
>     Window.alert("Clicky!");
> }
>
> I get error:
>
> [ERROR] Field 'customButton' does not have an 'addClickHandler' method 
> associated.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/QAy3FeSG7w4J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to