package com.hundsun.ares.studio.ui.console;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.IConsoleConstants;
import org.eclipse.ui.console.IConsoleFactory;
import org.eclipse.ui.console.IConsoleManager;
import org.eclipse.ui.console.IConsoleView;
import org.eclipse.ui.console.MessageConsole;
import com.hundsun.ares.studio.core.ConsoleHelper;
import com.hundsun.ares.studio.ui.ARESUI;
public class ARESConsoleFactory implements IConsoleFactory {
public void openConsole() {
IConsole myConsole = getConsole();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String id = IConsoleConstants.ID_CONSOLE_VIEW;
IConsoleView view;
try {
view = (IConsoleView) page.showView(id);
view.display(myConsole);
} catch (PartInitException e) {
e.printStackTrace();
}
}
public static MessageConsole getConsole() {
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager conMan = plugin.getConsoleManager();
IConsole[] existing = conMan.getConsoles();
for (int i = 0; i < existing.length; i++)
if (ConsoleHelper.CONSOLE_ID.equals(existing[i].getName()))
return (MessageConsole) existing[i];
// no console found, so create a new one
MessageConsole myConsole = ARESUI.getDefault().getConsole();
conMan.addConsoles(new IConsole[] { myConsole });
return myConsole;
}
public static void openARESConsole() {
IConsole myConsole = getConsole();
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String id = IConsoleConstants.ID_CONSOLE_VIEW;
IConsoleView view;
try {
view = (IConsoleView) page.showView(id, null, IWorkbenchPage.VIEW_CREATE);
view.display(myConsole);
} catch (PartInitException e) {
e.printStackTrace();
}
}
}