Eclipse插件开发,编辑器与大纲Outline视图联动

一,创建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 getAdapter(Class adapter) {
	if (IContentOutlinePage.class.isAssignableFrom(adapter)) {
		return (T) getContentOutlinePage();
	}
	return super.getAdapter(adapter);
}

三,为了实现联动,需要在editorPart中创建一个ISelectionProvider,并将contentOutlinePage加入到ISelectionProvider的ISelectionChangedListener中。

例如

viewer.addSelectionChangedListener(getContentOutlinePage());

 

你可能感兴趣的:(Eclipse插件)