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实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值