0

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);                }
                }
            });
4

2 に答える 2

0

これは明らかにアップロード コンポーネントのバグであり、http://dev.vaadin.com/ で報告することを検討してください

それまでの間、AndroidHustle で提案されている回避策がおそらく最も簡単です。さらに、このソリューションを CustomComponent にパックし、残りのアプリケーションを作成して、修正が利用可能になったら実装を Upload に戻すことをお勧めします。

于 2012-08-21T08:26:56.503 に答える
0

I never managed to solve the issue with the component but I solved the problem by having the Upload component in a dedicated container. When I initiated an upload I removed the component from the container and instead inserted a dummy replace button that looked the same and was disabled. Once the upload was complete I removed the dummy button and added the upload button again.

The problem is avoided using this method but I would agree if someone thought it was a quite rough solution to the problem...

于 2012-08-16T12:24:17.013 に答える