Boa tarde,
Estou com um problema para exportar um gráfico, na verdade consegui fazer funcionar perfeitamente em um outro exemplo, porém neste caso não consigo exportar, ele aparece apenas a imagem vazia sem o gráfico em imagem.
Descobri meu erro:Estou chamando o widgetVar no script porém o form não possui um ID. No caso o meu form agora possui o ID “hform”. Como faço para chamar o hform:teste (WidgetVar) dentro do script?
Segue os meus arquivos:
[code]<?xml version="1.0" encoding="UTF-8"?>
<script type="text/javascript">
function exportChartAmp() {
//export image
$('#output').empty().append(a.exportAsImage());
//show the dialog
dlg.show();
}
</script>
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="lib/layout.css"/>
<script type="text/javascript" src="lib/load.js"></script>
<title>Controle por Variável</title>
</h:head>
<h:body>
<h:form style="font-size:x-small">
<p:fileUpload id="fileupload" fileUploadListener="#{ControleV.importaArquivo}" widgetVar="fileupload"
label="Selecionar" uploadLabel="Enviar" cancelLabel="Cancelar"
update="growl,graficoAmplitude" mode="advanced" style="width:800px"/>
<p:growl id="growl" showDetail="true" life="3000"/>
<p:panel style="text-align:center;border-spacing:0">
<p:commandButton value="Exibir Gráfico" type="button" onclick="loadGraficoAmplitude()"/>
</p:panel>
<!--Remote Command-->
<p:remoteCommand name="loadGraficoAmplitude" update="PainelGraficoAmplitude"> <f:setPropertyActionListener value="#{true}" target="#{requestScope.shouldRender}" />
<p:outputPanel id="PainelGraficoAmplitude" layout="block" style="margin:10px">
<p:lineChart id="graficoAmplitude" value="#{ControleV.criaPlanoCartesianoAmplitude}" legendPosition="e"
title="Gráfico Amplitude" rendered="#{requestScope.shouldRender}" widgetVar="a" />
</p:outputPanel>
</p:remoteCommand>
<!-- Painel e Controle de Graficos-->
<p:commandButton type="button" value="Exportar" icon="ui-icon-extlink" onclick="exportChartAmp()"/>
<p:dialog widgetVar="dlg" showEffect="fade" modal="true" header="Imagem Gráfico">
<p:outputPanel id="output" layout="block" style="width:800px;height:600px"/>
</p:dialog>
</h:form>
</h:body>
[/code]
E o bean:
@ManagedBean(name = "ControleV")
@SessionScoped
public class ControllerV implements Serializable{
private AmostraV amostra = new AmostraV();
private ListDataModel lista;
public void importaArquivo(FileUploadEvent evento) throws IOException{
ConverteModVariaveis Conver = new ConverteModVariaveis();
amostra = Conver.CriaLista(evento);
}
public DataModel getListarPontos (){
lista = (ListDataModel) amostra.getdataModelVariaveis();
return lista;
}
public String excluirPonto(){
Variaveis temp = (Variaveis) lista.getRowData();
amostra.removePontoLista(temp);
return null;
}
public String atualizarPonto(){
Variaveis temp = (Variaveis) lista.getRowData();
amostra.atualizaPontoLista(lista.getRowIndex(),temp);
return null;
}
public String clearData(){
amostra = new AmostraV();
return null;
}
public CartesianChartModel getCriaPlanoCartesianoMediaAmplitude(){
return CriaGraficoV.graficoMediaAmplitude(amostra);
}
public CartesianChartModel getCriaPlanoCartesianoAmplitude(){
return CriaGraficoV.graficoAmplitude(amostra);
}
public CartesianChartModel getCriaPlanoCartesianoDesvioPadrao(){
return CriaGraficoV.graficoDesvioPadrao(amostra);
}
public CartesianChartModel getCriaPlanoCartesianoMediaDesvioPadrao(){
return CriaGraficoV.graficoMediaDesvioPadrao(amostra);
}
}