RPC 呼び出しを頻繁に使用する GWT アプリケーションがあります。通話中はいつでもスピナー アイコンを表示したいと思います。アイコンを表示するのは簡単ですが、呼び出しごとにアイコンを明示的に非表示および表示する必要がないように、1 か所でシームレスに表示したいと考えています。
jQuery の ajaxStart および ajaxStop イベントに似たものを探していると思います。
誰かが前にこのようなことをしたことがありますか?
チアーズ ティン
この動作を AsyncCallback の具体的な実装に実装し、この実装からすべての AsyncCallbacks をサブクラス化してみませんか。または、通常の AsyncCallback を使用するデコレーター パターンを使用し、ポップアップを表示/非表示にする別のパターンで装飾することもできます。
または、コマンド パターンを使用する場合は、これらのイベントをコマンド パターンの実装に追加するだけで、リクエストが送受信されるたびにポップアップを表示/非表示にするハンドラーを登録できます。
デコレーターが十分でないことを示唆するコメントへの対応。
abstract class AbstractAsyncCallback <T> implements AsyncCallaback <T>
{
public AbstractAsyncCallback ()
{
Foo.showIcon();
}
@Override public void success (T t)
{
doSuccess(t);
Foo.hideIcon();
}
@Override public void failure ()
{
doFailure();
Foo.hideIcon();
}
public abstract void doSuccess (T t);
public abstract void doFailure (T t);
};