lugar downloads ciudad eclipse eclipse-plugin eclipse-pde

eclipse - downloads - pde ciudad



¿Cómo me notifican cada vez que se abre un nuevo editor en Eclipse? (2)

Tengo una vista que desea recibir notificaciones sobre todos los editores abiertos actualmente. ¿Dónde puedo agregar un oyente para lograr esto?

Esperaba que WorkbenchPage o EditorManager tuvieran un registro de escucha apropiado, pero no pude encontrarlo.


Creo que estás en el camino correcto. Debe escuchar los eventos IWorkbenchPage IPartService :

page.addPartListener(new IPartListener() { partOpened(IWorkbenchPart part) { ... } ... });


¿Su vista usa un org.eclipse.ui.IPartListener2 ?

Eso es lo que está usando este EditorListener , cuyo trabajo es reaccionar, para una vista determinada, a los eventos del Editor (incluidos abrir y cerrar)

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)); }

Ahora, si su ViewPart implementa directamente un IPartListener2 , puede registrarse en varios Editors , como este 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); [...]