2014-11-04 1 views
0

나는 TableViewer이며 테이블에 15 개의 열이 있습니다. 나는 내 자신의 컨텐츠와 라벨 제공자를 구현했다. 모든 열에 대해 정렬이 필요하므로 모든 열에 대해 테이블 ​​뷰어에서 setComparator()을 호출했습니다. 이 setComparator()이 호출 될 때마다 콘텐츠 공급자의 getElements()이 호출되므로 테이블로드가 지연됩니다.setComparator()가 호출 될 때 Jface TableViewer가로드하는 데 시간이 걸립니까?

이 문제를 어떻게 해결할 수 있습니까?

답변

0

getElements()은 실제로 비용이 많이 드는 작업 (예 : 데이터베이스에서 데이터 가져 오기)이 지연되는 경우 실제로는 각 호출에서 가져온 데이터를 버퍼링하거나 캐시 할 수 있습니다.

정렬이 고정 된 경우 (즉, 사용자가 변경할 수없는 경우) setComparator() 대신 getElements()에서 미리 정렬 된 요소를 반환 할 수 있습니다.