GWT - избегать слушать события - PullRequest
0 голосов
/ 26 августа 2011

Я использую виджет SliderBar из инкубатора Google Web Toolkit.По умолчанию этот виджет прослушивает некоторые события клавиатуры, например, стрелка влево.Я хотел бы знать, есть ли способ избежать прослушивания виджетом этих событий.

Я использую UiBinder и пытался использовать функцию unsinkEvents, но ничего не происходит.Вот фрагмент кода:

@ UiField (предоставляется = true) SliderBar slbRotate;

public NewViewImpl() {
    slbRotate = new SliderBar(-180,180);
    slbRotate.setStepSize(10);
    slbRotate.setCurrentValue(0);       
    slbRotate.setWidth("478px");
    slbRotate.setHeight("22px");            
    slbRotate.unsinkEvents(Event.KEYEVENTS);
    initWidget(binder.createAndBindUi(this));

}

Я также использовал KeyCodes.KEY_LEFT в аргументе функции unsinkEvents, но тоже не работает.

Спасибо.

1 Ответ

0 голосов
/ 26 августа 2011

С помощью функции

unsinkEvents

.

Я создал короткий пример, чтобы показать основы:

import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.TextBox;

public class ExtendedTextBox extends TextBox {
    public ExtendedTextBox() {
        sinkEvents(Event.KEYEVENTS);
    }

    @Override
    public void onBrowserEvent(Event event) {
        Window.alert("keypress");
    }

    public void unSinkKeyEvent(){
        unsinkEvents(Event.KEYEVENTS);
    }
}

В этом примере создается TextBox и всякий раз, когда вы нажимаетеключ два всплывающих окна сообщений (один для keydown, другой для keyup) всплывают.Если вы вызываете функцию unSinkKeyEvent, это поведение прекращается.

Так что, если вы не хотите иметь специфическое поведение для виджета SliderBar, вам просто нужно вызвать функцию unsinkEvents и указать событие, которое вы не хотите иметьпросто посмотрите на помощь)

С уважением, Стефан

...