Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
监听机制是eclipse插件开发或rcp应用开发中经常使用的技术,比方点击TableViewer或TreeViewer中的某个元素,须要针对当前selection做出某些处理。
实现方式一般有两种情况。即selection provider 和listener在一个视图中。或在不同的视图中;
1、selection provider自己添加监听进行处理
前者直接让selection provider实现监听并处理业务就可以。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
实现代码例如以下:
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)的更多相关文章
- Java中的事件监听机制
鼠标事件监听机制的三个方面: 1.事件源对象: 事件源对象就是能够产生动作的对象.在Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象.Java中根据事件的动作来区分不同的事件源对象,动 ...
- 简单剖析Node中的事件监听机制(一)
使用js的class类简单的实现一个事件监听机制,不同于浏览器中的时间绑定与监听,类似于node中的时间监听,并且会在接下来的文章中去根据自己的理解去写一下Event模块中的原理. Node.js使用 ...
- Java 中的事件监听机制
看项目代码时遇到了好多事件监听机制相关的代码.现学习一下: java事件机制包含三个部分:事件.事件监听器.事件源. 1.事件:继承自java.util.EventObject类,开发人员自己定义. ...
- 关于事件监听机制的总结(Listener和Adapter)
记得以前看过事件监听机制背后也是有一种设计模式的.(设计模式的名字记不清了,只记得背后实现的数据结构是数组.) 附上事件监听机制的分析图: 一个事件源可以承载多个事件(只要这个事件源支持这个事件就可以 ...
- 请描述Java中的时间监听机制?
1.时间监听涉及到三个组件:事件源.事件对象.事件监听器 2.当事件源上发生某个动作时,它会调用事件监听器的一个方法,并将事件对象穿进去,开发人员在监听器中通过事件对象,拿到事件源,从而对事件源进行操 ...
- 深入理解Spring的容器内事件发布监听机制
目录 1. 什么是事件监听机制 2. JDK中对事件监听机制的支持 2.1 基于JDK实现对任务执行结果的监听 3.Spring容器对事件监听机制的支持 3.1 基于Spring实现对任务执行结果的监 ...
- java事件监听机制2
今天早上的两点收获: 1.addActionListener(其中的setActionCommand函数就是要对对象进行唯一性的标记,便于消息传来后进行处理.理论上actionlistener可以全部 ...
- JAVA事件监听机制的实现
今天学习了java的事件编程机制,略有体会,先在此记下心得. 第一,首先明确几个概念. 事件源:一个产生或者触发事件的对象.事件:承载事件源状态改变时的信息对象.事件监听器接口:实际上就是一个类,该类 ...
- 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用
http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...
随机推荐
- 异常详细信息: System.ComponentModel.Win32Exception: 信号灯超时时间已到
- 2D热力图实例
<div style="height: 100px; width: 200px" id="heatmap"></div> <scr ...
- linux系统查看网络连接情况
netstat命令状态说明: CLOSED 没有使用这个套接字[netstat 无法显示closed状态] LISTEN 套接字正在监听连接[调用listen ...
- LINUX:Contos7.0 / 7.2 LAMP+R 下载安装Apache篇
文章来源:http://www.cnblogs.com/hello-tl/p/7568803.html 更新时间:2017-09-21 15:38 简介 LAMP+R指Linux+Apache+Mys ...
- Python和Java的语法对比,语法简洁上python的确完美胜出
Python是一种广泛使用的解释型.高级编程.通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年.可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP.Python的设计哲 ...
- 90-Standard Deviation 标准离差指标.(2015.7.4)
Standard Deviation 标准离差指标 ~计算: StdDev = SQRT (SUM (CLOSE - SMA (CLOSE, N), N)^2)/N 注解: SQRT - 正方体根: ...
- i2c精简总结
基本的i2c的编程包括:读数据,写命令,写数据 有关i2c的时序需要的话查看这里http://blog.csdn.net/qqliyunpeng/article/details/41511347 1. ...
- 【转】WEB前端调优
首先从一次完整的的请求说起:(以此为例get,www,baidu.com) 1,webbrower 发出request, 2,然后解析www.baidu.com为ip,找到ip的服务器, 3,服务器处 ...
- Qt项目——数字内容管理系统的参考资料和细节
打开文件路径,若带空格,要用引号括起路径 LPCWSTR与QString的转换:LPCWSTR strL = strQ.toStdWString().c_str(); 用指定程序打开文件(选择文件的打 ...
- 【HDOJ6118】度度熊的交易计划(费用流)
题意: 度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区. 由于生产能力的区别,第i个片区能够花费a[i]元生产1个 ...