Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove Click Handler-GWT

Tags:

gwt

gwt2

How to remove the ClickHandler Event in GWT? I added addClickHandler() Event for a button and i want to remove the ClickHandler Event.I tried HandlerRegistration Method But it failed to remove the handler ,Here is a snippet :

notification.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
        }

    });  

I want to remove the handler with notification !

Note:
Notification is the button instance that calls the handler!
like image 804
Rangesh Avatar asked Apr 26 '12 13:04

Rangesh


2 Answers

Each add...Handler method returns the HandlerRegistration interface. This interface contains the removeHandler() method. If you want to remove handlers, simple store the returned interface in a variable and call removeHandler when you want to remove the handler.

HandlerRegistration handler;

handler = button.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                // ...

            }
        });
handler.removeHandler();            
like image 181
Hardik Mishra Avatar answered Oct 29 '22 02:10

Hardik Mishra


This worked for me, I get the Handler registration when I bind the event,

closeIconHandlerRegistration = closeImg.addClickHandler( new ClickHandler()
        {
            @Override
            public void onClick( ClickEvent event )
            {
                addCloseClickHanlder();
            }
        } );

After that When I need to remove the handler...

if ( this.getCloseButtonHandlerRegistration() != null )
        {
            this.getCloseButtonHandlerRegistration().removeHandler();
            this.getCloseImg().addClickHandler( new ClickHandler()
            {

                @Override
                public void onClick( ClickEvent event )
                {
                    SaveCancelCommissionChangeEvent saveEvt = new SaveCancelCommissionChangeEvent();
                    saveEvt.setSave( false );
                    tabEventBus.fireEvent( saveEvt );
                }
            } );
        }
like image 20
Maxi Avatar answered Oct 29 '22 03:10

Maxi