Alguem trabalha com componentes personalizados no Facelets?

bom dia galera gostaria de saber se alguem trabalha com componentização não facelets, meu problema é o seguinte
Estou tentando criar um componente que na verdade é a soma de três componentes um

[color=green]PainelGrid,InputText,a4j:commandButton[/color]

Até ai sem problemas só que gostaria de ter a possibilidade de colocar fragmentos de codigo dentro do inputText e do ComandButton tbem como eu faço ?

Sei que tem como fazer inserção anonima mais como o proprio nome diz só tem como em um lugar do código segue o código

<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:c="http://java.sun.com/jstl/core">
	
	<!-- Valores Default para os parametros -->	
	<c:if test="${empty idPainel}">
		<c:set var="idPainel" value="pnlEdt"></c:set>
	</c:if>
	
	<c:if test="${empty inputValue}">
		<c:set var="inputValue" value=""></c:set>
	</c:if>

	<c:if test="${empty idInput}">
		<c:set var="idInput" value="edtEdtButton"></c:set>
	</c:if>	
	
	<c:if test="${empty inputImmediate}">
		<c:set var="inputImmediate" value="true"></c:set>
	</c:if>		

	<c:if test="${empty inputSize}">
		<c:set var="inputSize" value="5"></c:set>
	</c:if>		

	<c:if test="${empty inputMaxLength}">
		<c:set var="inputMaxLength" value="5"></c:set>
	</c:if>
	
	<c:if test="${empty idBtn}">
		<c:set var="idBtn" value="btnEdtButton"></c:set>
	</c:if>
	
	<c:if test="${empty btnValue}">
		<c:set var="btnValue" value=""></c:set>
	</c:if>
	
	<c:if test="${empty btnAjaxSingle}">
		<c:set var="btnAjaxSingle" value="true"></c:set>
	</c:if>																	
	<!--  -->
		
	<h:panelGrid columns="2" style="margin: 0" id="#{idPainel}">
		<h:inputText value="#{inputValue}" id="#{idInput}" immediate="#{inputImmediate}" size="#{inputSize}" maxlength="#{inputMaxLength}">
			<ui:insert />
		</h:inputText>	
		<a4j:commandButton id="#{idBtn}" value="#{btnValue}" ajaxSingle="#{btnAjaxSingle}"></a4j:commandButton>	
	</h:panelGrid>    
</ui:composition>

Pergunta como eu insiro a mesma ta <ui:insert /> no comandButton tbem teria como, e como na chamada seria ?