码迷,mamicode.com
首页 > 系统相关 > 详细

Eclipse插件开发中的选择监听机制(Selection Provider-Listener)

时间:2015-07-23 08:15:23      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:eclipse   插件   eclipse插件   selection provider   listener   

Eclipse插件开发中的选择监听机制(Selection Provider-Listener)

 

 

监听机制是eclipse插件开发或rcp应用开发中常用的技术,比如点击TableViewer或TreeViewer中的某个元素,需要针对当前selection做出某些处理。

 

实现方式一般有两种情况,即selection provider 和listener在一个视图中,或在不同的视图中;

1、selection provider自己增加监听进行处理

前者直接让selection provider实现监听并处理业务即可。

 技术分享

 

实现代码如下:

viewer.addSelectionChangedListener(newISelectionChangedListener() {

         publicvoidselectionChanged(SelectionChangedEvent e) {

                   if(e.getSelection()!= null){

                            IStructuredSelectionis = (IStructuredSelection)e.getSelection();

                            txtInfo.setText(is.getFirstElement().toString());

                   }

         }

});

 

 

2、WorkbenchPage注册机制

         selection provider和Listener不在一个视图中,但是都在WorkbenchPage中;首先定义selection provider,然后定义Listener来处理selection event,最后通过WorkbenchPage注册两者之间的关联。

 技术分享



ü  在view中设置selection provider

getSite().setSelectionProvider(viewer);

 

ü  SecondViewPart实现ISelectionListener接口并实现

SecondViewPartextends ViewPart implements ISelectionListener

 

         publicvoid selectionChanged(IWorkbenchPart part, ISelection e) {

                   if(e!= null){

                            IStructuredSelectionis = (IStructuredSelection)e;

                            if(is.getFirstElement()!= null)

                            txtInfo.setText((String)is.getFirstElement());

                   }

}

ü  SecondViewPart中注册两者之间的关联

SecondViewPart的createPartControl(Composite parent) 方法中注册关联;getSite().getPage().addSelectionListener(this);

 

结论:

 

在常规的RCP开发中,处理Selection监听的任务,通过上述的两种方法可以轻松的完成。若Selection的Provider和 Listener都在一个视图,且只需要简单处理SelectionChangedEvent时,我们可以选择方法1即可。若Selection的 Provider和Listener分散在两个或多个视图时,我们必须通过方法2完成。另外,其他较为复杂的Selection Provider-Listener的情况,还可以使用RCP的IAdaptable实现。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Eclipse插件开发中的选择监听机制(Selection Provider-Listener)

标签:eclipse   插件   eclipse插件   selection provider   listener   

原文地址:http://blog.csdn.net/neweastsun/article/details/47016115

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!