GXT KeyListener.componentKeyDown()すぐにMessageBox.alertは(クローズ)
-
22-08-2019 - |
質問
GXTでは、MessageBox
方法は、メッセージボックスが表示されている間に、アプリケーションが「ロックアップ」しないことを意味し、非同期である。
私は(フォームは、キー入力によって提出されることを可能にする、すなわち、ユーザビリティを高めるために)、その後、アプリケーションがユーザーの資格情報を処理しながら、フォームフィールドを無効にする形でキーの押下を入力処理するKeyListener
を使用します。彼らは間違っている場合は、私がMessageBox.alert()
し、フォームフィールドを再度有効を示しました。 alert()
を直ちに返すので、フォームフィールドが直ちに警告を閉じずに入力データをユーザに可能にする、再び利用可能になる。
この溶液をalert()
にコールバックを使用することです。ただし、キーの押下を入力を提出するフォームを原因とするだけでなく、(フォームやメッセージボックスの両方が入力したキーを処理しているかのように)すぐに却下する警告の原因となるだけではなく。ユーザーを押すが、二回目を入力するか、「OK」ボタンをクリックするまではどのように警告ボックスのオープンを維持していますか?
解決
キーは<のhref = "http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/index.html?com/google/gwt/user/client/DeferredCommandによって提供さDeferredCommand
です。 HTML」のrel = "nofollowをnoreferrer"> GWTするます:
このクラスは
addCommand(Command)
またはaddCommand(IncrementalCommand)
方法を使用して、すべての現在保留中のイベントハンドラが完了した後、あなたがコードを実行することができます。あなたは現在のスタックのコンテキストの外でコードを実行する必要がある場合に便利です。
if(!validate())
{
DeferredCommand.addCommand(new Command() {
public void execute() {
MessageBox.alert("Error", "You must enter a username and password.", alertListener);
return;
}
});
}