データ ソースを BeanItemContainer に設定したテーブルを作成しました。各 Bean には、名前 (文字列) と、byte[] に変換されたファイルを保持する byte[] があります。最初にファイルをpdfに変換してダウンロードすると思われるボタンを各行に追加しました。ダウンロード部分の実装に問題があります。関連するコードは次のとおりです。
public Object generateCell(Table source, Object itemId,
Object columnId) {
// TODO Auto-generated method stub
final Beans p = (Beans) itemId;
Button l = new Button("Link to pdf");
l.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
// TODO Auto-generated method stub
try {
FileOutputStream out = new FileOutputStream(p.getName() + ".pdf");
out.write(p.getFile());
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
l.setStyleName(Reindeer.BUTTON_LINK);
return l;
}
});
したがって、getFile は Bean からバイト配列を取得します