Многократная сортировка столбцов Jface tableviewer

Я реализую средство просмотра таблиц, которое может сортировать значения в зависимости от порядка их столбцов. например column1-column2-columnX сначала сортирует строки по значениям столбца 1, затем столбца 2, столбца....

Поэтому я хочу использовать ColumnViewerSorter, особенно метод «int doCompare (средство просмотра средства просмотра, объект e1, объект e2);»

внутри этого метода я хочу сортировать в зависимости от других строк/ячеек Tableviewer для сравнения, и сложность заключается в том, что JFace tableviewer выполняет сортировку только в представлении, поэтому я должен «спросить» у самого tableviewer фактическое значение, например. "столбец 1, строка 20"

использование функции «viewer.getElementAt(index)» внутри «docompare» будет в порядке, но внутри docompare у меня нет ссылки на позиции объектов e1 и e2 в средстве просмотра таблиц.

как я мог этого добиться?

заранее большое спасибо за помощь

наилучшие пожелания,

Малкольм


person user370987    schedule 19.06.2010    source источник


Ответы (1)


Вы можете перебрать все элементы в средстве просмотра таблиц и, конечно, увидеть, где находятся объекты e1 и e2.

НО... и я надеюсь, что правильно понимаю вашу проблему... почему вы хотите реализовать мультисортировку?

Допустим, у вас есть 3 столбца:

Col1      Col2      Col3
-------------------------
 a2        b1        c4   
 a1        b2        c1
 a2        b1        c3

Чтобы получить порядок сортировки Col1-Col2-Col3, пользователь может щелкнуть Col3, затем Col2 и, наконец, Col1:

Col1      Col2     _Col3_
-------------------------
 a1        b2        c1        
 a2        b1        c3
 a2        b1        c4


Col1     _Col2_     Col3
-------------------------     
 a2        b1        c3   
 a2        b1        c4
 a1        b2        c1


_Col1_     Col2     Col3
-------------------------     
 a1        b2        c1     
 a2        b1        c3   
 a2        b1        c4

Возможно, это не лучший пример, но для получения «множественной сортировки» пользователю достаточно отсортировать нужные столбцы в обратном порядке.

person drstupid    schedule 22.06.2010