私はJSFアプリケーションを持っています。
- ユーザーがボタンを押すと、その後
- 新しいデータ項目がグラフに追加され、
- チャートを再描画する必要があります。
チャートを塗り直す正しい方法は何ですか?
現在、管理対象Beanには、ボタン押下イベントを処理する次のコードがあります。
public void simulateYearButtonAction()
{
// Update other UI elements here
this.updateChart();
}
private void updateBirthsChart() {
final FacesContext context = FacesContext.getCurrentInstance();
final ChartBean bean =
(ChartBean) context.getApplication().evaluateExpressionGet(
context, "#{chartBean}", ChartBean.class);
final DataStore dataStore = (DataStore)this.simulationFacade;
bean.addBirthsData(this.year-1, dataStore.getValue(DataStoreValueType.BIRTHS_LAST_YEAR));
}
チャートシリーズにChartBean
新しいデータ項目を追加します
public ChartBean() {
createCategoryModel();
}
private void createCategoryModel() {
categoryModel = new CartesianChartModel();
birthsSeries = new ChartSeries();
birthsSeries.setLabel("Рождения");
birthsSeries.set(2012, 0);
categoryModel.addSeries(birthsSeries);
}
public void addBirthsData(final int aYear, final double aNumberOfBirths) {
this.birthsSeries.set(aYear, aNumberOfBirths);
}
ページは次のChartBean
ように使用します。
<p:lineChart id="category" value="#{chartBean.categoryModel}"
legendPosition="e" title="Демографическая динамика" minX="2012" maxX="2112"
style="height:300px;margin-top:20px" />
チャートを今すぐ更新する(そして新しいデータを表示する)必要があることをチャートに伝える方法がわかりません。