The user first makes a selection, according to this selection my BackingBean builds the corresponding number of radarModels and adds them in an ArrayList. An <h: form> is then updated and the requested radar charts are output to the user with the help of the <ui: repeat> tag. Problem number 1 is that if I want to output more than one radarChart at the same time, all values are output in each radarChart at the same time. Problem number 2 is that every time the form is updated, the radar charts add up and contain more and more data per radar chart.
the radar Chart Output
<h:form id="radarAusgabeFormId">
<ui:repeat value="#{AllManager.radarModelList}" var="radarModel">
<p:radarChart model="#{radarModel}" style="display: block;"/>
</ui:repeat>
</h:form>
The class creating the single radarModels
public class radarChart {
private RadarChartModel radarModel;
public RadarChartModel createRadarModel(String chartLabel,List<Number> listToFillDataVal, List<String> listToFilllabels) {
radarModel = new RadarChartModel();
ChartData data = new ChartData();
RadarChartDataSet radarDataSet = new RadarChartDataSet();
radarDataSet.setLabel(chartLabel);
radarDataSet.setFill(true);
radarDataSet.setBackgroundColor("rgba(157, 108, 100, 0.4)");
radarDataSet.setBorderColor("rgb(157, 108, 100)");
radarDataSet.setPointBackgroundColor("rgb(157, 108, 100)");
radarDataSet.setPointBorderColor("#fff");
radarDataSet.setPointHoverBackgroundColor("#fff");
radarDataSet.setPointHoverBorderColor("rgb(157, 108, 100)");
radarDataSet.setData(listToFillDataVal);
RadarChartDataSet radarDataSet2 = new RadarChartDataSet();
radarDataSet2.setLabel("");
radarDataSet2.setFill(false);
radarDataSet2.setBackgroundColor("rgba(0,0,0,0)");
radarDataSet2.setBorderColor("rgba(0,0,0,0)");
radarDataSet2.setPointBackgroundColor("rgba(0,0,0,0)");
radarDataSet2.setPointBorderColor("rgba(0,0,0,0)");
radarDataSet2.setPointHoverBackgroundColor("rgba(0,0,0,0)");
radarDataSet2.setPointHoverBorderColor("rgba(0,0,0,0)");
List<Number> dataVal2 = new ArrayList<>();
dataVal2.add(100);
dataVal2.add(0);
radarDataSet2.setData(dataVal2);
data.addChartDataSet(radarDataSet);
data.addChartDataSet(radarDataSet2);
data.setLabels(listToFilllabels);
/* Options */
RadarChartOptions options = new RadarChartOptions();
Elements elements = new Elements();
ElementsLine elementsLine = new ElementsLine();
elementsLine.setTension(0);
elementsLine.setBorderWidth(3);
elements.setLine(elementsLine);
options.setElements(elements);
radarModel.setOptions(options);
radarModel.setData(data);
return radarModel;
}
the list used by the ui element
private List<RadarChartModel> radarModelList= new ArrayList<>();
The radarChart after updating it a second time
I hope there is a solution for this problem and I'm looking forward to hear from you.
Best regard, Ben