如何强制Eclipse大纲视图请求新的ContentOutlinePage?

时间:2014-03-30 20:34:31

标签: eclipse-rcp

我有一个编辑器可以为大纲提供两个不同的ContentOutlinePages,具体取决于用户的选择。

但是,当我更改要显示的ContentOutlinePage时,我必须关闭并重新打开“大纲视图”以查看任何更改。我知道大纲视图在激活编辑器时会请求新的ContentOutlinePage,但有没有办法强制它在任何其他时间请求新页面?

我试着打电话

activePage.activate(editor);

其中activePage是活动的工作台页面,编辑器是当前正在显示的编辑器,但是没有用。

1 个答案:

答案 0 :(得分:1)

您可以拥有一个可以显示两个轮廓的页面,而不是拥有两个内容页面。要做到这一点,你不能扩展正常的ContentOutlinePage,而是需要一个这样的类:

public class MyContentOutlinePage extends Page 
   implements IContentOutlinePage, ISelectionChangedListener 

标准ContentOutlinePage中的代码量非常小,因此实现满足您需求的页面并不需要额外的工作。

更新: 您将拥有一个包含SashForm和TreeViewer的顶级控件,并始终返回getControl()中的顶部控件。您可以隐藏SashForm或TreeViewer,具体取决于您要显示的内容。

顶级控件可能类似于使用PageBook的{​​{1}}或Composite