Olá,
A DataTable não está atribuindo ao objeto a row selecionada, ae quando vou exibir o Dialog ele não exibe nada.
Página
<h:form id="form">
<p:fieldset legend="Scoredcards">
<p:panel>
<h:panelGrid columns="5" cellpadding="1" style="height:50px;text-align: left;">
<h:outputText value="Planejamento: " style="font-size: 12px;width: 200px;" />
<h:selectOneMenu id="planejamento" value="#{peBean.selecionado}" style="height: 20px;font-size: 12px;" >
<f:selectItem itemLabel="Selecione um planejamento." itemValue="0" />
<f:selectItems value="#{bscBean.lista}" var="pe" itemLabel="#{pe.nome}" itemValue="#{pe.id}"/>
</h:selectOneMenu>
<h:outputText value="Data: " style="font-size: 12px;width: 200px" />
<p:calendar id="cal" style="font-size: 12px; width: 30px;height:130px;" locale="pt" mode="popup" showOn="button" navigator="true" value="#{peBean.data}" pattern="dd/MM/yyyy" showButtonPanel="true" mindate="01/01/2012"/>
<p:commandButton value="Carregar" id="ajax" actionListener="#{peBean.gerarLista()}" update=":form:teste" />
</h:panelGrid>
<h:panelGrid id="teste" width="100%">
<p:tabView value="#{peBean.listaPe.listaPerspectivas}" var="perspectiva" dynamic="true" >
<p:tab title="#{perspectiva.nome}">
<h:panelGrid columns="2" >
<h:column>
<p:meterGaugeChart label="#{perspectiva.nome} : #{perspectiva.valorAcumulado}%" value="#{peBean.pegarModelo(perspectiva.valorAcumulado)}" showTickLabels="true" labelHeightAdjust="90" intervalOuterRadius="65" seriesColors="cc6666,E7E658,93b75f,66cc66 " style="width:280px;height:190px;font-size: 12px;"/>
</h:column>
<h:column>
<p:dataTable id="objTable" style="font-size: 11px;" value="#{perspectiva.listaObjetivos}" var="objetivo" rowKey="#{objetivo.id}" selection="#{peBean.objetivoSelect}" selectionMode="single" >
<f:facet name="header">
Objetivos Estratégicos
</f:facet>
<p:column headerText="Status">
<p:graphicImage value="/imagens/sinalizadores/#{objetivo.status}"/>
</p:column>
<p:column headerText="Descrição" width="300" style="text-align: left;">
#{objetivo.nome}
</p:column>
<p:column headerText="% Acum.">
#{objetivo.valorAcumulado}%
</p:column>
<p:column headerText="% Real">
#{objetivo.valorMes}%
</p:column>
<f:facet name="footer">
<p:commandButton id="objButton" value="Visualizar detalhes do objetivo selecionado" icon="ui-icon-search" update=":form:objGrid" oncomplete="objDialog.show()"/>
</f:facet>
</p:dataTable>
</h:column>
</h:panelGrid>
</p:tab>
</p:tabView>
</h:panelGrid>
<p:dialog id="dialogObjetivos" modal="true" header="Detalhes do Objetivo" widgetVar="objDialog" resizable="false" width="1280" height="500" showEffect="clip" hideEffect="clip">
<h:panelGrid id="objGrid" columns="1">
<h:outputText value="#{peBean.objetivoSelect.nome}" />
</h:panelGrid>
</p:dialog>
</p:panel>
</p:fieldset>
</h:form>
Bean
@ManagedBean(name = "peBean")
@SessionScoped
public class PlanejamentoEstrategicoBean implements Serializable {
private String selecionado = "0";
private ObjetivoEstrategico objetivoSelect;
private Indicador indicadorSelect;
private PlanejamentoEstrategico listaPe;
private MeterGaugeChartModel modelMGCM;
private Date data = DataUtil.getDateAgora();
public PlanejamentoEstrategicoBean() throws Exception {
gerarLista();
}
public void gerarLista() throws Exception {
PlanejamentoEstrategicoDao dao = new PlanejamentoEstrategicoDao();
listaPe = dao.getPlanejamento(Integer.parseInt(selecionado), data);
}
public MeterGaugeChartModel pegarModelo(String valor) {
List<Number> intervals = new ArrayList<Number>();
intervals.add(70);
intervals.add(90);
intervals.add(100);
intervals.add(120);
setModelMGCM(new MeterGaugeChartModel(Double.parseDouble(valor.replace(",", ".")), intervals));
return getModelMGCM();
}
public String getSelecionado() {
return selecionado;
}
public void setSelecionado(String selecionado) {
this.selecionado = selecionado;
}
public PlanejamentoEstrategico getListaPe() {
return listaPe;
}
public void setListaPe(PlanejamentoEstrategico listaPe) {
this.listaPe = listaPe;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public ObjetivoEstrategico getObjetivoSelect() {
return objetivoSelect;
}
public void setObjetivoSelect(ObjetivoEstrategico objetivoSelect) {
this.objetivoSelect = objetivoSelect;
}
public Indicador getIndicadorSelect() {
return indicadorSelect;
}
public void setIndicadorSelect(Indicador indicadorSelect) {
this.indicadorSelect = indicadorSelect;
}
public MeterGaugeChartModel getModelMGCM() {
return modelMGCM;
}
public void setModelMGCM(MeterGaugeChartModel modelMGCM) {
this.modelMGCM = modelMGCM;
}
}