博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
阅读量:5853 次
发布时间:2019-06-19

本文共 1478 字,大约阅读时间需要 4 分钟。

Eclipse插件开发中的选择监听机制

 

 

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

 

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

、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的createPartControl(Composite parent) 方法中注冊关联;getSite().getPage().addSelectionListener(this);

 

结论:

 

在常规的RCP开发中,处理Selection监听的任务,通过上述的两种方法能够轻松的完毕。若Selection的Provider和 Listener都在一个视图,且仅仅须要简单处理SelectionChangedEvent时,我们能够选择方法1就可以。

若Selection的 Provider和Listener分散在两个或多个视图时。我们必须通过方法2完毕。另外,其它较为复杂的Selection Provider-Listener的情况。还能够使用RCP的IAdaptable实现。

转载于:https://www.cnblogs.com/yutingliuyl/p/7183966.html

你可能感兴趣的文章
WP老杨解迷:可知评论系统还能勾搭用户呢
查看>>
如何在Visio 2007中画接口和实现类的关系图
查看>>
异或巧妙实现两变量交换
查看>>
Web Service学习笔记
查看>>
有关html5设计那些事,你真的考虑过前端的实现吗(最近别人经常问我这种问题,所以我就写一篇了,可能也有别人和我一样吐槽过)...
查看>>
opencv linux
查看>>
SQL Server里的 ISNULL 与 NULLIF
查看>>
jQuery插件开发详细教程
查看>>
jquery通过ajax提交form
查看>>
C# Dictionary通过value获取对应的key值[转发]
查看>>
SSL工作原理
查看>>
《世界如此险恶,你要内心强大》读书笔记(一)
查看>>
基于bootstrup3全屏宽度的响应式jQuery幻灯片特效
查看>>
Hierachy Viewer 使用 monitor命令
查看>>
Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
查看>>
买了一个 站立式办公 桌子。
查看>>
SharePoint 2013 搭建负载均衡(NLB)
查看>>
分享到微信、微博、QQ空间、QQ微博
查看>>
makefile高级用法--使用函数
查看>>
SimpleDateFormat使用特定的解释
查看>>