2017-04-07 29 views
1

我試圖同時搜索論壇和谷歌廣泛,但我的理解問題,我應該怎麼做這項工作:標籤上primefaces提示barchartseries

PrimeFaces6

我有一個BarchartModel基礎教程在ShowCase中: CODE:SELECT ALL private BarChartModel initStatusBarChart(){ BarChartModel model = new BarChartModel();

ChartSeries statusMessages = new ChartSeries(); 
    statusMessages.setLabel("Label")); 
    statusMessages.set("Some String 1", list1.size()); 
    statusMessages.set("Some String 2", list2.size()); 


    model.addSeries(statusMessages); 
    return model; 
} 

的問題是在渲染,我得到的工具提示

「1,515」和「2,432」,其中515和432分別是列表1和列表2的大小,格式。

如何用值「Some String」1和2替換1和2?曾試圖擴展熒光筆並使用dataTipFormat,但沒有成功。

回答

3

我使用圖表模型的數據提示編輯器(順便說一下,使用Primefaces 6.1)解決了這個問題。我用它來堆積條形圖。 我需要在兩個位置應用此解決方案:支持bean和JSF頁面。

在支持bean我必須設置一個JavaScript函數的名字是這樣的:

barModel.setDatatipEditor("chartDatatipEditor"); 

我試圖在JSF頁面,但沒有效果使用對應的標籤屬性來設置它。

在JSF我插入此JavaScript代碼:

<script type="text/javascript"> 
function chartDatatipEditor(str, seriesIndex, pointIndex, plot) { 
    //console.log('chartDatatipEditor: '+str+" - "+seriesIndex+" - "+pointIndex); 
    var point = seriesIndex+','+pointIndex; 
    #{bean.datatipsJs} 
} 
</script> 

這個js函數獲取圖表座標作爲參數。我concat他們,以便下面的JS代碼變得更容易。 seriesIndex是圖表系列的索引。 pointIndex是圖的X尺度上的索引。

要找出適合您的圖表的正確值,您可以取消上述的console.log行的註釋

插入的JS代碼在所述背襯豆構造是這樣的:

private Map<String, String> chartDatatips; 

public String getDatatipsJs() { 
    StringBuilder sb = new StringBuilder("switch (point) {\n"); 
    for (String point : chartDatatips.keySet()) { 
     sb.append("case '").append(point).append("': return '").append(chartDatatips.get(point)).append("'; break;\n"); 
    } 
    sb.append("default: return 'Unknown point'; break; }"); 
    return sb.toString(); 
} 

地圖chartDatatips具有座標點作爲鍵(例如,「2,1」)和作爲工具提示值。

在圖表設置你顯然需要填寫此地圖有用的細節;-)

像這樣:

chartDatatips.put("2,5", "Label ..."); 
... 

希望這會有所幫助,如果你不已經解決了這一點。

〜Alex