在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中的选择的事件源。

}

}

}