Dolphin平台图表对象不起作用?

时间:2015-12-07 12:58:19

标签: opendolphin dolphin-platform

在我的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方法内的客户端上,则数据显示正确。所以传递的数据应该没有错。带有字符串的可观察列表即可正常工作。也许我错过了别的什么?

1 个答案:

答案 0 :(得分:1)

我认为在服务器(或共享模型)中使用JavaFX类并不是一个好主意。使用Dolphin平台时,最佳做法是创建客户端API独立(演示)模型。您可以轻松地将此模型绑定到使用UI-Toolkit的特定类(如JavaFX)的客户端模型。我为您的具体问题创建了一个示例,该示例在绑定到Dolphin Platform模型的JavaFX客户端中使用BarChart。你可以find it at Github