1 : plugin.xml: <extension point="org.eclipse.ui.console.consoleFactories"> <consoleFactory class="com.hnjchina.intro.ConsoleFactory" label="样式显示台"/> </extension> 2: Perspective.createInitialLayout: public void createInitialLayout(IPageLayout layout) { layout.addView(IConsoleConstants.ID_CONSOLE_VIEW, IPageLayout.BOTTOM,0.70f, layout.getEditorArea()); } 3.implements IConsoleFactory类: import java.io.IOException; import java.io.PrintStream; import org.eclipse.ui.console.ConsolePlugin; import org.eclipse.ui.console.IConsole; import org.eclipse.ui.console.IConsoleFactory; import org.eclipse.ui.console.IConsoleManager; import org.eclipse.ui.console.MessageConsole; import org.eclipse.ui.console.MessageConsoleStream; public class ConsoleFactory implements IConsoleFactory { static MessageConsole console = new MessageConsole("样式控制台", null); /* public void openConsole() { showConsole(); } public static void showConsole() { if (console != null) { IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); IConsole[] existing = manager.getConsoles(); boolean exists = false; for (int i = 0; i < existing.length; i++) { if (console == existing[i]) exists = true; } if (!exists) { manager.addConsoles(new IConsole[] { console }); } manager.showConsoleView(console); MessageConsoleStream stream = console.newMessageStream(); try { stream.write("测试!"); } catch (IOException e) { e.printStackTrace(); } System.setOut(new PrintStream(stream)); } } public static void closeConsole() { IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); if (console != null) { manager.removeConsoles(new IConsole[] { console }); } } public static MessageConsole getConsole() { return console; } } |
|