package org.codehaus.groovy.eclipse.ui.console; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleFactory; import org.eclipse.ui.console.IConsoleListener; import org.eclipse.ui.console.IConsoleManager; public class GroovyConsoleFactory implements IConsoleFactory { private IConsoleManager fConsoleManager = null; private GroovyConsole fConsole = null; public GroovyConsoleFactory() { fConsoleManager = ConsolePlugin.getDefault().getConsoleManager(); fConsoleManager.addConsoleListener(new IConsoleListener() { public void consolesAdded(IConsole[] consoles) {} public void consolesRemoved(IConsole[] consoles) { for (int i = 0; i < consoles.length; i++) { if (consoles[i] == fConsole) { fConsole = null; } } } }); } public void openConsole() { if (fConsole == null) { fConsole = new GroovyConsole(); fConsoleManager.addConsoles(new IConsole[] { fConsole }); } fConsoleManager.showConsoleView(fConsole); } }