eclipse RCP 提供器-选择监听器模式
效果
在预定义指令树视图中点击项目后,在指令描述试图中显示点击的信息
实现方法
1、事件提供器private void createTableViewer(Composite parent)中添加界面组件,并初始化数据
。
CustomMessageTreeViewer tv = new CustomMessageTreeViewer(parent,SWT.SINGLE | SWT.H_SCROLL);
tv.initData();
2、在事件提供器中设置当前页面的选择提供器为组件的TreeViewer对象;
getViewSite().setSelectionProvider(tv.getTv());
3、监听器实现ISelectionListener接口,对选择事件进行处理
extends ViewPart implements ISelectionListener
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
// TODO Auto-generated method stub
if(!selection.isEmpty()){
String msg;
CustomMessageItem item =(CustomMessageItem) ((IStructuredSelection) selection).getFirstElement();
msg=("action:[选择指令]"+item.getId()+item.getName()+",[文件]"+item.getFile());
if(label!=null){
label.setText(msg);
}
}
}
4、监听器中监听注册选择事件
private Label label;
@Override
public void createPartControl(Composite parent) {
// TODO Auto-generated method stub
label = new Label(parent, SWT.NONE);
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().addSelectionListener(this );
}
4B、监听器中监听注册选择事件(方法2)
getSite().getPage().addSelectionListener(this);