2

以下に示すコードの GXT File UploadField を使用してデータをアップロードしていますが、アップロード ボタンをクリックすると、ブラウザは初めてアップロード ポップアップをブロックします。その後、正常に動作します。ページを初めてリロードすると、ポップアップがブロックされるのはなぜですか? アップロードポップアップを開くには、そのボタンをダブルクリックする必要があります。

 if (uploadFileView == null) {
    uploadFileView = new UploadFileView();
    /* upldate Labels */
    uploadFileView.setHeading(uploadBasicLabels.uploadNewFile());
    uploadFileView.getBtnSubmit().setText(uploadBasicLabels.upload());

    uploadFileView.getBtnSubmit().addListener(Events.Select, new   Listener<BaseEvent>() {
        @Override
        public void handleEvent(BaseEvent be) {
            String id = uploadFileView.getFileField().getFileInput().getId();
            if(presenter.validateFile(id)){
                resetAllowed = false;
                uploadFileView.hide();  
                presenter.uploadNewFile();
            }else
                uploadFileView.getBtnSubmit().setEnabled(false);
        }
    });
    uploadFileView.addListener(Events.Hide, new Listener<BaseEvent>() {
        @Override
        public void handleEvent(BaseEvent be) {
            if(resetAllowed && !uploadFileView.isVisible()) {
                presenter.validateClose();
//                  presenter.resetCurrentRow();
            }
            resetAllowed  = true;
        }
    });
    uploadFileView.getFileField().addListener(Events.OnChange, new Listener<BaseEvent>() {
        @Override
        public void handleEvent(BaseEvent be) {
            if(uploadFileView.getFileField().getValue().equals("")){
                uploadFileView.getBtnSubmit().setEnabled(false);                    
            }else{
                uploadFileView.getBtnSubmit().setEnabled(true);

                /* on change Event Called twice */
                if(timer == null){
                    timer = new Timer() {

                        @Override
                        public void run() {
                            uploadFileView.getBtnSubmit().fireEvent(Events.Select);
                            timer = null;
                        }
                    };

                    timer.schedule(100);
                }
            }
        }
    });

    uploadFileView.addListener(Events.Show, new Listener<BaseEvent>() {
        @Override
        public void handleEvent(BaseEvent be) {
            presenter.getAppController().getFocusManager().setCurrentComponent(uploadFileView);
            uploadFileView.getFileField().getFileInput().focus();
        }
    });
}


uploadFileView.show();  
uploadFileView.getFileField().getFileInput().click();
4

0 に答える 0