Просмотр матрицы данных в Eclipse (RCP) - PullRequest
0 голосов
/ 27 июля 2011

Вот так я обновляю свой 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>.Это отлично работает.Но я хочу отобразить матрицу данных.MyMatrixClass - это HashMap<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")
    );
}

Это не работает.Я получаю ошибки всплывающих окон с нулевым аргументом.(Каждый класс модели данных реализует MyEntityClass. Имена классов были изменены из-за того, что это проприетарная программа, которую я использую для разработки.)

Короче говоря, как мне использовать ViewerSupport и BeanProperties для отображения матрицы данных в виде TableViewer?

1 Ответ

1 голос
/ 27 июля 2011

Поскольку просмотрщик таблиц JFace основан на строках, вы должны предоставлять свою матрицу на основе строк.Вы должны создать коллекцию строк матрицы, а затем установить этот список в качестве входных данных зрителя.После этого вы можете создать BeanProperties, которые отображают столбцы выбранных строк.

...