`

TableView排序

 
阅读更多

给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();

}

});

}

 

}

分享到:
评论

相关推荐

    TableView 排序

    以上就是关于RCP中TableView排序的基本知识点。通过理解和应用这些概念,开发者可以为用户提供更加直观和高效的数据显示体验。实践中,还可以根据具体需求进行扩展和定制,比如增加自定义排序算法、拖放列头排序等...

    可排序的表格(TableView)控件

    源码SortableTableView,一个可排序的表格(TableView)控件,包括了一个简单的TableView 以及更高级的SortableTableView,提供很多自定义可能,非常赞。Minimum SDK-Version: 11 | Compile SDK-Version: 22 | ...

    解析城市列表 TableView

    在iOS开发中,TableView...同时,对于大型项目,数据模型可能会更加复杂,可能包含更多的信息,而且可能需要对数据进行排序、过滤等操作。但基础步骤和原理始终保持不变,都是围绕着TableView的数据源和代理方法展开。

    javafx 2.0 tableview 实例

    可能还会有对事件监听、排序、过滤、选择等功能的实现,这些都是TableView的高级特性。例如,可以添加一个按钮来动态添加新的数据行,或者允许用户根据列头进行排序。 此外,TableView还可以通过样式类和CSS进行...

    UGUI 上的TableView

    - **TableView.cs**:这是TableView的核心组件,它包含了对数据的处理逻辑,如数据绑定、排序、过滤等功能。这个脚本会管理ScrollRect的滚动行为,并且负责Cell的创建、更新和回收。当数据源发生变化时,TableView....

    ios-根据汉字首字母英文顺序排序用tableview现实.zip

    这个"ios-根据汉字首字母英文顺序排序用tableview现实.zip"项目,旨在帮助开发者创建一个功能完备的界面,用户可以直观地看到按拼音首字母排列的数据,并通过交互选择特定项。代理方法的使用则确保了用户选择的数据...

    Qt QTableWidget 基本功能及排序功能

    它提供了丰富的功能,包括但不限于添加、删除、修改表格中的项,并且支持用户交互,如通过点击表头实现数据排序。以下是对这些功能的详细阐述: 1. **QTableWidget的基本结构与创建**: QTableWidget是一个基于...

    js分页控件 Tableview

    **Tableview:一款强大的JS分页控件** Tableview是一款基于JavaScript实现的高效分页控件,特别适合用于网页数据展示。它具有轻量级、易用性高、功能丰富的特点,能帮助开发者轻松实现复杂的数据分页效果,极大地...

    javafx 2.0 tableView 实例

    在实际开发中,`TableView`常用于显示大量结构化的数据,并且可以进行排序、过滤和分页等操作。 1. **创建TableView** 创建`TableView`首先要定义它的列。在JavaFX中,每一列由一个`TableColumn`对象表示,你可以...

    tableview点击排序

    在Qt编程环境中,`tableView`是经常用于展示数据表格的控件,它是`QTableView`类的一个实例。这个控件提供了灵活的界面,允许用户查看和操作二维数据集。在这个主题中,“tablview点击排序”指的是用户通过点击表头...

    Android TableView初版源码

    - **多选和排序**:提供多选功能,允许用户选择多个行,同时可能包含排序功能。 - **刷新和加载更多**:实现下拉刷新和上滑加载更多的动态加载机制。 - **自适应布局**:使TableView能够根据屏幕大小和方向自动...

    ios 版实现汉字按字母排序(带索引的tableview)

    这个“ios 版实现汉字按字母排序(带索引的tableview)”的第三方文件提供了一个高效、易用的解决方案,尤其适用于那些需要展示大量汉字数据的TableView应用。 首先,我们要理解汉字按字母排序的基本原理。汉字的拼音...

    html表格控件tableview-1.1.2

    `tableView`控件则通过JavaScript和CSS增强了这种体验,提供了排序、分页、筛选、自定义样式等多种功能。对于初学者来说,它降低了创建功能齐全的表格的门槛,因为其API设计友好,易于理解和使用。 在`tableView-...

    Qt Tableview显示数据

    在实际开发中,可能还需要考虑性能优化、数据排序和过滤等功能。Qt提供了一整套强大的工具和接口,使得开发者能够灵活地实现复杂的表格视图。在进行Qt编程时,确保熟悉MVC模式和`QTableView`的相关API,这将极大地...

    tableView move

    `tableView move`指的是在UITableView中实现行的拖动和重排功能。这个特性允许用户通过手势自由调整列表中的顺序,常见于需要自定义排序的应用场景,比如任务管理器、日程表等。 在`custom tableViewCell move`中,...

    JavaFX2.0_表格框TableView

    - `TableView`支持自动排序。通过设置`TableColumn.setSortable(boolean)`,可以启用或禁用列的排序功能。默认情况下,用户点击列头即可对数据进行升序或降序排序。 8. **大小调整**: - `TableView`可以根据其...

    ios-swift tableView的简单使用.zip

    在实际项目中,这可能涉及到对数据模型的重新排序。 以上就是Swift中简单使用UITableView的基本步骤,包括cell的移动、删除和增加。通过灵活运用这些方法,可以创建出丰富的用户交互界面,展示各种类型的数据。随着...

    JavaFX+Jfoenix 学习笔记(三)--TableView数据表格源码

    - TableView支持各种事件,如单击、双击、排序等。我们可以通过添加事件监听器来响应这些事件,比如添加一个点击事件监听器来处理用户选择的行。 - 例如,`tableView.getSelectionModel().selectedItemProperty()....

    iOS tableview 多级展开,折叠,防qq效果

    在iOS开发中,UITableView是一种常用的数据展示...在实际开发中,可能还需要根据具体需求进行调整,比如添加搜索、排序等功能。记得在编码过程中遵循Apple的Swift编程规范和MVC设计模式,确保代码的可读性和可维护性。

    TableView01

    在"TableView01"的博客文档中,可能详细介绍了如何配置`QTableView`,包括设置样式表(CSS)来定制外观,以及如何使用`QSortFilterProxyModel`进行数据排序和过滤。此外,还可能涉及数据编辑功能,如启用单元格的...

Global site tag (gtag.js) - Google Analytics