TableViewer, определяющий начальный порядок сортировки, не влияет на данные - PullRequest
5 голосов
/ 14 ноября 2009

Практически я создаю просмотрщик таблиц, как обычно, но изначально он не сортирует все строки в соответствии со столбцом, определенным для сортировки.

Код, который я использую:

viewer.getTable().setSortColumn(viewer.getTable().getColumn(4));
viewer.getTable().setSortDirection(SWT.UP);

Только после ручного нажатия на столбец № 4 я получаю правильный порядок, в противном случае он точно следует «порядку вставки» списка объектов, связанного с ViewContentProvider. Не могли бы вы мне помочь пожалуйста? Tnx

Ответы [ 3 ]

1 голос
/ 09 сентября 2015

Просто была такая же проблема.

При использовании ... tableViewer.setComparator(comparator) ... приведенный выше код игнорируется.

Вы должны вручную установить начальный индекс столбца сортировки в расширенном ViewerComparator.

1 голос
/ 24 января 2013

Вам просто нужно обновить таблицу.

0 голосов
/ 31 октября 2016

Опираясь на ответ Девалекса, у меня сработало следующее:

viewer.setContentProvider(...);
viewer.setInput(...);
viewer.setComparator(myComparator);
myComparator.setColumn(colIndex);
viewer.refresh();
...