我使用PrimeFaces,以构建BarChart。我的目标是将一些Testprojects相互比较。每个Bar应该是一个Testproject,您可以从中读取项目所处的不同阶段。 我的问题是:我有一个View,我可以在其中添加新的Testprojects。当我添加一个时,会有一个新的Bar。但是如果我想添加另一个,那么旧的Bar就会被写下来。当然是因为set ...但我想做一些像add(testprojectProducer.getTestproject()。getName(),1)。 图表应该能够记住旧条形图并添加新条形图。有没有办法,或者我必须说得好,并建立我自己的图表?
这是我的代码:
@ManagedBean
public class ChartView implements Serializable {
private static final long serialVersionUID = 9181815723688700642L;
private BarChartModel barModel;
@Inject
private TestprojectProducer testprojectProducer;
@PostConstruct
public void init() {
createBarModel();
new ArrayList<String>();
}
private BarChartModel initBarModel() {
BarChartModel model = new BarChartModel(); //Diagram
ChartSeries cs= new ChartSeries(); // Balken
cs.setLabel("Testprojekte");
cs.set("Testprojekt 1",5);
cs.set(testprojectProducer.getTestproject().getName(), 1);
model.addSeries(cs);
return model;
}
public void createBarModel() {
barModel =initBarModel();
barModel.setTitle("");
barModel.setLegendPosition("");
barModel.setSeriesColors("C80000");
Axis xAxis = barModel.getAxis(AxisType.X);
xAxis.setLabel("Testprojekte");
Axis yAxis = barModel.getAxis(AxisType.Y);
yAxis.setLabel("Phasen");
yAxis.setMin(0);
yAxis.setMax(7);
}
public BarChartModel getBarModel() {
return barModel;
}
public void setBarChartModel(BarChartModel barModel){
this.barModel= barModel;
}
}
我希望我的问题有一个解决方案。谢谢!
答案 0 :(得分:0)
我解决了我的问题。当你使用'HashMap'时,那并不难:
private BarChartModel initBarModel() {
BarChartModel model = new BarChartModel();
ChartSeries cc = new ChartSeries();
cc.setLabel("Testprojekte");
HashMap<Object, Number> groupData = new HashMap<Object, Number>();
for (int i = 0; i < 3; i++) {
groupData.put(testProjectListProducer.getList().get(i).getName(), 2);
}
cc.setData(groupData);
model.addSeries(cc);
return model;
}