ISelection接口仅有一个方法:
isEmpty()
由于ISelection接口比较简单,所以通常使用的是ISelection的子接口IStructuredSelection。
IStructuredSelection接口提供了一些方便的方法,比如获取第一个选择对象的的getFirstElement()
方法,获取所有选择对象的迭代器iterator()方法,获取所选择个数的size()方法,并且有把所有选择对象转化为List的toList()方法,和转化为数组的toArray()方法
扩展ISelection只需要实现isEmpty()方法即可,如下即是一个实现ISelection接口的例子:
public class TabSelection implements ISelection
{
private ChartTab chartTab;
public TabSelection(ChartTab chartTab)
{
this.chartTab = chartTab;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ISelection#isEmpty()
*/
public boolean isEmpty()
{
return chartTab == null;
}
public ChartTab getChartTab()
{
return chartTab;
}
}
有时候在表格或者树中,想取消选择,即不选择任何对象。
即通过setSelection(obj)进行设置。
这里可能扩展一个NullSelection。NullSelection实现ISelection接口。
ISelection只有一个方法isEmpty(),只需要将isEmpty()方法返回false即可。
public class NullSelection implements ISelection{
public NullSelection(){
}
public boolean isEmpty(){
return true;
}
}