Eclipse从入门到精通(第2版)中讲到的表格记录的过滤如下:
建立一个继承自ViewerFilter的类,称之为过滤器类。下面的实例建立了一个过滤器,此过滤器的作用是在表格中只显示姓名叫"陈刚"的记录。
///文件名:MyFilter.java--------------
public class MyFilter extends ViewerFilter{
//参数viewer在本例中就是TableViewer对象
//参数parentElement在本例中是一个包含全部记录的Object数组
//参数element当前传入的记录,需要判断是否过滤它
//返回值=false,则此记录(element)不显示,true为显示
public boolean select(Viewer viewer,Object parentElement,Object element){
PeopleEnity o=(PeopleEnity )element;
return o.getName().equals("陈刚");
}
}
表格使用的过滤语句如下所示,也可以把它写入某个Action的run方法中:
tv.addFilter(new MyFilter()); //tv是TableViewer对象
我在实际的编程中遇到了用日期、整形、字符串筛选记录,代码如下:
//----种鸡计划查询的类-----
class MyFilter extends ViewerFilter{
public boolean select(Viewer viewer, Object parentElement, Object element) {
ZhongJiJiHua zjjh_cx=(ZhongJiJiHua)element;
if(combo_zjjh.getText().equals("预定日期")){
return (zjjh_cx.getYuDingRiQi().equals(java.sql.Date.valueOf(text_select.getText()))); //![](http://www.cublog.cn/images/face/020.gif)
}else if(combo_zjjh.getText().equals("批次")){
return (zjjh_cx.getPiCi()==Integer.parseInt(text_select.getText()));
}else if(combo_zjjh.getText().equals("品种")){
return zjjh_cx.getPinZhong().equals(text_select.getText());}
else if(text_select.getText().equals("")){
return true;
}
return false;}
}
阅读(1343) | 评论(0) | 转发(0) |