在我的Dolphin Platform项目中,XYChart.Series对象包含一系列XYChart.Data,似乎无法同步其数据模型。
我的viewbinder将BarChart的数据与PM绑定并将其设置为BarChartObjekt
public class GesamtErgebnisViewBinder extends AbstractViewBinder<GesamtErgebnisModel> {
@Override
protected void init() {
....
ObservableList<XYChart.Series<String, Integer>> data = FXWrapper.wrapList(getModel().getData())
barChart.setData(data);
}
}
该模型由一个可观察的BarChart数据列表
组成@DolphinBean
public class GesamtErgebnisModel {
....
private ObservableList<XYChart.Series<String, Integer>> data;
....
}
在服务器端,我正在计算BarChart数据以将其传递给我的模型对象。
@DolphinController("GesamtErgebnisController")
public class GesamtErgebnisController {
@Inject
private BeanManager beanManager;
@DolphinModel
private GesamtErgebnisModel model;
...
taskExecutor.execute(GesamtErgebnisController.class, e -> {
final Series<String, Integer> series = beanManager.create(XYChart.Series.class);
rawFilterData.entrySet().stream().map((mitgliedToFilterResultEntry) -> {
final XYChart.Data<String, Integer> datas = beanManager.create(XYChart.Data.class);
....
}).forEach((datas) -> {
series.getData().add(datas);
});
model.getData().add(series);
});
但条形图只是空着。只是类别是可见的。因为我认为我放在一起的数据可能存在缺陷,所以我在Oracle网站上修改了一个示例并手动测试了数据。在服务器端,这不起作用..相同的输出。如果我将此代码放在我的viewbinder的init方法内的客户端上,则数据显示正确。所以传递的数据应该没有错。带有字符串的可观察列表即可正常工作。也许我错过了别的什么?
答案 0 :(得分:1)
我认为在服务器(或共享模型)中使用JavaFX类并不是一个好主意。使用Dolphin平台时,最佳做法是创建客户端API独立(演示)模型。您可以轻松地将此模型绑定到使用UI-Toolkit的特定类(如JavaFX)的客户端模型。我为您的具体问题创建了一个示例,该示例在绑定到Dolphin Platform模型的JavaFX客户端中使用BarChart。你可以find it at Github。