繁体   English   中英

PrimeFaces图表交互模式-在Growl框中显示额外的bean信息

[英]PrimeFaces Chart Interactive Mode - Displaying Extra bean Info In Growl Box

在Primefaces 4(如http://www.primefaces.org/showcase/ui/interactiveCharts.jsf)中 ,当我们单击图表中的相应条形时,有2种方法返回(检索) ItemSerie索引。

我想在咆哮框中显示一些额外的实体bean信息(例如名称,值,性别等)。 我能做到吗?

这是托管bean的(主要)代码(请参见最后一个方法):

@ManagedBean
@RequestScoped
public class ChartBean {

public ChartBean() {
}

private final Map<Integer, Map<String, Number>> HorasRealizadasPorFunci = new HashMap<>();
private final Map<Integer, Map<String, Number>> HorasOrcadasPorFunci = new HashMap<>();
private CartesianChartModel cartesianChartModel;

@EJB
private OrcFacade of;

@PostConstruct
private void initialize() {
//see code through link above
}

private void createCartesianChartModel() {
//see code through link above
}

private void addOrUpdateRlz(Integer matricula, String funci, Number horas) {
//see code through link above
}

private void addOrUpdateOrc(Integer matricula, String funci, Number horas) {
//see code through link above
}

private void populateMap(Map<Object, Number> map, Map<String, Number> data) {
//see code through link above
}

public CartesianChartModel getCartesianChartModel() {
//see code through link above
}

public void setCartesianChartModel(CartesianChartModel cartesianChartModel) {
//see code through link above
}

public void itemSelect(ItemSelectEvent event) {
    /* Primefaces simple example:
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Item selected",
    "Item Index: " + event.getItemIndex() + ", Series Index:" + event.getSeriesIndex());
    FacesContext.getCurrentInstance().addMessage(null, msg);*/

    //implement code to get bean info here
}

}

这是呈现图表的部分JSF:

<p:barChart id="barStacked" value="#{chartBean.cartesianChartModel}">
   <p:ajax event="itemSelect" listener="#{chartBean.itemSelect}" update="msg" />
</p:barChart>
<p:growl id="msg" />

有关该代码的更多详细信息,请访问数据库的PrimeFaces图表

您可以尝试从ItemSelectEvent对象获取CartesianChartModel组件吗?

Integer seriesIndex = event.getSeriesIndex();

CartesianChartModel cModel = (CartesianChartModel((org.primefaces.component.chart.Chart)event.getSource()).getModel();

然后,您可以执行以下操作:

List Map<String, Number> cData= cModel.getData().get(seriesIndex);

从那里可以使用event.getItemIndex()找到ChartSeries对象。 ChartSeries的Javadoc为您要查找的所有属性提供了一些吸气剂。

mbeddedsoft。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM