Jface Tableviewer мульти сортировки столбцов - PullRequest
0 голосов
/ 19 июня 2010

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

Поэтому я хочу использовать ColumnViewerSorter, особенно метод "int doCompare (Viewer viewer,Object e1, Object e2); "

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

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

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

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

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

Malcom

1 Ответ

0 голосов
/ 22 июня 2010

Вы можете перебрать все элементы в средстве просмотра таблиц и посмотреть, где находятся объекты 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

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

...