在eclipse workbench中,有一种监听机制,他将可发送事件的事件源的动作分发,都都注册在workbench中的监听器。这一类事件源被称为 selectionProvider, 监听器则是 selectionChangeListener。
说起来比较抽象,接下来,我给大家演示一下。比如我想给一个view中的一个表格添加选择服务。
第一步:public class myview extends ViewPart{
public void createPartControl(Composite parent){
TabelViewer viewer = new TableViewer(parent,SWT.BORDER);
.
.
.
this.getSite().setSelectionProviere(viewer); //给tableviewer注册了监听,tableviewer上有变化,事件就会被实现了selectionListener的接口的类接受。
}
第二步:我们在定义一个类,用来接受 tableviwer发出的事件。
public class otherview extends ViewPart implements ISelectionListener {
public void createPartControl(Composite parent){
this.getSite().getPage().addSelectionListener(this);
//这句话很关键
}
public void selectionChanged(IWorkbenchPart part,ISelection selection{
在这里接受selection 的值。selection就是在myview中的选择的事件源。
}
}
}