图表蒙皮使用p:布局和仪表板

时间:2011-04-05 15:14:14

标签: jsf primefaces

我似乎无法让我的代码以我想要的方式工作。我正在尝试使用JSF模板在页面上格式化图表。我正在使用JSF2.0,NetBeans 6.9.1,GlassFish 3.0.1和Mojarra 2.0.3以及PrimeFaces 2.2。对于我正在使用的模板。我已将图表放入仪表板面板中。图表本身会显示,但我无法修改它们的大小,或显示饼图图例。我已将样式和脚本标记(在文档和展示中显示)放在其他css引用所在的主模板页面上。我用过这段代码:

<style type="text/css">
        .chartClass {
            width: 250px;
            height: 145px;
        }
    </style>
    <script type="text/javascript">
        var piechartStyle = {
            padding:20,
            legend: {
                display: "right",
                spacing:10
            }
        };
    </script>

在我显示图表的模板客户端页面上,这是我使用过的代码:

    <ui:define name="main_base_content">
                <h:form>
                    <p:dashboard id="board" model="#{dashboardBean.model}">

                        <p:panel id="receipts_chart" header="Receipts Chart" toggleable="true" toggleSpeed="200">
                            <p:pieChart model="#{receiptsChartBean.model}" styleClass="piechartStyle" />
                        </p:panel>
                        <p:panel id="shipments_chart" header="Shipments Chart" toggleable="true" toggleSpeed="200">
                            <p:pieChart model="#{shipmentsChartBean.model}" styleClass="piechartStyle" />
                        </p:panel>

                        <p:panel id="receipts_graph" header="Receipts Graph" toggleable="true" toggleSpeed="200">
                            <p:lineChart model="#{receiptsChartBean.lineModel}" var="line" titleX="Date" titleY="Number of Receipts">
                                <p:chartSeries label="Receipts" value="#{line.receipts}" />
                            </p:lineChart>
                        </p:panel>
                        <p:panel id="shipments_graph" header="Shipments Graph" toggleable="true" toggleSpeed="200">
                            <p:lineChart model="#{shipmentsChartBean.lineModel}" var="line" titleX="Date" titleY="Number of Shipments">
                                <p:chartSeries label="Receipts" value="#{line.receipts}" />
                            </p:lineChart>
                        </p:panel>


                        <p:panel id="volume_received_graph" header="Volume Received - Graph" toggleable="true" toggleSpeed="200">
                            <p:stackedColumnChart model="#{shipmentsChartBean.stackModel}" var="stack" titleX="Date" titleY="Receipts by Weight">
                                <p:chartSeries label="Customer1" value="#{stack.stackedShipments}" />
                                <p:chartSeries label="Customer2" value="#{stack.stackedShipments}" />
                                <p:chartSeries label="Customer3" value="#{stack.stackedShipments}" />
                                <p:chartSeries label="Customer4" value="#{stack.stackedShipments}" />
                            </p:stackedColumnChart>
                        </p:panel>
                        <p:panel id="weight_received_graph" header="Weight Received - Graph" toggleable="true" toggleSpeed="200">
                            <p:stackedColumnChart model="#{receiptsChartBean.stackModel}" var="stack" titleX="Date" titleY="Receipts by Weight">
                                <p:chartSeries label="Customer1" value="#{stack.stackedReceipts}" />
                                <p:chartSeries label="Customer2" value="#{stack.stackedReceipts2}" />
                                <p:chartSeries label="Customer3" value="#{stack.stackedReceipts3}" />
                                <p:chartSeries label="Customer4" value="#{stack.stackedReceipts4}" />
                            </p:stackedColumnChart>
                        </p:panel>
                    </p:dashboard>
                </h:form>
            </ui:define>

图表中填充了虚拟数据。它们显示,但剥皮不起作用。我用Firebug查看了页面,看到尽管将图表的宽度和高度分别设置为250px和145px,它们仍保持默认值。

screenshot of Firebug

我不确定我哪里出错了。图表在布局和/或仪表板中不起作用吗?哦,我也尝试将.chartClass放入cssLayout.css文档中 - 这也不起作用。

1 个答案:

答案 0 :(得分:0)

我想出了如何重新调整图表的大小,它与

无关
<style type="text/css">
    .chartClass {
        width: 250px;
        height: 145px;
    }
</style>

我刚使用了不同图表标签的“height”和“width”属性。注意:对于饼图标记,只有宽度似乎有效。如果我添加高度属性,图表将不会显示。这没关系,因为宽度属性似乎按比例重新调整整个图表的大小(如果您考虑它,这是有意义的 - 它是一个圆圈)。对于其他图表类型,我使用了高度和宽度标签。

我仍然希望使用上面显示的代码同时调整所有图表的大小,但我会使用我所拥有的。