e4 selectionservice - 列表或单个对象和适配器

时间:2018-01-17 08:35:53

标签: eclipse-rcp rcp e4

我有一个关于"最佳实践"的问题在e4选择服务上

1)处理单个和多个选择

例如,在tableviewer上我可以选择一个或多个元素。根据这一点,我的主动选择是对象或对象集合。

在我的听众中处理这个问题的最佳做法是什么?

... selectionService.setSelection(structuredSelection.getFirstElement())

OR

... selectionService.setSelection(structuredSelection.asList())

public void xy(@Optional @Named(IServiceConstants.ACTIVE_SELECTION) 列表选择){} - >如果选择了单个元素,则selection为null

OR

public void xyz(@Optional @Named(IServiceConstants.ACTIVE_SELECTION)MyObject selection){} - >如果选择了多个元素,则selection为null

我是否需要实现这两种方法来处理这两种情况?为什么单个元素没有打包在列表中,反之亦然?

2) 如何处理可以适应目标对象的活动选择? 我是否需要有ISelection参数并手动检查调整,或者如果可能,框架是否可以适应和注入?

提前多多感谢

1 个答案:

答案 0 :(得分:-1)

正常选择是实际的IStructuredSelection对象,其内容:

selectionService.setSelection(structuredSelection);


public void xx(@Named(IServiceConstants.ACTIVE_SELECTION) IStructuredSelection selection)

所以你只有一个方法,它接收所有类型的选择。

对于自适应对象,没有任何东西会自动执行此操作。使用org.eclipse.core.runtime.Adapters类来调整对象:

IFile file = Adapters.adapt(object, IFile.class);