Favicon with Wicket and HeaderContributer
Based on Michael's example, I did a complete example for a Wicket header contributer generating a favicon entry:
public class FavIconHeaderContributor extends AbstractHeaderContributor {
private static final long serialVersionUID = 1L;
private final FavIconContributor contributor;
private static final class FavIconContributor implements IHeaderContributor {
private static final long serialVersionUID = 1L;
ResourceReference _resourceReference;
public FavIconContributor(ResourceReference resourceReference) {
_resourceReference = resourceReference;
}
public void renderHead(IHeaderResponse response) {
CharSequence url = RequestCycle.get().urlFor(_resourceReference);
response.renderString(getFavIconReference(url));
}
private CharSequence getFavIconReference(CharSequence url) {
StringBuilder sb = new StringBuilder();
sb.append("<link rel=\"shortcut icon\" href=\"");
sb.append(url);
sb.append("\" type=\"image/x-icon\">\n");
return sb.toString();
}
}
public FavIconHeaderContributor(ResourceReference resourceReference) {
contributor = new FavIconContributor(resourceReference);
}
@Override
public final IHeaderContributor[] getHeaderContributors() {
return new IHeaderContributor[] { contributor };
}
@Override
public String toString() {
return contributor._resourceReference.getName();
}
}
