0

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 The radarChart output after updating it 2 times

I hope there is a solution for this problem and I'm looking forward to hear from you.

Best regard, Ben

Benko
  • 11
  • 4

1 Answers1

0

all radarChartModels were pointing on the same list, after giving every object its own list the issue is fixed.

Benko
  • 11
  • 4