Hi,
I want to create custom component which adds new child to page "head" facet.
This custom component is based on h:selectOneMenu. When used on jsf page, user can simply change the current theme. What I need this component to do is to add stylesheet child to head facet.
My component has backing java. I tried to modify "head" in encodeBegins() method, but my child is not rendered at all. Take a look at the implementation:
@FacesComponent(value = "com.ramps.util.ThemeSelector")
public class ThemeSelector extends UIInput implements NamingContainer {
public void encodeBegin(FacesContext context) throws IOException {
UIComponent headFacet = context.getViewRoot().getFacet("javax_faces_location_HEAD");
Resource res = new Resource();
res.setName("...");
...
List <UIComponent> headChildren = headFacet.getChildren();
headChildren.add(res);
super.encodeBegin(context);
}
}
Is it possible to modify "head" facet directly from backing java of my custom component? If so, what am I missing?
Regards