想要做一个类似outline的view,是与当前打开的editor的内容联动的。
google的结果都是参考outline的实现,看了,但是没有看懂,所以求教如何实现了。
简化一下问题,应该是这样的:打开了多个editor之后,切换不同的editor,这个事件如何获取?
如果有其他的解决方式,也行!
------解决方案--------------------
拿到IWorkbenchPage, 有addPartListner方法,可以监听到Part的active等事件,具体的看API
------解决方案--------------------
在打开Editor的View里面增加IPartListener监听器:
- Java code
// 给工作区增加监听器,当编辑器被激活时,关联选中Project节点 getSite().getPage().addPartListener(new IPartListener() { @Override public void partOpened(IWorkbenchPart part) { // TODO Auto-generated method stub } @Override public void partDeactivated(IWorkbenchPart part) { // TODO Auto-generated method stub } @Override public void partClosed(IWorkbenchPart part) { // TODO Auto-generated method stub } @Override public void partBroughtToTop(IWorkbenchPart part) { // TODO Auto-generated method stub } @Override public void partActivated(IWorkbenchPart part) { if (SolutionEditor.ID.equals(part.getSite().getId()) && !open) { linkWithAction.run(); } } });