Como colocar um rich:calendar em um h:panelGrid programaticamente? [RESOLVIDO]

Fala galera!

Eu precisava de, a partir do bean, colocar um input com calendário (aquele mesmo padrão do RichFaces - CalendarTag) em um painel grid que possui binding no bean. Eu tentei fazer assim:

package beans.teste;

import java.util.Date;

import javax.faces.component.html.HtmlPanelGrid;

import org.richfaces.taglib.CalendarTag;

public class Data 
{
	private Date data;
	private HtmlPanelGrid painel;

	
	public Data()
	{
		
	}
	
	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}
	
	public String submete()
	{
		System.out.println("Data: " + this.getData().toString());
		return "";
	}

	public HtmlPanelGrid getPainel() 
	{
		this.painel = new HtmlPanelGrid();
		this.montaPainel();
		return painel;
	}

	public void setPainel(HtmlPanelGrid painel) {
		this.painel = painel;
	}
	
	/**
	 * Tenho de produzir este efeito:
	 * <rich:calendar currentDate="" popup="true" datePattern="dd/MM/yyyy" value="#{Data.data}" />		
	 */
	public void montaPainel()
	{
		CalendarTag data = new CalendarTag();
		data.setDatePattern(__datePattern);
		data.setCurrentDate(__currentDate);
		data.setValue(__value);
		data.setPopup(__popup);
		
		this.painel.getChildren().add(data);
		
	}
	

}

mas não deu certo porque o painel (HtmlPanelGrid) recebe no método add apenas derivados de UIComponent. E CalendarTag não é. Alguém sabe como fazer isso? E mais: alguém sabe como produzir aqueles ValueExpressions que serão setados os métodos de data?

Agradeço desde já!

Ninguém respondeu, mas já que eu achei a resposta é legal colocar aqui para que, caso alguém tenha o mesmo problema, possa utilizar isso como auxílio:

package beans.teste;

import java.util.Date;
import javax.faces.application.Application;
import javax.faces.component.html.HtmlPanelGrid;
import javax.faces.context.FacesContext;
import org.richfaces.component.html.HtmlCalendar;

public class Data 
{
	private Date data;
	private HtmlPanelGrid painel;

	
	public Data()
	{
		
	}
	
	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}
	
	public String submete()
	{
		
		System.out.println("Chegou aqui!");
		System.out.println("Data: " + this.getData().toString());
		
		return "";
		
	}

	public HtmlPanelGrid getPainel() 
	{
		this.painel = new HtmlPanelGrid();
		this.montaPainel();
		return painel;
	}

	public void setPainel(HtmlPanelGrid painel) {
		this.painel = painel;
	}
	
	/**
	 * Tenho de produzir este efeito:
	 * <rich:calendar currentDate="" popup="true" datePattern="dd/MM/yyyy" value="#{Data.data}" />		
	 */
	public void montaPainel()
	{
		HtmlCalendar data = new HtmlCalendar();
		data.setDatePattern("dd/MM/yyyy");
		Application app = FacesContext.getCurrentInstance().getApplication();
		data.setValueExpression("value", app.getExpressionFactory().createValueExpression(
		     FacesContext.getCurrentInstance().getELContext(), 
		     "#{Data.data}", Date.class));
		
				
		this.painel.getChildren().add(data);
		
	}
	

}