给TableViewer添加排序器的方法:
1.创建一个ViewerSoorter类或者其子类;
2.把该类的对象赋值给TableViewer即可,如下所示:
org.eclipse.jface.viewers.ViewerSorter
viewer.setSorter(sorter);
public class AddressViewerSorter extends ViewerSorter {
private static final String TAG_DESENDING = "descending";
private static final String TAG_INDEX = "columnIndex";
private static final String TAG_CATEGORY = "category";
private static final String TAG_TRUE = "true";
private class SortInfo {
int columnIndex;
Comparator comparator;
boolean descending;
}
private TableViewer viewer;
private SortInfo[] infos;
private SortInfo currSort;
public AddressViewerSorter(TableViewer viewer, TableColumn[] columns,
Comparator[] comparators) {
this.viewer = viewer;
infos = new SortInfo[columns.length];
for (int i = 0; i < columns.length; i++) {
infos[i] = new SortInfo();
infos[i].columnIndex = i;
infos[i].comparator = comparators[i];
infos[i].descending = false;
createSelectionListener(columns[i], infos[i]);
}
currSort = infos[0];
}
public int compare(Viewer viewer, Object address1, Object address2) {
int result = currSort.comparator.compare(address1, address2);
if (result != 0) {
if (currSort.descending)
return -result;
return result;
}
return 0;
}
private void createSelectionListener(final TableColumn column,
final SortInfo info) {
column.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
currSort = info;
info.descending = !info.descending;
//调用该方法才能使viewer调用compare重新排序
viewer.refresh();
}
});
}
}
分享到:
相关推荐
以上就是关于RCP中TableView排序的基本知识点。通过理解和应用这些概念,开发者可以为用户提供更加直观和高效的数据显示体验。实践中,还可以根据具体需求进行扩展和定制,比如增加自定义排序算法、拖放列头排序等...
源码SortableTableView,一个可排序的表格(TableView)控件,包括了一个简单的TableView 以及更高级的SortableTableView,提供很多自定义可能,非常赞。Minimum SDK-Version: 11 | Compile SDK-Version: 22 | ...
在iOS开发中,TableView...同时,对于大型项目,数据模型可能会更加复杂,可能包含更多的信息,而且可能需要对数据进行排序、过滤等操作。但基础步骤和原理始终保持不变,都是围绕着TableView的数据源和代理方法展开。
可能还会有对事件监听、排序、过滤、选择等功能的实现,这些都是TableView的高级特性。例如,可以添加一个按钮来动态添加新的数据行,或者允许用户根据列头进行排序。 此外,TableView还可以通过样式类和CSS进行...
- **TableView.cs**:这是TableView的核心组件,它包含了对数据的处理逻辑,如数据绑定、排序、过滤等功能。这个脚本会管理ScrollRect的滚动行为,并且负责Cell的创建、更新和回收。当数据源发生变化时,TableView....
这个"ios-根据汉字首字母英文顺序排序用tableview现实.zip"项目,旨在帮助开发者创建一个功能完备的界面,用户可以直观地看到按拼音首字母排列的数据,并通过交互选择特定项。代理方法的使用则确保了用户选择的数据...
它提供了丰富的功能,包括但不限于添加、删除、修改表格中的项,并且支持用户交互,如通过点击表头实现数据排序。以下是对这些功能的详细阐述: 1. **QTableWidget的基本结构与创建**: QTableWidget是一个基于...
**Tableview:一款强大的JS分页控件** Tableview是一款基于JavaScript实现的高效分页控件,特别适合用于网页数据展示。它具有轻量级、易用性高、功能丰富的特点,能帮助开发者轻松实现复杂的数据分页效果,极大地...
在实际开发中,`TableView`常用于显示大量结构化的数据,并且可以进行排序、过滤和分页等操作。 1. **创建TableView** 创建`TableView`首先要定义它的列。在JavaFX中,每一列由一个`TableColumn`对象表示,你可以...
在Qt编程环境中,`tableView`是经常用于展示数据表格的控件,它是`QTableView`类的一个实例。这个控件提供了灵活的界面,允许用户查看和操作二维数据集。在这个主题中,“tablview点击排序”指的是用户通过点击表头...
- **多选和排序**:提供多选功能,允许用户选择多个行,同时可能包含排序功能。 - **刷新和加载更多**:实现下拉刷新和上滑加载更多的动态加载机制。 - **自适应布局**:使TableView能够根据屏幕大小和方向自动...
这个“ios 版实现汉字按字母排序(带索引的tableview)”的第三方文件提供了一个高效、易用的解决方案,尤其适用于那些需要展示大量汉字数据的TableView应用。 首先,我们要理解汉字按字母排序的基本原理。汉字的拼音...
`tableView`控件则通过JavaScript和CSS增强了这种体验,提供了排序、分页、筛选、自定义样式等多种功能。对于初学者来说,它降低了创建功能齐全的表格的门槛,因为其API设计友好,易于理解和使用。 在`tableView-...
在实际开发中,可能还需要考虑性能优化、数据排序和过滤等功能。Qt提供了一整套强大的工具和接口,使得开发者能够灵活地实现复杂的表格视图。在进行Qt编程时,确保熟悉MVC模式和`QTableView`的相关API,这将极大地...
`tableView move`指的是在UITableView中实现行的拖动和重排功能。这个特性允许用户通过手势自由调整列表中的顺序,常见于需要自定义排序的应用场景,比如任务管理器、日程表等。 在`custom tableViewCell move`中,...
- `TableView`支持自动排序。通过设置`TableColumn.setSortable(boolean)`,可以启用或禁用列的排序功能。默认情况下,用户点击列头即可对数据进行升序或降序排序。 8. **大小调整**: - `TableView`可以根据其...
在实际项目中,这可能涉及到对数据模型的重新排序。 以上就是Swift中简单使用UITableView的基本步骤,包括cell的移动、删除和增加。通过灵活运用这些方法,可以创建出丰富的用户交互界面,展示各种类型的数据。随着...
- TableView支持各种事件,如单击、双击、排序等。我们可以通过添加事件监听器来响应这些事件,比如添加一个点击事件监听器来处理用户选择的行。 - 例如,`tableView.getSelectionModel().selectedItemProperty()....
在iOS开发中,UITableView是一种常用的数据展示...在实际开发中,可能还需要根据具体需求进行调整,比如添加搜索、排序等功能。记得在编码过程中遵循Apple的Swift编程规范和MVC设计模式,确保代码的可读性和可维护性。
在"TableView01"的博客文档中,可能详细介绍了如何配置`QTableView`,包括设置样式表(CSS)来定制外观,以及如何使用`QSortFilterProxyModel`进行数据排序和过滤。此外,还可能涉及数据编辑功能,如启用单元格的...