JSF 2 - como carregar objeto de uma lista dentro de um objeto no modal do primefaces?

0 respostas
kdashu

Ola pessoal, blz?

Estou fazendo um modal de edição de registros de uma datatable de onibus que funciona normalmente quando a tabela é carregada por uma lista que é um atributo direto do MB. O caso é que agora preciso que o modal carregue os dados do objeto de uma lista do objeto pai, por exe: value=#{llinhaManager.linha.itinerarios}

Segue abaixo como esta funcionando com sentidos de uma linha, para exemplificar:

Tabela:

<p:dataTable id="tabelaDeSentidos" value="#{linhaManager.sentidos}" var="sentido" paginator="true" paginatorAlwaysVisible="false" rows="10"
			paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
			rowsPerPageTemplate="5,10,15">
			
			<p:column headerText="Id" width="80">							
				<p:commandLink update=":form-dialog-sentido:dialog-sentido" value="#{sentido.id}" oncomplete="widgetSentido.show();" immediate="true">								
					<f:setPropertyActionListener target="#{linhaManager.sentido}" value="#{sentido}" />
				</p:commandLink>
			</p:column>

			<p:column headerText="Descrição" width="80">
				<p:commandLink update=":form-dialog-sentido:dialog-sentido" value="#{sentido.descricao}" oncomplete="widgetSentido.show();" immediate="true">								
					<f:setPropertyActionListener target="#{linhaManager.sentido}" value="#{sentido}" />
				</p:commandLink>																
			</p:column>

			<p:column headerText="Data Referência" width="80">
				<h:outputText value="#{sentido.dataReferencia}">
					<f:convertDateTime pattern="dd/MM/yyyy" />
					<f:param name="idSentido" value="#{sentido.id}" />
				</h:outputText>
			</p:column>

			<p:column headerText="Excluir" width="80">
				<p:commandLink value="Excluir" actionListener="#{linhaManager.excluirSentido(sentido)}" update="tabelaDeSentidos" />
			</p:column>
									
		</p:dataTable>

Modal:

<h:form id="form-dialog-sentido">
		<p:dialog id="dialog-sentido" width="80%" header="Adicionar Sentido à Linha" modal="true" widgetVar="widgetSentido">

			<h:panelGrid columns="1" id="sentidoTabGrid">
				<p:fieldset legend="Dados do Sentido:" style="width: 100%;">
				
					<p:outputLabel for="sentidoCodigo" value="#{msgs.sentidoCodigo}" />
					<p:inputText id="sentidoCodigo"
						value="#{linhaManager.sentido.id}"/>

					<p:outputLabel for="sentidoDataReferencia"
						value="#{msgs.sentidoDataReferencia}" />
					<stpoa:data-field id="sentidoDataReferencia"
						value="#{linhaManager.sentido.dataReferencia}" />

					<p:outputLabel for="sentidoDescricao"
						value="#{msgs.sentidoDescricao}" />
					<p:inputText id="sentidoDescricao"
						value="#{linhaManager.sentido.descricao}" />

				</p:fieldset>
				<br />

				<p:commandButton id="adicionarSentidoButton" value="Ok"						
					actionListener="#{linhaManager.adicionarSentido(linhaManager.sentido)}"
					oncomplete="widgetSentido.hide();"
					update=":form-principal:tabView:tabelaDeSentidos" />
					
				<p:commandButton id="cancelarSentidoButton" value="Cancelar"
					onclick="widgetSentido.hide(); return false;" type="button" />

			</h:panelGrid>

		</p:dialog>
	</h:form>

Assim, com o <f:setPropertyActionListener target="#{linhaManager.sentido}" value="#{sentido}" /> consigo carregar normalmente os dados no dialog do primefaces e editá-los.

Mas quando tento carregar os dados de um itinerário, que faz parte de uma lista da linha, não sei como setar o <f:setPropertyActionListener target="">

Alguma dica?

Criado 18 de julho de 2013
Respostas 0
Participantes 1