2013-02-19 2 views
0

Наше приложение является приложением RCP и должно отображать таблицу из нескольких тысяч элементов. По этой причине мы используем SWT.VIRTUAL в нашем TableViewer. Это хорошо работает, кроме выбора.Виртуальная сортировка TableViewer вызывает проблемы с выбором

У нас следующий вопрос:

  • сортировка Наша поддержка TableViewer и фильтрации. Когда мы используем виртуальный tableviewer, изменение выделения не сохраняет текущий выбранный элемент, а выбранную в данный момент строку. Это приводит к выбору другого элемента. Например: если элемент «A», присутствующий в 5-й строке, выбирается пользователем, и выполняется сортировка, то после сортировки элемент в 5-й строке выбирается вместо Item 'A'. Использование не виртуального TableViewer, все работает отлично.

Мы попытались войти в отладку и выяснили, что кеш из класса AbstractTableViewer.VirtualManager, похоже, обновлен с использованием модели. Принудительный подход к использованию кеша, который будет использоваться в AbstractTableViewer.virtualSetSelectionToWidget().

Мы попытались реализовать решение, предложенное в https://bugs.eclipse.org/bugs/show_bug.cgi?id=338696. Однако это не сработало.

Пожалуйста, предложите несколько указателей или альтернативную работу.

Спасибо за ответы.

+0

Добавление части вашего кода относительно вашей потребности поможет людям ответить ответными ответами! – LGAP

ответ

2

В качестве обходного пути для работы с огромными столами я бы предложил вам взглянуть на проект Nattable http://www.eclipse.org/nattable/. Он поддерживает все, что вам нужно (сортировка, фильтрация, структурированные элементы дерева, ленивая загрузка и т. Д.). Мы успешно используем его в нашем проекте, где необходимо отображать сотни тысяч элементов в виде дерева с примерно 160 столбцами. Он также имеет некоторые довольно крутые стилистические функции, которые могут сделать вашу таблицу более удобной и интерактивной. Надеюсь, это поможет