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 <mase...@velti.com> 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
>
>

Reply via email to