/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.console;

/**
 * A console factory extension is responsible for opening a console in the console view.
 * Extensions appear on a menu in the console view, and their <code>openConsole</code>
 * method is called when the action is invoked. Implementations may choose to open a new
 * cosnole or activate an existing console. The extension point used to contribute a
 * console factory is <code>org.eclipse.ui.console.consoleFactories</code>.
 * <p>
 * Following is an example console factory extension.
 * </pre>
 * &lt;extension point="org.eclipse.ui.console.consoleFactories"&gt;
 *   &lt;consoleFactory
 *      label="Command Console"
 *      icon="icons\cmd_console.gif"
 *      class="com.example.CommandConsoleFactory"&gt;
 *   &lt;/consoleFactory&gt;
 * &lt;/extension&gt;
 * </pre>
 * An action appears in the console view's 'Open Console' drop-down menu with the
 * corresponding <code>label</code> and option <code>icon</code>. When the action
 * is invoked, the specified <code>class</code> is instantiated and called to
 * open a console, via the method <code>openConsole()</code>. 
 * </p>
 * <p>
 * Clients providing console factory extensions are intended to implement
 * this interface.
 * </p>
 * @since 3.1
 */
public interface IConsoleFactory {
    /**
     * Opens a console in the console view. Implementations may create a new
     * console or activate an existing console.
     */
    public void openConsole();

}
