Dúvida com JSF e Tomahawk (t:dataTable)

2 respostas
rodrigo_ctba

Caros colegas.

Estou trabalhando em uma aplicação contruída com JSF e MyFaces/Tomahawk. Cheguei a um ponto que preciso implementar um DataTable (t:dataTable) e um Popup (t:popup) deve ser mostrado quando o usuário passar com o mouse sobre a linha. Bom até ai beleza, sem problemas. Implementei isso esta 100%.

Mas como vcs. sabem um certo usuário pediu para mostrar mais dados nesse popup, ou seja antes havia um relacionamento de um-pra-um. Agora estou com um relacionamento de um-pra-n, tive que fazer um ajuste no relacionamento e agora o meu popup recebe um objeto do tipo List (uma lista).

A pergunta é a seguinte, como fazer para tratar essa lista e mostrar nesse popup?

  • Tem como criar um método que recebe esta Lista e retornar pra ele?
  • Existe alguma forma de criar um Iterator ou um forEach. (já tentei com o c:forEach) mas ele não reconhece os itens?
  • Pensei em colocar um t:dataList ou até mesmo outro t:dataTable, mas não fiz nada.

Bom, a dúvida é essa !!!

t+

2 Respostas

D

Eu faço algo parecido com o richfaces e sugiro vc colocar um dataTable na popup. Isso vai facilitar bem sua vida e por ser diversos dados apresentados, um dataTable vai cair como uma luva pq vc ordenar eles e ainda já botar uma paginação :smiley:

Pra fazer é bem simples…cada linha da sua tabela é um objeto, correto? Por ser um relacionamento, eu acredito que dentro desse objeto, vc tenha uma coleção dos outros objetos…vamos lá…no seu managedBean vc cria um método que obtém o objeto da linha selecionada e depois vai retornar a colecao de objetos para exibição na popup :wink:

[]'s

rodrigo_ctba

Beleza…

coloquei um t:dataTable dentro do t:popup

<t:popup id="b"
                styleClass="popup"
                closePopupOnExitingElement="true"
                closePopupOnExitingPopup="true"
                displayAtDistanceX="10"
                displayAtDistanceY="10" >
				<h:outputText id="tt" value="#{varfaixaPeriodo.faixa_Horario.fxh_Nome}"/>                
                <f:facet name="popup">
                    <h:panelGroup>
                        <h:panelGrid columns="1" >
                        <t:dataTable border="0" cellpadding="2" cellspacing="0" id="table2" value="#{varfaixaPeriodo.faixa_Horario.faixa_periodo}" var="periodo">
								<t:column id="pe1">
									<f:facet name="header">
										<t:outputText id="txt_p1" styleClass="outputText" value="Intervalo Inicio"></t:outputText>
									</f:facet>
										<t:outputText styleClass="outputText" id="text21" value="#{periodo.fxp_InicioPeriodo}">
											<f:convertDateTime type="time" timeStyle="short"/>
										</t:outputText>
								</t:column>
								<t:column id="pe2">
									<f:facet name="header">
										<t:outputText id="txt_p2" styleClass="outputText" value="Intervalo Termino"></t:outputText>
									</f:facet>
									<t:outputText styleClass="outputText" id="text22" value="#{periodo.fxp_TerminoPeriodo}">
													<f:convertDateTime type="time" timeStyle="short"/>
									</t:outputText>
								</t:column>
								<t:column id="pe3">
									<f:facet name="header">
										<t:outputText id="txt_p3" styleClass="outputText" value="Mobilidade Inicio"></t:outputText>
									</f:facet>
										<t:outputText styleClass="outputText" id="text23" value="#{periodo.fxp_MobilidadeAntesInicio}">
											<f:convertDateTime type="time" timeStyle="short"/>									
										</t:outputText>
								</t:column>
								<t:column id="pe4">
									<f:facet name="header">
										<t:outputText id="txt_p4" styleClass="outputText" value="Mobilidade Inicio"></t:outputText>
									</f:facet>
									<t:outputText styleClass="outputText" id="text24" value="#{periodo.fxp_MobilidadeAntesInicio}">
											<f:convertDateTime type="time" timeStyle="short"/>									
									</t:outputText>
								</t:column>
								<t:column id="pe5">
									<f:facet name="header">
										<t:outputText id="txt_p5" styleClass="outputText" value="Mobilidade Fim"></t:outputText>
									</f:facet>
									<t:outputText styleClass="outputText" id="text25" value="#{periodo.fxp_MobilidadeAntesTermino}">
										<f:convertDateTime type="time" timeStyle="short"/>																		
									</t:outputText>
								</t:column>
								
								
						</t:dataTable>
                        </h:panelGrid>
                    </h:panelGroup>
                </f:facet>
            </t:popup>

Recomendo, ficou bom e com uma performance boa!!!

Criado 28 de julho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 2
Participantes 2