一,创建ContentOutlinePage
private class FileTreeContentOutlinePage extends ContentOutlinePage {
}
二,初始化编辑器时创建OutlinePage,并在适配器方法中返回
private FileTreeContentOutlinePage contentOutlinePage;
@Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
setSite(site);
setInput(input);
getContentOutlinePage();
}
private FileTreeContentOutlinePage getContentOutlinePage() {
if (contentOutlinePage == null) {
this.contentOutlinePage = new FileTreeContentOutlinePage();
}
return contentOutlinePage;
}
@SuppressWarnings("unchecked")
@Override
public <T> T getAdapter(Class<T> adapter) {
if (IContentOutlinePage.class.isAssignableFrom(adapter)) {
return (T) getContentOutlinePage();
}
return super.getAdapter(adapter);
}
三,为了实现联动,需要在editorPart中创建一个ISelectionProvider,并将contentOutlinePage加入到ISelectionProvider的ISelectionChangedListener中。
例如
viewer.addSelectionChangedListener(getContentOutlinePage());