JFace Viewer 2

 

5.1.3. Viewer 排序器

排序器(参见Figure 5-5ViewerSorter 层次图) 用来为内容供给器提供的元素排序。 (参见 Figure 5-1). 如果viewer没有没有使用排序器,元素将按照内容供给器提供 的默认顺序排列。 viewer使用 setSorter() 方法来使用排序器。

 

Figure 5-5. ViewerSorter 层次图


 


默认的排序算法采用两步过程。首先,将元素分组为不同的类别;然后,基于标签供给器提供的文字标签为每种类别排序。默认的情况下,所有的元素都是同一类别,所以所有的元素都是按照文字标签排序。你可以重写默认的分类方法,使用其他的比较规则。

ViewerSorter使用的API包括:

 

category(Object) 返回指定元素的分类。

 

 

compare(Viewer, Object, Object) 按照第一个元素小于,等于,大于的不同情况分别返回负数,零,正数。 

 

 

getCollator() 返回用来排列字符串的比较器。 

 

 

isSorterProperty(Object, String) 返回排序器是否受指定元素属性改变的影响。对 

 

 

sort(Viewer viewer, Object[]) 只排列指定的元素。

 

使用排序器的例子参见5.1.6节, ListViewer 类。

5.1.4. 过滤器


过滤器(参见Figure 5-6ViewerFilter 层次图) 用来显示内容供给器提供的元素的子集。(参见Figure 5-1)。如果viewer没有使用过滤器,将显示所有的元素。 viewer使用 setFilter() 方法来使用过滤器。

 

 

Figure 5-6. ViewerFilter 层次图


ViewFilter常用API如下所示。实现一个简单的过滤器只需要 重写  viewer  select(Viewer, Object, Object) 方法即可,来决定一个对象是否可以显示在viewer中。

 

filter(Viewer, Object, Object[]) 为指定的viewer过滤指定元素。该方法默认调用调用 select(Viewer, Object, Object)方法。

 

 

isFilterProperty(Object, String) 返回指定元素的指定属性发生改变是否对过滤器有影响。 该方法的默认实现是返回 false.

 

 

select(Viewer, Object, Object) 返回指定元素是否要被过滤。

 

 

你可能感兴趣的:(算法,api,object,String,filter)