package org.richfaces.component.focus; import javax.enterprise.context.RequestScoped; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.render.Renderer; import javax.inject.Named; @Named @RequestScoped public class ComponentBean { private UIComponent component; public void setComponent(UIComponent component) { this.component = component; } @SuppressWarnings("unchecked") public <T extends UIComponent> T getComponent() { return (T) component; } @SuppressWarnings("unchecked") public <T extends Renderer> T getRenderer() { FacesContext context = FacesContext.getCurrentInstance(); String componentFamily = component.getFamily(); String rendererType = component.getRendererType(); return (T) context.getRenderKit().getRenderer(componentFamily, rendererType); } }