2 Stimmen

GWT-Ereignis für folgende Handler abbrechen

Ich möchte ein Ereignis für die folgenden Handler abbrechen. Die Beispielklasse unten zeigt, was ich versuche. Obwohl das Tastenereignis für das Textfeld abgebrochen wird, wird der zweite Handler immer noch aufgerufen. Die Reihenfolge der Handler ist korrekt. Ich kann beweisen, dass Handler1 vor Handler2 aufgerufen wird. In dieser Beispielklasse könnte ich ein Flag verwenden, aber in meiner echten Klasse sind die Handler und das Textfeld getrennt, so dass Flags ein Problem darstellen würden.

public class EventTestTextBox extends TextBox {

    public static class Handler1 implements KeyUpHandler {
        @Override
        public void onKeyUp(KeyUpEvent event) {
            if (event.isShiftKeyDown()) {
                event.preventDefault();
                event.stopPropagation();
                ((TextBox)event.getSource()).cancelKey();
            }
        }
    }

    public static class Handler2 implements KeyUpHandler {
        @Override
        public void onKeyUp(KeyUpEvent event) {
            Window.alert("should not appear if shift-key is down.");
        }
    }

    public EventTestTextBox() {
        super.addKeyUpHandler(new Handler1());
        super.addKeyUpHandler(new Handler2());
    }

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X