无法正确实现Primefaces图表

时间:2012-07-31 20:04:24

标签: javascript jsf jsf-2 charts primefaces

我想实现Primefaces图表。但我未能正确设置图表的图例:

enter image description here

这是我用来构建图表的代码:

<h:form>

    <p:barChart id="basic" value="#{DashboardController.categoryModel}" legendPosition="ne"  
                title="Accounts and Groups" min="0" max="#{DashboardController.chartMaxSize}" style="height:400px"
                shadow="true" barPadding="90" seriesColors="4D94FF, 1975FF, 005CE6, 0047B2" 
                yaxisLabel="Size"/>  
</h:form>

Java代码:

private void createCategoryModel() throws SQLException, Exception
    {
        categoryModel = new CartesianChartModel();

        // Active Accounts

        ChartSeries chart = new ChartSeries();
        chart.setLabel("Active Accounts");

        chart.set("Active Accounts", countDBActiveAccounts());

        // Blocked Accounts

        chart.setLabel("Blocked Accounts");

        chart.set("Blocked Accounts", countDBBlockedAccounts());


        // Active Groups

        chart.setLabel("Active Groups");

        chart.set("Active Groups", countDBActiveGroups());


        // Blocked Groups

        chart.setLabel("Blocked Groups");

        chart.set("Blocked Groups", countDBBlockedGroups());

        categoryModel.addSeries(chart);



    }

你能帮我正确构建图表吗?

P.S从@Ravi提出的代码我得到这个图表:

enter image description here

1 个答案:

答案 0 :(得分:2)

你应该像这样使用ChartSeries的单独实例

private void createCategoryModel() throws SQLException, Exception
{
    categoryModel = new CartesianChartModel();

    // Active Accounts

    ChartSeries actAcc = new ChartSeries();
    actAcc .setLabel("Active Accounts");

    actAcc.set("Active Accounts", countDBActiveAccounts());
    actAcc.set("Blocked Accounts", 0);
    actAcc.set("Active Groups", 0);
    actAcc.set("Blocked Groups", 0);

    // Blocked Accounts

    ChartSeries blocAcc = new ChartSeries();
    blocAcc.setLabel("Blocked Accounts");

    blocAcc.set("Active Accounts", 0);
    blocAcc.set("Blocked Accounts", countDBBlockedAccounts());
    blocAcc.set("Active Groups", 0);
    blocAcc.set("Blocked Groups", 0);


    // Active Groups

    ChartSeries actGrp = new ChartSeries();
    actGrp.setLabel("Active Groups");

    actGrp.set("Active Accounts", 0);
    actGrp.set("Blocked Accounts", 0);
    actGrp.set("Active Groups", countDBActiveGroups());
    actGrp.set("Blocked Groups", 0);


    // Blocked Groups

    ChartSeries blocGrp = new ChartSeries();
    blocGrp.setLabel("Blocked Groups");

    blocGrp.set("Active Accounts", 0);
    blocGrp.set("Blocked Accounts", 0);
    blocGrp.set("Active Groups", 0);
    blocGrp.set("Blocked Groups", countDBBlockedGroups());

    categoryModel.addSeries(actAcc );
    categoryModel.addSeries(blocAcc);
    categoryModel.addSeries(actGrp);
    categoryModel.addSeries(blocGrp);

}