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;
}
}