设置ViewPart的输入

时间:2012-10-05 13:26:46

标签: java swt eclipse-rcp jface

我想知道是否有任何机制可以设置ViewPart的输入。

例如: 我的应用程序具有搜索功能。当我点击搜索时,我想在包含表格的ViewPart中显示我的结果。如何设置此表的输入,如何将结果传输到ViewPart?我目前正在使用org.eclipse.ui.IWorkbenchPage.showView(String, String, int)来显示ViewPart

我目前正在使用一个名为ViewUtil的Util类,它使用静态方法,如showView(String id)和showViewWithParameter(String id,Object parameter)。第二种方法显示视图,并将参数保存在ViewUtil类的Map中。 createPartControl(Composite)方法从此映射获取参数并设置表的输入。它有效,但我真的不喜欢它。

另一个问题是,当调用org.eclipse.ui.IWorkbenchPage.showView(String,String,int)方法时,如果已经显示了ViewPart,则不会调用createPartControl(Composite)方法,因此输入该表未设置。

我确信有更好的方法,但我找不到它。

1 个答案:

答案 0 :(得分:0)

它似乎被列为Eclipse BugTracker中的错误。


我也发现了一些可能有助于他人的事情。不幸的是,这是不行的,因为你只能使用String属性。看看org.eclipse.ui.IWorkbenchPart3。它有一个包含String属性的地图,可以注册propertyChangedListeners


我还找到了搜索结果视图的特定解决方案。向插件xml添加org.eclipse.search.searchResultViewPages扩展名可以解决问题。然后,您需要实现显示结果的ISearchResultPage并使用com.porsche.dps.main.SearchResultPage1.setInput(ISearchResult, Object)方法,搜索结果对象需要实现ISearchResult