Vaadin フレームワークを使用して Web アプリケーションを開発しています。
Vaadin Upload コンポーネントを使用しています。便宜上、ファイルが既にサーバーにアップロードされている場合は、アップロード ボタンを無効にすることにしました。
ボタンは無効に見えますが、クリックするとファイル ブラウザ ダイアログが開き、ユーザーは正しく処理されない追加のファイルを指定できます。
デバッグ中に Upload progressListener 内で停止し、Upload オブジェクトのEnabledパラメータがfalseに設定されていることを確認しましたが、GUI で無効化されたボタンをクリックしようとすると、ダイアログが開きます..
これが既知のバグであるかどうかを検索しようとしましたが、何も見つかりませんでした。
関連するコード:
//The first listener triggered when starting an upload, here the
// Upload component is set to disabled
upload.addListener(new Upload.StartedListener() {
public void uploadStarted(StartedEvent event) {
// this method gets called immediately after upload is started
upload.setEnabled(false);
}
// Listener being triggered a number of times during the upload.
// Here is where I debugged, saw that the Upload component was
// disabled but found that I still could open the dialogue.
upload.addListener(new Upload.ProgressListener() {
public void updateProgress(long readBytes, long contentLength) {
}
// The last listener triggered, here the Upload component is
// set to enabled. The button now looks clickable but it behaves
// the same way as it does when the Upload component is disabled.
upload.addListener(new Upload.FinishedListener() {
public void uploadFinished(FinishedEvent event) {
if(uploadOk){
fileListItem.getProgressIndicator().stopPolling();
fileListItem.removeProgressIndicator();
fileListItem.removeAbortButton();
submitFilesBt.setEnabled(true);
removeFilesBt.setEnabled(true);
fileListItem.setFile(counter.getFile());
upload.setEnabled(true); }
}
});