Image#getResource always returns null even if there is a resource
-----------------------------------------------------------------
Key: WICKET-974
URL: https://issues.apache.org/jira/browse/WICKET-974
Project: Wicket
Issue Type: Bug
Components: wicket
Reporter: Peter Ertl
When trying to implement a subclass of org.apache.wicket.markup.html.image that
automatically shows/hides (using isVisible) depending on if there is image data
to show I stumbled upon the following:
/**
* @return Resource returned from subclass
*/
protected Resource getImageResource()
{
return null;
}
the same for
/**
* @return ResourceReference returned from subclass
*/
protected ResourceReference getImageResourceReference()
{
return null;
}
this is confusing and the javadoc should be more verbose on the intention that
caused this design.
due to the fact that
private final LocalizedImageResource localizedImageResource = new
LocalizedImageResource(this);
is private and not protected there is no way except overriding all the setters
public void setImageResource(final Resource imageResource)
public void setImageResourceReference(final ResourceReference
resourceReference)
public void setImageResourceReference(final ResourceReference
resourceReference, final ValueMap parameters)
public Component setModel(IModel model)
to detect if the image is 'blank' (having no src attribute) or has some data.
I think it would make sense to add
protected final LocalizedImageResource getLocalizedImageResource()
{
return this.localizedImageResource;
}
So it's easy to implement something like this:
Image imageTag = new Image("test")
{
public boolean isVisible()
{
return getLocalizedImageResource() != null;
}
};
add(imageTag);
if(database.has.image.for.product)
{
imageTag.setImageResource(......);
}
// if product has no image the image tag is not rendered
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.