以下に示すコードの 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();