Hi,

thanks, I am getting the message "method does not override method from its 
superclass."

The problem is that I do not have the callback method in this panel but in its 
parent; I would need to have a getter method so that I can directly access the 
resource link from the panel instance and change its visibility.

ResourceLink pl = new ResourceLink("pdfLink", new 
ByteArrayResource("application/pdf") {

            @Override
            protected boolean isVisible() {
                return ....;
            }

        });

Chris


> Am 09.05.2015 um 20:12 schrieb Tobias Soloschenko 
> <tobiassolosche...@googlemail.com>:
> 
> Yes - should work because isVisible is inherited from component:
> 
> http://ci.apache.org/projects/wicket/apidocs/6.0.x/org/apache/wicket/markup/html/link/ResourceLink.html
> 
> But watch out not to put in expensive calls in it! The user guide is also 
> mentioning a lot about that topic:
> 
> https://wicket.apache.org/guide/guide/bestpractices.html#bestpractices_5
> 
> At this place it is good to mention the new location of the guide:
> 
> http://ci.apache.org/projects/wicket/guide/6.x/
> 
> http://ci.apache.org/projects/wicket/guide/7.x/
> 
> kind regards
> 
> Tobias
> 
>> Am 09.05.2015 um 19:58 schrieb Chris <chris...@gmx.at>:
>> 
>> Hi Tobias,
>> 
>> thanks! Can the isVisible method be directly overridden also by  a 
>> ResourceLink?  
>> 
>> ResourceLink pl = new ResourceLink(..) {
>> protected boolean isVisible() {…}
>> }
>> Chris
>> 
>> 
>>> Am 09.05.2015 um 19:46 schrieb Tobias Soloschenko 
>>> <tobiassolosche...@googlemail.com>:
>>> 
>>> Hi,
>>> 
>>> the constructor of your panel is only called at a normal request - you have 
>>> to set the visibility of your link in the ajax callback via 
>>> AjaxRequestTarget.
>>> 
>>> 1. setOutputMarkupId and setOutputMarkupPlaceholder of the link to true (in 
>>> your constructor)
>>> 
>>> 2. set the visibility to your component in the callback method (based on 
>>> your Model)
>>> 
>>> 3. add the component to the AjaxRequestTarget so that it is updated 
>>> 
>>> Another solution would be to override the isVisible method and return the 
>>> visibility based on your model and then only add the component to the 
>>> AjaxRequestTarget.
>>> 
>>> kind regards
>>> 
>>> Tobias
>>> 
>>>> Am 09.05.2015 um 19:29 schrieb Chris <chris...@gmx.at>:
>>>> 
>>>> Hi all,
>>>> 
>>>> currently, the visibility of the resource link is not updated when the 
>>>> parent component of the panel is rendered again based on an ajax call.
>>>> 
>>>> How can the visibility set dynamically based on the model’s data?
>>>> 
>>>> Thanks, Chris
>>>> 
>>>> public SomePanel(String id, final IModel<List<A>> model) {
>>>> super(id, model);
>>>> 
>>>> ResourceLink pl = new ResourceLink("pdfLink", new 
>>>> ByteArrayResource("application/pdf") {...}
>>>> pl.setVisible(routingModel.getObject().get(0).getElements().size() > 0);
>>>> ...
>>>> }
>>>> ---------------------------------------------------------------------
>>>> 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
>> 
> 
> ---------------------------------------------------------------------
> 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

Reply via email to