GWT FileUploadは、フォーム提出中にファイルをアップロードできるようにするウィジェットとして提供されています(少なくとも私がそれを理解する方法です:))私がしたいのは、標準の "参照..."ボタンを削除します。GWTを包む/装飾するFileUpload
私は良いGWTエクスペリエンス(JavaScriptはありません)がないので、私は既存のソリューションを探して、かなり良いプロジェクトを見つけました - gwtupload。それはいいですが、私は自分のミニチュア版を持っていたいと思っていました(そして、私はそれがどのように機能しているのか興味がありました)。だから私はコードを閲覧し、魔法の部分を抽出しようとした。私は、GWT FileInputが使用されていることに気付きましたが、これは表示されず、ボタンのクリックはこのFileInputに委任されました。私は抽出しようとしたコードgwtuploadのソースを検討した後、このトリッキーelem.click()
JSNI含まれています(代表者のクリックでいることを一部のみ):
class MyUpload extends Composite {
private static native void clickOnInputFile(Element elem) /*-{
elem.click();
}-*/;
public MyUpload() {
final FileUpload upload = new FileUpload();
AbsolutePanel container = new AbsolutePanel();
// container.add(upload);
Button btn = new Button("My Browse..");
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
clickOnInputFile(upload.getElement());
}
});
container.add(btn);
initWidget(container);
}
}
をしかし、これは動作しないようです:をクリックする「マイブラウズ..」の結果で何の効果もありません(ちょうど私がコメントなしのcontainer.add(upload)
行で実行しようとした場合)。このコードサンプルで何が間違っているか分からないことを理解するのを助けてください。
ありがとうございます。
P.S.私はFormPanelに配置する必要があることを知っています。サーブレットで実際にサブミット/ハンドリングを実行する方法については残りの部分を知っています。私がしたいのは、この種の装飾だけです。