Wat*_*tto 7 eclipse-rcp eclipse-emf e4
我构建了一个小的e4 RCP应用程序,其中包含由emf生成的模型代码(使用ComposedAdapterFactory)和"e3属性视图"填充的"e4 xmi"树视图.
尝试使用"dirksmetric教程"在application.e4xmi(共享元素)中显示具有空属性视图的属性视图.
为了获得在我的属性表(IItemPropertySource)中显示的树的选定元素,我做了以下事情:
在我的e4 treeviewer端,我使用#createComposite中的e4选择服务:
//将查看器注册为选择提供程序(由属性视图使用...)viewer.addSelectionChangedListener(new ISelectionChangedListener(){@ Override public void selectionChanged(SelectionChangedEvent event){IStructuredSelection selection =(IStructuredSelection)event.getSelection( ); //将选择设置为服务selectionService.setSelection(selection.size()== 1?selection.getFirstElement():selection.toArray());}});
在e3"经典"属性表方面,我定义了几个方面:
extension point ="org.eclipse.core.runtime.adapters"> factory adaptableType ="org.eclipse.emf.ecore.EObject"class ="myappmodeler.properties.ModelPropertiesAdapter"> adapter type ="org.eclipse.ui.views .properties.IPropertySource">
public Object getAdapter(Object adaptableObject,Class adapterType){if(adapterType == IPropertySource.class && adaptableObject instanceof EObject){emfGlobalFactory = new ComposedAdapterFactory(); emfGlobalFactory.addAdapterFactory(new RepositorystructureItemProviderAdapterFactory()); emfGlobalFactory.addAdapterFactory(new ApplicationItemProviderAdapterFactory()); emfGlobalFactory.addAdapterFactory(new ServiceItemProviderAdapterFactory()); 返回新的AdapterFactoryContentProvider(emfGlobalFactory).getPropertySource(adaptableObject); } return null; }
我的问题是这个适配器甚至没有执行.
目前使用Eclipse neon(最近更新以同步E3和E4选择服务) https://bugs.eclipse.org/bugs/show_bug.cgi?id=403930
有不同的方法可以解决这个问题,但对于我的情况,这些是步骤
我采取了这些步骤来解决我的问题
EObjectorg.eclipse.emf.edit.ui.provider.*
IItemPropertySourceAdapterFactoryContentProvider)并createPropertySource使用自定义属性源覆盖ItemProvider(实现)ITableItemLabelProvider与完美合作ESelectionService
希望这些笔记对某人有所帮助
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |