RCP项目中TreeViewer和TableViewer中显示内容的排序
2010-05-27 11:25
RCP项目中TreeViewer和TableViewer中显示内容的排序:
对TreeViewer和TableViewer的显示来自数据库或别的数据源的非有序数据的顺序显示,
可应用到它们的自身特点来作处理。
TreeViewer和TableViewer都有两个
viewer.setContentProvider(IStructuredContentProvider);
viewer.setLabelProvider(ITableLabelProvider);
其中contentProvider用来显示内容,在IStructuredContentProvider的实现类中
有方法
@Override
public Object[] getElements(Object inputElement) {return null;}
来处理要显示的内容数据,这时可对显示数据(inputElement)进行排序处理以达到顺序显示的效果。
如:
@Override
public Object[] getElements(Object inputElement) {
List<TimeAnalysis> list = (List<TimeAnalysis>) inputElement;
TimeAnalysis[] timeAnalysises= list.toArray(new TimeAnalysis[list.size()] );
sort(timeAnalysises);
return timeAnalysises;
}
private void sort(TimeAnalysis[] timeAnalysises){
TimeAnalysis timeAnalysis ;
for(int i=0;i<timeAnalysises.length;i++){
for(int j=i+1;j<timeAnalysises.length;j++){
String iType = timeAnalysises[i].getErrorType();
String jType = timeAnalysises[j].getErrorType();
if(iType.compareTo(jType)>0){
timeAnalysis = timeAnalysises[j];
timeAnalysises[j] = timeAnalysises[i];
timeAnalysises[i] = timeAnalysis;
}
}
}
}