I can not render a component after clicking a button

0

I can not render the include component that is inside a panel, I want to render when clicking a button inside a datatable, but when I click the button nothing happens

View

             ARTs Fit to Order Book     

<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;    
}    

}

    
asked by anonymous 26.11.2018 / 00:35

0 answers