我有一个编辑器,它可以根据用户的选择向大纲提供两个不同的ContentOutlinePages。
但是,当我更改要显示的ContentOutlinePage时,必须关闭并重新打开大纲视图才能看到任何更改。我知道当编辑器被激活时,大纲视图请求一个新的ContentOutlinePage,但是有什么方法可以强迫它在其他时间请求一个新的页面吗?
我试着打电话
activePage.activate(editor);其中,activePage是活动工作台页面,编辑器是当前正在显示的编辑器,但没有工作。
发布于 2014-03-30 21:11:20
与其有两个内容页面,不如使用一个可以同时显示两个大纲的页面。要做到这一点,您不能扩展普通的ContentOutlinePage,而是需要这样一个类:
public class MyContentOutlinePage extends Page 
   implements IContentOutlinePage, ISelectionChangedListener 标准ContentOutlinePage中的代码数量很小,因此实现满足您需要的页面并不是什么额外的工作。
更新:您将拥有一个包含SashForm和TreeViewer的顶级控件,并且总是在getControl()中返回顶级控件。根据要显示的内容,可以隐藏SashForm或TreeViewer。
顶层控件可能类似于PageBook或使用StackLayout的Composite。
https://stackoverflow.com/questions/22749493
复制相似问题