package org.python.pydev.debug.console; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.ui.DebugUITools; import org.eclipse.debug.ui.contexts.DebugContextEvent; import org.eclipse.debug.ui.contexts.IDebugContextListener; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleConstants; import org.eclipse.ui.console.IConsolePageParticipant; import org.eclipse.ui.console.IConsoleView; import org.eclipse.ui.part.IPageBookViewPage; import org.python.pydev.debug.newconsole.PydevConsole; public class ConsoleActivateDebugContext implements IConsolePageParticipant, IDebugContextListener { private PydevConsole console; private IPageBookViewPage page; private IConsoleView view; public Object getAdapter(@SuppressWarnings("rawtypes") Class adapter) { return null; } protected IProcess getProcess() { return console != null ? console.getProcess() : null; } public void debugContextChanged(DebugContextEvent event) { if ((event.getFlags() & DebugContextEvent.ACTIVATED) > 0) { if (view != null && getProcess() != null && getProcess().equals(DebugUITools.getCurrentProcess())) { view.display(console); } } } public void init(IPageBookViewPage page, IConsole console) { this.page = page; this.console = (PydevConsole) console; view = (IConsoleView) page.getSite().getPage().findView(IConsoleConstants.ID_CONSOLE_VIEW); DebugUITools.getDebugContextManager().getContextService(page.getSite().getWorkbenchWindow()) .addDebugContextListener(this); } public void dispose() { DebugUITools.getDebugContextManager().getContextService(this.page.getSite().getWorkbenchWindow()) .removeDebugContextListener(this); console = null; } public void activated() { } public void deactivated() { } }