我想知道是否有任何机制可以设置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)方法,因此输入该表未设置。
我确信有更好的方法,但我找不到它。
答案 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
。