0
I can’t render the include component that’s inside a panel, I want to render by clicking a button inside a datatable, but when I click the button nothing happens
View
Arts Aptas a Book of Order
<script type="text/javascript">
PrimeFaces.locales['pt_BR'] = {
closeText: 'Fechar',
prevText: 'Anterior',
nextText: 'Próximo',
monthNames: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
dayNames: ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
dayNamesMin: ['D', 'S', 'T', 'Q ', 'Q', 'S ', 'S'],
weekHeader: 'Semana',
FirstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: '',
timeOnlyTitle: 'Só Horas',
timeText: 'Tempo',
hourText: 'Hora',
minuteText: 'Minuto',
secondText: 'Segundo',
currentText: 'Data Atual',
ampm: false,
month: 'Mês',
week: 'Semana',
day: 'Dia',
allDayText: 'Todo dia'
};
</script>
<ui:define name="content">
<h:form id="formArtsAptas">
<p:dataTable value="#{artsAptasLivroOrdemController.artsAptas}"
id="tableArtsAptas"
rowKey="#{item.numeroArt}" var="item"
emptyMessage="Você não possui ARTs aptas a Livro de Ordem"
paginator="true" rows="20">
<f:facet name="header">
ARTs Aptas a Livro de Ordem
</f:facet>
<p:column headerText="Numero da ART" sortBy="#{item.numeroArt}">
<h:outputText value="#{item.numeroArt}" />
</p:column>
<p:column headerText="Tipo de ART" sortBy="#{item.tipoArt.descricao}">
<h:outputText value="#{item.tipoArt.descricao}" />
</p:column>
<p:column headerText="Subtipo de ART" sortBy="#{item.subtipoArt.descricao}">
<h:outputText value="#{item.subtipoArt.descricao}" />
</p:column>
<p:column headerText="Data de Elaboração" sortBy="#{item.dataElaboracao}">
<h:outputText value="#{item.dataElaboracao}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
<p:column headerText="Profissional Contratado" sortBy="#{item.nomeProfissionalContratado}">
</p:column>
<p:column headerText="Empresa Contratada" sortBy="#{item.nomeEmpresaContratada}">
<h:outputText value="#{item.nomeEmpresaContratada}" />
</p:column>
<p:column headerText="Contratante" sortBy="#{item.contrato.identificacaoContratante.nome}">
<h:outputText value="#{item.contrato.identificacaoContratante.nome}" />
</p:column>
<p:column headerText="Proprietário" sortBy="#{item.nomeProprietario}">
<h:outputText value="#{item.nomeProprietario}" />
</p:column>
<p:column headerText="Criar/Ver Livro de Ordem">
<p:commandLink id="criarLivroOrdemButton"
immediate="true"
onclick="dialogLivroOrdem.show();"
action="#{artsAptasLivroOrdemController.criarLivroOrdem()}"
update="#{artsAptasLivroOrdemController.componentes}">
<f:setPropertyActionListener value="#{item}" target="#{artsAptasLivroOrdemController.artApta}"/>
<p:graphicImage alt="Criar/Ver" value="../imagens/site/edit.gif" />
</p:commandLink>
<p:commandLink immediate="true"
update="#{livroOrdemController.componentes}"
action="#{artsAptasLivroOrdemController.exibirLivroOrdem()}">
<f:setPropertyActionListener value="#{item}" target="#{livroOrdemController.art}"/>
<p:graphicImage alt="Ver Livro de Ordem" value="../imagens/site/detail.png" />
</p:commandLink>
</p:column>
</p:dataTable>
<p:dialog id="dialogLivroOrdem"
showEffect="fade" hideEffect="fade"
modal="true" header="Novo Livro de Ordem"
widgetVar="dialogLivroOrdem" minHeight="40">
<h:form id="formCriarNovoLivro">
<b>
<h:outputLabel value="Numero da ART: " />
</b>
<h:outputText id="numeroArt" value="#{artsAptasLivroOrdemController.artApta.numeroArt}" />
<br />
<br />
<b>
<h:outputLabel value="Nome do Proprietário: " />
</b>
<h:outputText id="nomeProprietario" value="#{artsAptasLivroOrdemController.artApta.nomeProprietario}" />
<br />
<br />
<b>
<h:outputLabel value="Endereço da Obra: " />
</b>
<h:outputText id="enderecoObra" value="#{artsAptasLivroOrdemController.artApta.enderecoObraServico.tipoLogradouro} #{artsAptasLivroOrdemController.artApta.enderecoObraServico.logradouro},
Nº #{artsAptasLivroOrdemController.artApta.enderecoObraServico.numero},
CEP: #{artsAptasLivroOrdemController.artApta.enderecoObraServico.cep},
#{artsAptasLivroOrdemController.artApta.enderecoObraServico.bairro},
#{artsAptasLivroOrdemController.artApta.enderecoObraServico.cidade} - #{artsAptasLivroOrdemController.artApta.enderecoObraServico.uf}" />
<br />
<br />
<b>
<h:outputLabel for="dataRealInicioObra" value="Data Real do Início da Obra*: " />
</b>
<p:calendar id="dataRealInicioObra"
required="true"
requiredMessage="Campo Obrigatório"
pattern="dd/MM/yyyy"
locale="pt_BR"
showOn="button"
value="#{artsAptasLivroOrdemController.dataRealInicioObra}"/>
<br />
<br />
<b>
<h:outputLabel for="dataPrevistaConclusaoObra" value="Data Prevista para Conclusão da Obra*: " />
</b>
<p:calendar id="dataPrevistaConclusaoObra"
required="true"
requiredMessage="Campo Obrigatório"
pattern="dd/MM/yyyy"
locale="pt_BR"
showOn="button"
value="#{artsAptasLivroOrdemController.dataPrevistaConclusaoObra}"/>
<br />
<br />
<p:commandButton value="Criar Novo Livro"
action="#{artsAptasLivroOrdemController.criarLivroOrdem()}"
oncomplete="dialogLivroOrdem.hide();"
update="#{artsAptasLivroOrdemController.componentes}">
<f:setPropertyActionListener value="#{artsAptasLivroOrdemController.artApta}" target="#{livroOrdemController.art}"/>
</p:commandButton>
<p:commandButton value="Cancelar"
onclick="dialogLivroOrdem.hide();" />
</h:form>
</p:dialog>
</h:form>
<p:panel rendered="#{artsAptasLivroOrdemController.renderizaLivroOrdem}">
<ui:include id="livroOrdem" src="livroOrdem.xhtml" />
</p:panel>
</ui:define>
Controller
@ManagedBean
@ViewScoped
public class ArtsAptasLivroOrdemController implements Serializable {
@EJB
private ArtDao artDao;
@EJB
private LivroOrdemDao livroOrdemDao;
@EJB
private ObjectDao objectDao;
private List<Art> artsAptas = new ArrayList<Art>();
private Pessoa pessoa;
private LivroOrdem livroOrdem;
private Date dataRealInicioObra;
private Date dataPrevistaConclusaoObra;
private Art artApta;
private String componentes = "@([id$=numeroArt], [id$=nomeProprietario], [id$=enderecoObra], [id$=dataRealInicioObra], [id$=dataPrevistaConclusaoObra])";
private boolean renderizaLivroOrdem;
public ArtsAptasLivroOrdemController() {
}
@PostConstruct
public void inicializar() {
artsAptas.clear();
FacesContext context = FacesContext.getCurrentInstance();
ELResolver resolver = context.getApplication().getELResolver();
LoginControllerOnline controller = new LoginControllerOnline();
controller = (LoginControllerOnline) resolver.getValue(context.getELContext(), null, "loginControllerOnline");
pessoa = controller.getPessoa();
if(pessoa instanceof Profissional) {
Profissional profissional = (Profissional) pessoa;
Map<String, Object> params = new HashMap<String, Object>();
String queryArt = "SELECT a.numeroart, a.dataElaboracao, a.nomeProprietario, a.cepobraservico, a.tipologradouroobraservico, a.logradouroobraservico, a.numeroobraservico, a.bairroobraservico, a.cidadeobraservico, a.ufobraservico, "
+ "p.nome as nomeprofissional, pe.nome as nomeempresa, "
+ "(SELECT nome FROM IdentificacaoContratoArt idcontrato WHERE idcontrato.numeroart = a.numeroart AND sequencialcontrato = 1 AND sequencialidentificacao = 1) AS nomecontratante, "
+ "t.idTipoArt, t.descricao AS tipoArt, st.idSubtipoArt, st.descricao AS subtipoArt, "
+ "a.nomeProfissionalContratado, a.nomeEmpresaContratada "
+ "FROM Art a "
+ "LEFT JOIN pessoa p ON p.codigo = a.codigoprofissionalcontratado "
+ "LEFT JOIN pessoa pe ON pe.codigo = a.codigoempresacontratada "
+ "LEFT JOIN empresa e ON e.codigo = pe.codigo "
+ "LEFT JOIN TipoArt t ON t.idTipoArt = a.tipoArt_idTipoArt "
+ "LEFT JOIN SubtipoArt st ON st.idSubtipoArt = a.subtipoArt_idSubtipoArt "
+ "WHERE (a.codigoprofissionalcontratado = :codigo AND a.databaixa IS NULL) AND (a.datapagamento IS NOT NULL OR a.valortaxa = 0)";
params.put("codigo", profissional.getCodigo());
List<Object[]> arts = objectDao.listPesqQuery(queryArt, params);
for (Object[] o : arts) {
Art artTemp = new Art();
artTemp.setNumeroArt((String) o[0]);
artTemp.setDataElaboracao((Date) o[1]);
artTemp.setNomeProprietario((String) o[2]);
artTemp.getEnderecoObraServico().setCep((String) o[3]);
artTemp.getEnderecoObraServico().setTipoLogradouro((String) o[4]);
artTemp.getEnderecoObraServico().setLogradouro((String) o[5]);
artTemp.getEnderecoObraServico().setNumero((String) o[6]);
artTemp.getEnderecoObraServico().setBairro((String) o[7]);
artTemp.getEnderecoObraServico().setCidade((String) o[8]);
artTemp.getEnderecoObraServico().setUf((String) o[9]);
artTemp.getProfissionalContratado().setNome((String) o[10]);
artTemp.getEmpresaContratada().setNome((String) o[11]);
ContratoArt c = new ContratoArt(artTemp, 1L);
IdentificacaoContratoArt i = new IdentificacaoContratoArt(c, 1L);
i.setTipoIdentificacao(TipoIdentificacao.CONTRATANTE);
i.setNome((String) o[12]);
c.getIdentificacoes().add(i);
artTemp.getContratos().add(c);
artTemp.setTipoArt(new TipoArt());
BigInteger idTipoArt = (BigInteger) o[13];
if (idTipoArt != null) {
artTemp.getTipoArt().setIdTipoArt(idTipoArt.longValue());
}
artTemp.getTipoArt().setDescricao((String) o[14]);
artTemp.setSubtipoArt(new SubtipoArt());
BigInteger idSubtipoArt = (BigInteger) o[15];
if (idSubtipoArt != null) {
artTemp.getSubtipoArt().setIdSubtipoArt(idSubtipoArt.longValue());
}
artTemp.getSubtipoArt().setDescricao((String) o[16]);
artTemp.setNomeProfissionalContratado((String) o[17]);
artTemp.setNomeEmpresaContratada((String) o[18]);
artsAptas.add(artTemp);
}
}
}
public ArtDao getArtDao() {
return artDao;
}
public void setArtDao(ArtDao artDao) {
this.artDao = artDao;
}
public ObjectDao getObjectDao() {
return objectDao;
}
public void setObjectDao(ObjectDao objectDao) {
this.objectDao = objectDao;
}
public List<Art> getArtsAptas() {
return artsAptas;
}
public void setArtsAptas(List<Art> artsAptas) {
this.artsAptas = artsAptas;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public LivroOrdem getLivroOrdem() {
return livroOrdem;
}
public void setLivroOrdem(LivroOrdem livroOrdem) {
this.livroOrdem = livroOrdem;
}
public LivroOrdemDao getLivroOrdemDao() {
return livroOrdemDao;
}
public void setLivroOrdemDao(LivroOrdemDao livroOrdemDao) {
this.livroOrdemDao = livroOrdemDao;
}
public Date getDataRealInicioObra() {
return dataRealInicioObra;
}
public void setDataRealInicioObra(Date dataRealInicioObra) {
this.dataRealInicioObra = dataRealInicioObra;
}
public Date getDataPrevistaConclusaoObra() {
return dataPrevistaConclusaoObra;
}
public void setDataPrevistaConclusaoObra(Date dataPrevistaConclusaoObra) {
this.dataPrevistaConclusaoObra = dataPrevistaConclusaoObra;
}
public Art getArtApta() {
return artApta;
}
public void setArtApta(Art artApta) {
this.artApta = artApta;
}
public String getComponentes() {
return componentes;
}
public void setComponentes(String componentes) {
this.componentes = componentes;
}
public boolean getRenderizaLivroOrdem() {
return renderizaLivroOrdem;
}
public void setRenderizaLivroOrdem(boolean renderizaLivroOrdem) {
this.renderizaLivroOrdem = renderizaLivroOrdem;
}
public void exibirLivroOrdem() {
this.setRenderizaLivroOrdem(true);
}
public void criarLivroOrdem() {
livroOrdem = new LivroOrdem();
livroOrdem.setArt(artApta);
livroOrdem.setDataRealInicioObra(dataRealInicioObra);
livroOrdem.setDataPrevistaConclusaoObra(dataPrevistaConclusaoObra);
livroOrdemDao.salvar(livroOrdem);
this.dataRealInicioObra = null;
this.dataPrevistaConclusaoObra = null;
}
}
tried to update this panel?
<p:panel rendered="#{artsAptasLivroOrdemController.renderizaLivroOrdem}">
– Adriano Gomes
Yes, but everything stayed the same
– user70765