Hi guys,
I have a similar problem that NonCachingImage does not solve. I have
implemented a simple expand/collapse button. I check the rendered page
source in FireFox and image name is always "/img/expand.gif". Here is the
code:
/* advanced search link */
add(new AjaxSubmitLink("advancedSearch") {
private static final long serialVersionUID =
3847759110695405700L;
@Override
protected void onSubmit(AjaxRequestTarget
target, Form<?> form) {
advancedSearch = !advancedSearch;
target.addComponent(findUserAcountForm);
}
}.add(new NonCachingImage("expandCollapse", new
Model<String>() {
private static final long serialVersionUID =
3430522655787763141L;
@Override
public String getObject() {
return advancedSearch ?
"/img/collapse.gif" : "/img/expand.gif";
}
})));
Thanks,
Zhubin
Marco Santos wrote:
>
> Hello there!
>
> I'm with problems refreshing an Image. On my web application i'm trying to
> refresh or change an Image that is on a Panel. On the panel there is a
> Image (it is rendered the first time) and a label. Outside the panel i
> have AjaxLink's (that are images too) that refresh the panel, and
> consequently the components on it, the image and the label. when the link
> is clicked, the label e refreshed with the new text, but the image still
> the same. The code is the following:
>
> /**
> *The Panel with the image to be refreshed:
> *(the label on the panel is freshed when the link is pressed.
> **/
> public class PhotoPanel extends Panel {
> /** Creates a new instance of PhotoPanel*/
> public PhotoPanel(String id, byte[] photoData, int size, Integer
> index) {
> super(id);
> setOutputMarkupId(true);
>
> MyImage mainPhoto = new MyImage("mainPhoto", photoData,
> size);//component that extends Image
> mainPhoto.setOutputMarkupId(true);
>
> Label label = new Label("index", "MYLABEL: " + index.toString());
>
> add(mainPhoto);
> add(label);
> }
> }
>
> /**
> * The AjaxLink's on a Parent panel that holds a panel with the links, and
> the panel with the image
> * to be refreshed
> **/
> private class PhotoSlideLink extends AjaxLink {
> private byte[] photoSlideData = null;
> Integer index = 0;
> public PhotoSlideLink(String id, byte[] photoSlideData ) {
> super(id);
> this.photoSlideData = photoSlideData ;
>
> MyImage photoSlide = new MyImage("photoSlide", photoSlideData
> , 100);
> add(photoSlide );
> }
>
> @Override
> public void onClick(AjaxRequestTarget ajaxRequestTarget) {
> Panel newMainPhotoPanel = new PhotoPanel("mainPhotoPanel",
> photoSlideData , MAIN_PHOTO_SIZE, index++);
> newMainPhotoPanel .setOutputMarkupId(true);
>
> /*the first PhotoPanel created when the page was loaded*/
> mainPhotoPanel.replaceWith(newMainPhotoPanel);
> mainPhotoPanel= newMainPhotoPanel ;
>
> ajaxRequestTarget.addComponent(newMainPhotoPanel);
> }
> }
>
> Does any one know why refreshing the panel, the label change, but not the
> image? Am i forgetting to do something?
>
> Thanks a lot
>
--
View this message in context:
http://www.nabble.com/Problems-Refreshin-a-Image-from-AjaxLink-tp14472713p22376598.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]