I figured out if the page starts with 'advancedSearch = false' the image is
always expand.gif and if it starts with 'advancedSearch = true' the image is
always collapse.gif. So the value of Model object is cached somewhere, but
not in the browser for sure.

What I don't understand is that every time the panel is rendered,
getObject() method is called but apparently the return value is ignored.



Zhubin Salehi wrote:
> 
> advancedSearch is in PersonDetailTab that is a panel in an AbstractTab in
> a PanelCachingTab in FindUserAcountForm.
> 
> Zhubin
> 
> 
> igor.vaynberg wrote:
>> 
>> is advancedSearch inside findUserAccountForm?
>> 
>> -igor
>> 
>> On Fri, Mar 6, 2009 at 9:23 AM, Zhubin Salehi <zhooz...@yahoo.com> wrote:
>>>
>>> Here is the source code without tabs:
>>>
>>> /* 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";
>>>        }
>>> })));
>>>
>>> I hope it's more readable this way :-)
>>>
>>> Zhubin
>>>
>>> Zhubin Salehi wrote:
>>>>
>>>> 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-tp14472713p22376853.html
>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Problems-Refreshin-a-Image-from-AjaxLink-tp14472713p22378722.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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

Reply via email to