RE: DownloadLink problem

2010-03-02 Thread Martin Asenov
It doesn't... :-)

Thank you anyway! :-)
-Original Message-
From: Riyad Kalla [mailto:rka...@gmail.com] 
Sent: Tuesday, March 02, 2010 6:35 PM
To: users@wicket.apache.org
Subject: Re: DownloadLink problem

Martin,

If it makes you feel any better, it would have been a week or longer before
I thought to change that, good fine :)

-R

On Tue, Mar 2, 2010 at 9:32 AM, Martin Asenov  wrote:

> Oh my God!!! The problem was that the button that is supposed to do the
> export was of type submit and it reloads the page, instead of refreshing
> components. I changed to type=button and everything's fine...
>
> As people say - there is no patch for human stupidity...
>
> Thank you all for the help!
>
> Best,
> Martin
>
> -Original Message-
> From: Martin Asenov [mailto:mase...@velti.com]
> Sent: Tuesday, March 02, 2010 4:34 PM
> To: users@wicket.apache.org
> Subject: RE: DownloadLink problem
>
> Thanks Ernesto!
>
> But I want to have the link invisible on startup (because the file's
> empty). So I have this: (doesn't work, but has to)
>
>exportedFileLink = new DownloadLink("exported_file_link", new
> LoadableDetachableModel() {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  protected File load() {
>return exportedFile;
>  }
>}, PhonebookExporter.OUTPUT_FILE_NAME) {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  public boolean isVisible() {
>return exportedFile != null;
>  }
>};
>final WebMarkupContainer exportedFileLinkHolder = new
> WebMarkupContainer("link_holder");
>exportedFileLinkHolder.setOutputMarkupId(true);
>exportedFileLinkHolder.add(exportedFileLink);
>
>rightForm.add(exportedFileLinkHolder);
>rightForm.add(new AjaxButton("export_button") {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  protected void onSubmit(AjaxRequestTarget target, Form form) {
>
>PhonebookExporter exporter = getExporter();
>exportedFile = exporter.export(uploadFolder);
>
>if (exportedFile == null) {
>  error(getString("not_exported"));
>} else {
>  info(getString("exported"));
>}
>
>target.addComponent(exportedFileLinkHolder);
>target.addComponent(feed);
>  }
>
>});
>
> I really start to get pissed off by this one!!! g
>
> Regards,
> Martin
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 3:50 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Weird. Just try this example:
>
> import java.io.File;
>
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.markup.html.AjaxLink;
> import org.apache.wicket.markup.html.link.DownloadLink;
> import org.apache.wicket.markup.html.panel.Panel;
> import org.apache.wicket.model.AbstractReadOnlyModel;
>
> /**
>  * @author Ernesto Reinaldo Barreiro (reier...@gmail.com)
>  *
>  */
> public class TestDownLoadLink extends Panel {
>
>
>private static final long serialVersionUID = 1L;
>
>private File test = null;
>
>private DownloadLink download;
>/**
> * @param id
> */
>public TestDownLoadLink(String id) {
>super(id);
>
>this.download = new DownloadLink("download", new
> AbstractReadOnlyModel(){
>
> private static final long
> serialVersionUID = 1L;
>
>@Override
>public File getObject() {
>return test;
>}
>
> },"TestDownLoadLink.html") {
>
>private static final long serialVersionUID = 1L;
>
>@Override
>public boolean isEnabled() {
>
>return test != null;
>}
> };
> download.setOutputMarkupId(true);
> add(download);
>
> AjaxLink update = new AjaxLink("update") {
>
>private static final long serialVersionUID = 1L;
>
>@Override
>public void onClick(AjaxRequestTarget target) {
>test = new
>
> File(TestDownLoadLink.class.getResource("TestDownLoadLink.html").getFile());
>if(target != null) {
>target.addComponent(TestDownLoadLink.this.download);
>}
>}
> };
>
> add(update);
>

Re: DownloadLink problem

2010-03-02 Thread Riyad Kalla
Martin,

If it makes you feel any better, it would have been a week or longer before
I thought to change that, good fine :)

-R

On Tue, Mar 2, 2010 at 9:32 AM, Martin Asenov  wrote:

> Oh my God!!! The problem was that the button that is supposed to do the
> export was of type submit and it reloads the page, instead of refreshing
> components. I changed to type=button and everything's fine...
>
> As people say - there is no patch for human stupidity...
>
> Thank you all for the help!
>
> Best,
> Martin
>
> -Original Message-
> From: Martin Asenov [mailto:mase...@velti.com]
> Sent: Tuesday, March 02, 2010 4:34 PM
> To: users@wicket.apache.org
> Subject: RE: DownloadLink problem
>
> Thanks Ernesto!
>
> But I want to have the link invisible on startup (because the file's
> empty). So I have this: (doesn't work, but has to)
>
>exportedFileLink = new DownloadLink("exported_file_link", new
> LoadableDetachableModel() {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  protected File load() {
>return exportedFile;
>  }
>}, PhonebookExporter.OUTPUT_FILE_NAME) {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  public boolean isVisible() {
>return exportedFile != null;
>  }
>};
>final WebMarkupContainer exportedFileLinkHolder = new
> WebMarkupContainer("link_holder");
>exportedFileLinkHolder.setOutputMarkupId(true);
>exportedFileLinkHolder.add(exportedFileLink);
>
>rightForm.add(exportedFileLinkHolder);
>rightForm.add(new AjaxButton("export_button") {
>
>  private static final long serialVersionUID = 1L;
>
>  @Override
>  protected void onSubmit(AjaxRequestTarget target, Form form) {
>
>PhonebookExporter exporter = getExporter();
>exportedFile = exporter.export(uploadFolder);
>
>if (exportedFile == null) {
>  error(getString("not_exported"));
>} else {
>  info(getString("exported"));
>}
>
>target.addComponent(exportedFileLinkHolder);
>target.addComponent(feed);
>  }
>
>});
>
> I really start to get pissed off by this one!!! g
>
> Regards,
> Martin
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 3:50 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Weird. Just try this example:
>
> import java.io.File;
>
> import org.apache.wicket.ajax.AjaxRequestTarget;
> import org.apache.wicket.ajax.markup.html.AjaxLink;
> import org.apache.wicket.markup.html.link.DownloadLink;
> import org.apache.wicket.markup.html.panel.Panel;
> import org.apache.wicket.model.AbstractReadOnlyModel;
>
> /**
>  * @author Ernesto Reinaldo Barreiro (reier...@gmail.com)
>  *
>  */
> public class TestDownLoadLink extends Panel {
>
>
>private static final long serialVersionUID = 1L;
>
>private File test = null;
>
>private DownloadLink download;
>/**
> * @param id
> */
>public TestDownLoadLink(String id) {
>super(id);
>
>this.download = new DownloadLink("download", new
> AbstractReadOnlyModel(){
>
> private static final long
> serialVersionUID = 1L;
>
>@Override
>public File getObject() {
>return test;
>}
>
> },"TestDownLoadLink.html") {
>
>private static final long serialVersionUID = 1L;
>
>@Override
>public boolean isEnabled() {
>
>return test != null;
>}
> };
> download.setOutputMarkupId(true);
> add(download);
>
> AjaxLink update = new AjaxLink("update") {
>
>private static final long serialVersionUID = 1L;
>
>@Override
>public void onClick(AjaxRequestTarget target) {
>test = new
>
> File(TestDownLoadLink.class.getResource("TestDownLoadLink.html").getFile());
>if(target != null) {
>target.addComponent(TestDownLoadLink.this.download);
>}
>}
> };
>
> add(update);
>}
> }
>
> and the HTML
>
> 
> 
> 
> 
> 
> download
> Click me to update download
> 
> 
> 
>
> Just place them somewhere and do
>
> new TestDownLoadL

RE: DownloadLink problem

2010-03-02 Thread Martin Asenov
Oh my God!!! The problem was that the button that is supposed to do the export 
was of type submit and it reloads the page, instead of refreshing components. I 
changed to type=button and everything's fine...

As people say - there is no patch for human stupidity...

Thank you all for the help!

Best,
Martin

-Original Message-
From: Martin Asenov [mailto:mase...@velti.com] 
Sent: Tuesday, March 02, 2010 4:34 PM
To: users@wicket.apache.org
Subject: RE: DownloadLink problem

Thanks Ernesto!

But I want to have the link invisible on startup (because the file's empty). So 
I have this: (doesn't work, but has to)

exportedFileLink = new DownloadLink("exported_file_link", new 
LoadableDetachableModel() {

  private static final long serialVersionUID = 1L;

  @Override
  protected File load() {
return exportedFile;
  }
}, PhonebookExporter.OUTPUT_FILE_NAME) {

  private static final long serialVersionUID = 1L;

  @Override
  public boolean isVisible() {
return exportedFile != null;
  }
};
final WebMarkupContainer exportedFileLinkHolder = new 
WebMarkupContainer("link_holder");
exportedFileLinkHolder.setOutputMarkupId(true);
exportedFileLinkHolder.add(exportedFileLink);

rightForm.add(exportedFileLinkHolder);
rightForm.add(new AjaxButton("export_button") {

  private static final long serialVersionUID = 1L;

  @Override
  protected void onSubmit(AjaxRequestTarget target, Form form) {

PhonebookExporter exporter = getExporter();
exportedFile = exporter.export(uploadFolder);

if (exportedFile == null) {
  error(getString("not_exported"));
} else {
  info(getString("exported"));
}

target.addComponent(exportedFileLinkHolder);
target.addComponent(feed);
  }
  
});

I really start to get pissed off by this one!!! g

Regards,
Martin

-Original Message-
From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com] 
Sent: Tuesday, March 02, 2010 3:50 PM
To: users@wicket.apache.org
Subject: Re: DownloadLink problem

Weird. Just try this example:

import java.io.File;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.link.DownloadLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;

/**
 * @author Ernesto Reinaldo Barreiro (reier...@gmail.com)
 *
 */
public class TestDownLoadLink extends Panel {


private static final long serialVersionUID = 1L;

private File test = null;

private DownloadLink download;
/**
 * @param id
 */
public TestDownLoadLink(String id) {
super(id);

this.download = new DownloadLink("download", new
AbstractReadOnlyModel(){

 private static final long
serialVersionUID = 1L;

@Override
public File getObject() {
return test;
}

 },"TestDownLoadLink.html") {

private static final long serialVersionUID = 1L;

@Override
public boolean isEnabled() {

return test != null;
}
 };
 download.setOutputMarkupId(true);
 add(download);

 AjaxLink update = new AjaxLink("update") {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
test = new
File(TestDownLoadLink.class.getResource("TestDownLoadLink.html").getFile());
if(target != null) {
target.addComponent(TestDownLoadLink.this.download);
}
}
 };

 add(update);
}
}

and the HTML






download
Click me to update download




Just place them somewhere and do

new TestDownLoadLink("xxx");

It works for me. First time the download link is disable and when you click
on the AJAX link file is assigned, link is refreshed and you can download
your file;-)

Best,

Ernesto

On Tue, Mar 2, 2010 at 2:24 PM, Martin Asenov  wrote:

> Unfortunately doesn't work this way... The model is never refreshed...
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 2:31 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Not sure... but could you try something like:
>
> DownloadLink downloadLink = new DownloadLink("link_id", new
> AbstractReadOnlyModel(){
>public File getObject() {
>return this.linkModel;
>};
>},"myfile.xxx");
>

RE: DownloadLink problem

2010-03-02 Thread Martin Asenov
Thanks Ernesto!

But I want to have the link invisible on startup (because the file's empty). So 
I have this: (doesn't work, but has to)

exportedFileLink = new DownloadLink("exported_file_link", new 
LoadableDetachableModel() {

  private static final long serialVersionUID = 1L;

  @Override
  protected File load() {
return exportedFile;
  }
}, PhonebookExporter.OUTPUT_FILE_NAME) {

  private static final long serialVersionUID = 1L;

  @Override
  public boolean isVisible() {
return exportedFile != null;
  }
};
final WebMarkupContainer exportedFileLinkHolder = new 
WebMarkupContainer("link_holder");
exportedFileLinkHolder.setOutputMarkupId(true);
exportedFileLinkHolder.add(exportedFileLink);

rightForm.add(exportedFileLinkHolder);
rightForm.add(new AjaxButton("export_button") {

  private static final long serialVersionUID = 1L;

  @Override
  protected void onSubmit(AjaxRequestTarget target, Form form) {

PhonebookExporter exporter = getExporter();
exportedFile = exporter.export(uploadFolder);

if (exportedFile == null) {
  error(getString("not_exported"));
} else {
  info(getString("exported"));
}

target.addComponent(exportedFileLinkHolder);
target.addComponent(feed);
  }
  
});

I really start to get pissed off by this one!!! g

Regards,
Martin

-Original Message-
From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com] 
Sent: Tuesday, March 02, 2010 3:50 PM
To: users@wicket.apache.org
Subject: Re: DownloadLink problem

Weird. Just try this example:

import java.io.File;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.link.DownloadLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;

/**
 * @author Ernesto Reinaldo Barreiro (reier...@gmail.com)
 *
 */
public class TestDownLoadLink extends Panel {


private static final long serialVersionUID = 1L;

private File test = null;

private DownloadLink download;
/**
 * @param id
 */
public TestDownLoadLink(String id) {
super(id);

this.download = new DownloadLink("download", new
AbstractReadOnlyModel(){

 private static final long
serialVersionUID = 1L;

@Override
public File getObject() {
return test;
}

 },"TestDownLoadLink.html") {

private static final long serialVersionUID = 1L;

@Override
public boolean isEnabled() {

return test != null;
}
 };
 download.setOutputMarkupId(true);
 add(download);

 AjaxLink update = new AjaxLink("update") {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
test = new
File(TestDownLoadLink.class.getResource("TestDownLoadLink.html").getFile());
if(target != null) {
target.addComponent(TestDownLoadLink.this.download);
}
}
 };

 add(update);
}
}

and the HTML






download
Click me to update download




Just place them somewhere and do

new TestDownLoadLink("xxx");

It works for me. First time the download link is disable and when you click
on the AJAX link file is assigned, link is refreshed and you can download
your file;-)

Best,

Ernesto

On Tue, Mar 2, 2010 at 2:24 PM, Martin Asenov  wrote:

> Unfortunately doesn't work this way... The model is never refreshed...
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 2:31 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Not sure... but could you try something like:
>
> DownloadLink downloadLink = new DownloadLink("link_id", new
> AbstractReadOnlyModel(){
>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  wrote:
>
> > Hi, guys!
> >
> > I experience some DownloadLink problem - I have these fields:
> >
> > File linkModel;
> > DownloadLink theLink = new DownloadLink("link_id", new
> > Model(linkModel));
> &g

Re: DownloadLink problem

2010-03-02 Thread Ernesto Reinaldo Barreiro
Weird. Just try this example:

import java.io.File;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.link.DownloadLink;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;

/**
 * @author Ernesto Reinaldo Barreiro (reier...@gmail.com)
 *
 */
public class TestDownLoadLink extends Panel {


private static final long serialVersionUID = 1L;

private File test = null;

private DownloadLink download;
/**
 * @param id
 */
public TestDownLoadLink(String id) {
super(id);

this.download = new DownloadLink("download", new
AbstractReadOnlyModel(){

 private static final long
serialVersionUID = 1L;

@Override
public File getObject() {
return test;
}

 },"TestDownLoadLink.html") {

private static final long serialVersionUID = 1L;

@Override
public boolean isEnabled() {

return test != null;
}
 };
 download.setOutputMarkupId(true);
 add(download);

 AjaxLink update = new AjaxLink("update") {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
test = new
File(TestDownLoadLink.class.getResource("TestDownLoadLink.html").getFile());
if(target != null) {
target.addComponent(TestDownLoadLink.this.download);
}
}
 };

 add(update);
}
}

and the HTML






download
Click me to update download




Just place them somewhere and do

new TestDownLoadLink("xxx");

It works for me. First time the download link is disable and when you click
on the AJAX link file is assigned, link is refreshed and you can download
your file;-)

Best,

Ernesto

On Tue, Mar 2, 2010 at 2:24 PM, Martin Asenov  wrote:

> Unfortunately doesn't work this way... The model is never refreshed...
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 2:31 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Not sure... but could you try something like:
>
> DownloadLink downloadLink = new DownloadLink("link_id", new
> AbstractReadOnlyModel(){
>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  wrote:
>
> > Hi, guys!
> >
> > I experience some DownloadLink problem - I have these fields:
> >
> > File linkModel;
> > DownloadLink theLink = new DownloadLink("link_id", new
> > Model(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
> >
> >
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: DownloadLink problem

2010-03-02 Thread James Carman
Use a LoadableDetachableModel?

On Tue, Mar 2, 2010 at 8:24 AM, Martin Asenov  wrote:
> Unfortunately doesn't work this way... The model is never refreshed...
>
> -Original Message-
> From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com]
> Sent: Tuesday, March 02, 2010 2:31 PM
> To: users@wicket.apache.org
> Subject: Re: DownloadLink problem
>
> Not sure... but could you try something like:
>
> DownloadLink downloadLink = new DownloadLink("link_id", new
> AbstractReadOnlyModel(){
>            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  wrote:
>
>> Hi, guys!
>>
>> I experience some DownloadLink problem - I have these fields:
>>
>> File linkModel;
>> DownloadLink theLink = new DownloadLink("link_id", new
>> Model(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
>>
>>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



RE: DownloadLink problem

2010-03-02 Thread Martin Asenov
Unfortunately doesn't work this way... The model is never refreshed...

-Original Message-
From: Ernesto Reinaldo Barreiro [mailto:reier...@gmail.com] 
Sent: Tuesday, March 02, 2010 2:31 PM
To: users@wicket.apache.org
Subject: Re: DownloadLink problem

Not sure... but could you try something like:

DownloadLink downloadLink = new DownloadLink("link_id", new
AbstractReadOnlyModel(){
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  wrote:

> Hi, guys!
>
> I experience some DownloadLink problem - I have these fields:
>
> File linkModel;
> DownloadLink theLink = new DownloadLink("link_id", new
> Model(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
>
>

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org



Re: DownloadLink problem

2010-03-02 Thread Ernesto Reinaldo Barreiro
Not sure... but could you try something like:

DownloadLink downloadLink = new DownloadLink("link_id", new
AbstractReadOnlyModel(){
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  wrote:

> Hi, guys!
>
> I experience some DownloadLink problem - I have these fields:
>
> File linkModel;
> DownloadLink theLink = new DownloadLink("link_id", new
> Model(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
>
>