在Eclipse中打开新的编辑器时,如何得到通知? [英] How do I get notified whenever a new editor is opened in Eclipse?
问题描述
我期待WorkbenchPage或EditorManager有一些适当的监听器注册表,但我找不到它。
这是什么使用这个 EditorListener , >
public class EditorListener实现ISelectionListener,IFileBufferListener,
IPartListener2 {
protected BytecodeOutlineView view;
EditorListener(BytecodeOutlineView view){
this.view = view;
}
[...]
/ **
* @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse。 ui.IWorkbenchPartReference)
* /
public void partOpened(IWorkbenchPartReference partRef){
view.handlePartVisible(partRef.getPart(false));
}
现在如果你的 ViewPart
直接实现一个 IPartListener2
,它可以注册到各种编辑器
,像这样 BytecodeReferenceView
public class BytecodeReferenceView extends ViewPart实现IPartListener2,ISelectionListener {
[...]
public void createPartControl(Composite parent){
browser = new Browser(parent,SWT.BORDER);
browser.setText(BytecodeOutlinePlugin.getResourceString(NLS_PREFIX
+empty.selection.text));
final IWorkbenchWindow workbenchWindow = getSite()。getWorkbenchWindow();
workbenchWindow.getPartService()。addPartListener(this);
[...]
I have a view which would like to be notified about all the currently opened editors. Where can I add a listener to achieve this?
I was expecting WorkbenchPage or EditorManager to have some appropriate listener registry, but I couldn't find it.
Does your view uses a org.eclipse.ui.IPartListener2
?
That is what is using this EditorListener, whose job is to react, for a given view, to Editor events (including open and close)
public class EditorListener implements ISelectionListener, IFileBufferListener,
IPartListener2 {
protected BytecodeOutlineView view;
EditorListener(BytecodeOutlineView view){
this.view = view;
}
[...]
/**
* @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
*/
public void partOpened(IWorkbenchPartReference partRef) {
view.handlePartVisible(partRef.getPart(false));
}
Now if your ViewPart
directly implements an IPartListener2
, it can register itself to the various Editors
, like this BytecodeReferenceView
public class BytecodeReferenceView extends ViewPart implements IPartListener2, ISelectionListener {
[...]
public void createPartControl(Composite parent) {
browser = new Browser(parent, SWT.BORDER);
browser.setText(BytecodeOutlinePlugin.getResourceString(NLS_PREFIX
+ "empty.selection.text"));
final IWorkbenchWindow workbenchWindow = getSite().getWorkbenchWindow();
workbenchWindow.getPartService().addPartListener(this);
[...]
这篇关于在Eclipse中打开新的编辑器时,如何得到通知?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!