kiwoxox
Janeiro 19, 2012, 11:22pm
#1
Boa noite galera do forum, seguinte na pagina que estou desenvolvendo eu faço o upload do arquivo e tenho um botão de ação para remover um ponto… Ele chega a remover o ponto eu mando fazer um update da tela mais ele não atualiza a tela… testando ele remover o ponto normalmente e caso você de um F5, ele retira o ponto da tela e do gráfico também, alguém saberia me dizer o que posso fazer para que a tela atualize sozinha, ou de um update no Gráfico e na Tabela…
HTML
<h:body>
<h:form enctype="multipart/form-data">
<p:fileUpload id="fileupload" fileUploadListener="#{Controle.importaArquivo}" widgetVar="fileupload"
label="Selecionar" uploadLabel="Enviar" cancelLabel="Cancelar"
update="growl,tabela,graficoMedia,graficoAmplitude" mode="advanced" />
<p:growl id="growl" showDetail="true" life="3000"/>
<p:dataTable id="tabela" var="Ponto" value="#{Controle.listarPontos}">
<p:column>
<f:facet name="header">
<h:outputText value="Posição" />
</f:facet>
<h:outputText value="#{Ponto.posicao}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Média" />
</f:facet>
<h:outputText value="#{Ponto.media}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Amplitude" />
</f:facet>
<h:outputText value="#{Ponto.variabilidade}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoDesvioPadrao}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoAmplitude}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoMedia}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<p:commandButton value="Excluir" action="#{Controle.excluirPonto}" update="tabela,graficoAmplitude" >
<f:ajax render="tabela" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:lineChart id="graficoAmplitude" value="#{Controle.criaPlanoCartesianoAmplitude}" legendPosition="e"
title="Linear Chart" minY="0" maxY="0.06" style="height:500px"/>
</h:form>
</h:body>
Controle
@ManagedBean(name = "Controle")
@SessionScoped
public class Controller implements Serializable{
private Variaveis variavel;
private DataModel listaDataModel;
private ConverteModVariaveis Conver = new ConverteModVariaveis();
private List<Variaveis> listaVariaveis = new ArrayList<Variaveis>();
public void importaArquivo(FileUploadEvent evento) throws IOException{
listaVariaveis = Conver.CriaLista(evento);
}
public DataModel getListarPontos (){
listaDataModel = new ListDataModel(listaVariaveis);
// Verificar a lista para a passagem do parametro
// for (int i=0;i<listaVariaveis.size();i++)
// {
// variavel = listaVariaveis.get(i);
// System.err.println("Atributo"+variavel.isExclusaoAmplitude());
// }
System.err.println(listaVariaveis.size());
// variavel = (Variaveis) listaVariaveis.get(1);
return listaDataModel;
}
public void excluirPonto(){
Variaveis temp = (Variaveis)listaDataModel.getRowData();
System.err.println(listaVariaveis.size());
listaVariaveis.remove(temp);
System.err.println(listaVariaveis.size());
System.err.println("Passei!"+temp.getPosicao());
}
public CartesianChartModel getCriaPlanoCartesianoMedia(){
CriaGrafico b = new CriaGrafico();
return b.criaGraficoMedia(listaVariaveis);
}
public CartesianChartModel getCriaPlanoCartesianoAmplitude(){
CriaGrafico a = new CriaGrafico();
return a.criaGraficoAmplitude(listaVariaveis);
}
}
[code]<h:body>
<h:form enctype="multipart/form-data" update=":form:display">
<p:fileUpload id="fileupload" fileUploadListener="#{Controle.importaArquivo}" widgetVar="fileupload"
label="Selecionar" uploadLabel="Enviar" cancelLabel="Cancelar"
update="growl,tabela,graficoMedia,graficoAmplitude" mode="advanced" />
<p:growl id="growl" showDetail="true" life="3000"/>
<p:dataTable var="Ponto" value="#{Controle.listarPontos}" id="display" >
<p:column>
<f:facet name="header">
<h:outputText value="Posição" />
</f:facet>
<h:outputText value="#{Ponto.posicao}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Média" />
</f:facet>
<h:outputText value="#{Ponto.media}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Amplitude" />
</f:facet>
<h:outputText value="#{Ponto.variabilidade}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoDesvioPadrao}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoAmplitude}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir Grafico" />
</f:facet>
<p:selectBooleanCheckbox value="#{Ponto.exclusaoMedia}" immediate="TRUE" validatorMessage="Excluido" converterMessage="Falhou"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<p:commandButton value="Excluir" action="#{Controle.excluirPonto}" update="tabela,graficoAmplitude" >
<f:ajax render="tabela" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:lineChart id="graficoAmplitude" value="#{Controle.criaPlanoCartesianoAmplitude}" legendPosition="e"
title="Linear Chart" minY="0" maxY="0.06" style="height:500px"/>
</h:form>
</h:body>
[/code]
pronto meu chapa cola isso l[a e testa
kiwoxox
Janeiro 20, 2012, 3:26am
#3
Fala michelorth_92 então fiz isso dai que você mandou e não funcionou não, mesmo utilizando seu código ou tentando utilizar o meu não funcionou, e o form não possui o método de update… não sei mais o que fazer ja fiz várias coisas e não adianta, ele não atualiza a tela sem que eu aperte F5
entao eu tenho aki e fiz tmb… estava com o mesmo problema… vo posta o codigo que eu fiz… ai voce ve c da pra tirra como exemplo…
estou usando xhtml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Arquivos</title>
</h:head>
<h:body>
<h:form enctype="multipart/form-data" update=":form:display">
<div align="center">
<p:panel header="Arquivos" style="width:1050px">
<ui:include src="/paginas/Menu.xhtml" />
<p:messages id="mensagens" showSummary="true" />
<p:fileUpload
fileUploadListener="#{arquivosBean.fileUploadAction}"
update="mensagens" multiple="true" />
<br />
´
<p:dataTable var="arquivos" value="#{arquivosBean.listArquivos}"
widgetVar="arquivosTable"
emptyMessage="Nenhum arquivos Encontrado Nessas Condições" rowStyleClass="#{empty rowIx or rowIx
mod 2 ne 0 ? 'even-row' : 'odd-row'}"
rowIndexVar="rowIx" id="display" >
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Procurar em todos os campos:" />
<p:inputText id="globalFilter" onkeyup="arquivosTable.filter()"
style="width:150px" />
</p:outputPanel>
</f:facet>
<p:column filterBy="#{arquivos.id}" headerText="Id" footerText="Id"
filterMatchMode="contains">
<h:outputText value="#{arquivos.id}" />
</p:column>
<p:column filterBy="#{arquivos.nome}" headerText="Descrição"
footerText="Descrição" filterMatchMode="contains">
<h:outputText value="#{arquivos.nome}" />
</p:column>
<p:column filterBy="#{arquivos.tipo}" headerText="Tipo"
footerText="Tipo" filterMatchMode="contains">
<h:outputText value="#{arquivos.tipo}" />
</p:column>
<p:column filterBy="#{arquivos.tamanho}" headerText="Tamanho"
footerText="Tamanho" filterMatchMode="contains">
<h:outputText value="#{arquivos.tamanho}" />
</p:column>
<p:column style="width:100px">
<h:panelGrid columns="2" styleClass="actions" cellpadding="2">
<h:commandButton image="/imagens/icones/download.gif" title="Download">
<f:setPropertyActionListener value="#{arquivos.id}"
target="#{arquivosBean.arquivo.id}" />
<p:fileDownload value="#{arquivosBean.file}" />
</h:commandButton>
<h:commandButton image="/imagens/icones/excluir.gif" title="Excluir" action="#{arquivosBean.remove}" >
<f:setPropertyActionListener value="#{arquivos.id}"
target="#{arquivosBean.arquivo.id}"/>
</h:commandButton>
</h:panelGrid>
</p:column>
</p:dataTable>
<style>
.ui-datatable .ui-datatable-data .even-row td {
background-color:#fcefa1;
border-right: solid 0px #4e6769;
}
.ui-datatable .ui-datatable-data .odd-row td {
background-color:#f7f7f7;
border-right: solid 0px #4e6769;
}
</style>
</p:panel>
</div>
</h:form>
</h:body>
</html>
No seu método de excluir o ponto, coloca assim:
public String excluirPonto(){
// faz tudo que tem que fazer
return null;
}
E só adicionado oq disse acima, para que o código que eu postei funcione, no seu botão remover coloque ajax=“false”
pior no codigo que eu te passei esqueci de colocar ajax=“false” faça isso e teste
kiwoxox
Janeiro 20, 2012, 12:10pm
#8
Pessoal, mais uma vez realmente agradeço vocês, consegui resolver o problema aqui do jeito que vocês explicaram, por motivos de consulta estou postando o código novamente…
Controller (Mudei o retorno de void para String com a passagem do parametro null)
public String excluirPonto(){
Variaveis temp = (Variaveis)listaDataModel.getRowData();
listaVariaveis.remove(temp);
return null;
}
XHTML (Apliquei apenas o ajax=“false”)
<p:column>
<f:facet name="header">
<h:outputText value="Excluir"/>
</f:facet>
<p:commandButton value="Excluir" action="#{Controle.excluirPonto}" update="tabela,graficoAmplitude" ajax="false" />
</p:column>
Mais uma vez, realmente agradeço a ajuda de todos aqui no forum…
Aproveitando para perguntar, existe alguma opção que assim que eu selecionar um check box, ele mude o valor booleano da variável? sem ter que clicar em um botão?
1 curtida