📄 mysorter.java
字号:
/**
* @作者:陈刚
* @Email:glchengang@yeah.net
* @Blog:http://blog.csdn.net/glchengang
*/
package jface.tableviewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
//------文件名:MySorter.java-----------
public class MySorter extends ViewerSorter {
//每列对应一个不同的常量,正数为升序、其相反数为降序
public static final int ID = 1;
public static final int NAME = 2;
//所要排序的列
private int sortType;
/**
* 构造函数。加private表示不能用new MySorter()生成本类对象了
*/
private MySorter() {
}
/**
* 构造函数。根据不同的列来生成不同的排序对象
*/
public MySorter(int sortType) {
this.sortType = sortType;
}
/**
* 最关键的方法:改写继承自ViewerSorter的方法,它的返回值是一个整数 正数,则obj1移到obj2之间 零,则obj1和obj2的位置不动
* 负数,则obj1移到obj2之后
*/
public int compare(Viewer viewer, Object obj1, Object obj2) {
/*
* 传入两条记录(实体类),然后依列给出它俩的先后顺序。
*/
PeopleEntity o1 = (PeopleEntity) obj1;
PeopleEntity o2 = (PeopleEntity) obj2;
switch (sortType) {
case ID: {
Long l1 = o1.getId();
Long l2 = o2.getId();
/*
* compareTo返回值有三个值1,0,-1 “l1”大于“l2”返回1 “l1”等天“l2”返回0 “l1”小于“l2”返回-1
* 更详细资料请查询JDK帮助文档
*/
return l1.compareTo(l2);
}
case -ID: {
Long l1 = o1.getId();
Long l2 = o2.getId();
return l2.compareTo(l1);
}
case NAME: {
String s1 = o1.getName();
String s2 = o2.getName();
return s1.compareTo(s2);
}
case -NAME: {
String s1 = o1.getName();
String s2 = o2.getName();
return s2.compareTo(s1);
}
}
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -