在Eclipse(RCP)中查看数据矩阵

时间:2011-07-27 08:35:29

标签: eclipse eclipse-plugin eclipse-rcp rcp

这是我更新显示列表的TableViewer的方法:

public void view(MyListClass list) {
    ViewerSupport.bind(
        this,
        new WritableList(list, controller.theClass()),
        BeanProperties.values(controller.theClass(), controller.strings())
    );
}

controller是一个封装我的胶水代码的类的实例(它是两个列表的不同类;同样是controller.theClass())。 strings()是一个属性名称数组。 MyListClass来自ArrayList<MyListEntryObject>。这很好。但是,我想显示一个数据矩阵。 MyMatrixClassHashMap<Point, MyMatrixEntryObject>。这就是我尝试过的:

private void view(MyMatrixClass matrix) {
    columns(matrix.columns());

    List<WritableList> lists = new ArrayList<WritableList>(matrix.rows());

    for (MyEntityClass list : matrix.children())
        if (list instanceof MyListClass)
            lists.add(new WritableList((MyListClass) list, controller.theClass()));

    WritableList[] alists = lists.toArray(new WritableList[0]);

    MultiList mlist = new MultiList(alists);

    ViewerSupport.bind(
            this,
            mlist,
            BeanProperties.value(controller.theClass(), "value")
    );
}

这不起作用。我得到null参数弹出错误。 (每个数据模型类都实现MyEntityClass。类名已被更改,因为这是我正在开发的专有程序。)

长话短说,如何使用ViewerSupportBeanPropertiesTableViewer中显示数据矩阵?

1 个答案:

答案 0 :(得分:1)

由于JFace表查看器是基于行的,因此您必须以基于行的方式提供矩阵。您必须创建矩阵行的集合,然后将此列表设置为查看器的输入。之后,您可以创建BeanProperties,显示所选行的列。