package org.radrails.rails.internal.ui.console; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleFactory; public class RailsShellFactory implements IConsoleFactory { private RailsShell console; public void openConsole() { if (console == null) { console = tryToFindInstance(); if (console == null) { // if it's still null, create a new one console = RailsShell.open(); } } // If already open, bring it to top ConsolePlugin.getDefault().getConsoleManager().showConsoleView(console); } private RailsShell tryToFindInstance() { IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles(); for (int i = 0; i < consoles.length; i++) { if (consoles[i] instanceof RailsShell) { return (RailsShell) consoles[i]; } } return null; } }