java - How to override/remove default handler in GWT widget? -
i change behavior of suggestbox in gwt. want submit value pressing enter. suggestbox have keyhandler, catches enter key , sets new selection. looking solution remove/overide handler.
this method called constructor in suggestbox
private void addeventstotextbox() { class textboxevents extends handlesallkeyevents implements valuechangehandler<string> { public void onkeydown(keydownevent event) { switch (event.getnativekeycode()) { case keycodes.key_down: display.moveselectiondown(); break; case keycodes.key_up: display.moveselectionup(); break; case keycodes.key_enter: case keycodes.key_tab: suggestion suggestion = display.getcurrentselection(); if (suggestion == null) { display.hidesuggestions(); } else { setnewselection(suggestion); } break; } delegateevent(suggestbox.this, event); } public void onkeypress(keypressevent event) { delegateevent(suggestbox.this, event); } public void onkeyup(keyupevent event) { // after every user key input, refresh popup's suggestions. refreshsuggestions(); delegateevent(suggestbox.this, event); } public void onvaluechange(valuechangeevent<string> event) { delegateevent(suggestbox.this, event); } } textboxevents events = new textboxevents(); events.addkeyhandlersto(box); box.addvaluechangehandler(events);
}
is possible remove handler box using handlerregistration? there nice solution extending class , overriding private method?
unfortunately method private, unless copy source directly , change method way won't able override method. think best option create instance of suggestbox , passing custom implementation of textboxbase can override event/handler behaviours. notice addeventstotextbox() hooks inner class box
member variable set in constructor prior call addeventstotextbox()
.
something similar following:
public class mytextbox extends textbox{ ... // override handlers/events ... }
and use instance of suggestbox:
mytextbox mybox = new mytextbox(...); suggestbox sbox = new suggestbox(oracle, mybox);
depending on specific situation might not ideal solution in case helpful see code snippets showing use of it.
edit:
i should mention want extend subclass of textboxbase such textbox
or textarea
, not textboxbase
directly don't have re-implement basic text input functionality of widgets.
Comments
Post a Comment