テキストエリアとボタンがあります。テキスト領域にテキストを入力するか (貼り付け参照イベントでは、他のすべてのイベントは無視されます)、ボタンをクリックすると、テキスト領域の値変更ハンドラーとボタンのクリック ハンドラーを介して同じ呼び出しがサーバーに送信されます。データが間違っている場合、サーバーは例外をスローし、メッセージ ボックスとしてクライアントに返します。
そのため、テキスト領域にデータを入力してボタンをクリックすると、2 つのメッセージ ボックスが表示されます。このような場合に 1 つのメッセージ ボックスを表示する方法はありますか?
問題の例としていくつかのコード:
textArea.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
fireHandlers();
}
});
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
fireHandlers();
}
});
//............
private void fireHandlers() {
for (MyProcessHandler handler : myHandlersList) {
handler.handle();
}
}
//............
public static interface MyProcessHandler {
public void handle();
}
//............
addMyProcessHandler(new MyProcessHandler() {
@Override
public void handle() {
AsyncCallback<String[]> ac = new AsyncCallbackAdapter<String[]>() {
public void onSuccess(String[] data) {
//post processing
}
@Override
public void onFailure(Throwable throwable) {
super.onFailure(throwable);
}
};
RemoteCall.getMyService().getResultFromData(textArea.getData(), ac);
}
});