As your view is singleton you have to tell the presenter that it should
detach itself from the view, e.g. by introducing a public
Presenter.unbind() method. You then have to call that unbind() method
before you throw away your presenter instance. Your presenter needs to
remember the HandlerRegistration instances so unbind() can use them to
remove the handlers from the view.
Alternative: Let the view know its presenter and let it delegate to the
presenter once an event has occurred. If the view does not know any
presenter, nothing will happen. That way you can swap presenters or remove
the presenter by calling view.setPresenter(null).
public MyView extends Composite implements View {
Presenter presenter = ...;
Button createNoteButton = ...;
public void setPresenter(Presenter p) {
presenter = p;
}
@UiHandler("createNoteButton") //if you use UiBinder. Otherwise you have
to register the ClickHandler yourself in the view.
void onClick(ClickEvent event) {
if(presenter != null) { presenter.onCreateNote() };
}
}
-- J.
--
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/-/zUz9ytH1c6YJ.
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.