Not sure... but could you try something like:
DownloadLink downloadLink = new DownloadLink("link_id", new
AbstractReadOnlyModel<File>(){
public File getObject() {
return this.linkModel;
};
},"myfile.xxx");
downloadLink.setOutputMarkupId(true);
and make linkModel a member variable? This way file will be "refreshed".
Best,
Ernnesto
On Tue, Mar 2, 2010 at 1:14 PM, Martin Asenov <[email protected]> wrote:
> Hi, guys!
>
> I experience some DownloadLink problem - I have these fields:
>
> File linkModel;
> DownloadLink theLink = new DownloadLink("link_id", new
> Model<File>(linkModel));
> theLink.setOutputMarkupId(true);
>
> After another button click I have the linkModel field pointing to real file
> on the file system. And then I say:
>
> target.addComponent(theLink);
>
> the link name is still invisible, and when I click on the small clickable
> area, Wicket comes up with:
>
> WicketMessage: Method onLinkClicked of interface
> org.apache.wicket.markup.html.link.ILinkListener targeted at component
> [MarkupContainer [Component id = exported_file_link]] threw an exception
>
> Root cause:
>
> java.lang.IllegalStateException:
> org.apache.wicket.markup.html.link.DownloadLink failed to retrieve a File
> object from model
> at
> org.apache.wicket.markup.html.link.DownloadLink.onClick(DownloadLink.java:141)
> at org.apache.wicket.markup.html.link.Link.onLinkClicked(Link.java:224)
> at java.lang.reflect.Method.invoke(Method.java:597)
> I thought I've made everything perfect, but it seems that I haven't.
> Any help is appreciated!
>
> Best regards,
> Martin
>
>