一、在RCP 程序中加入Console View 的方法如下:
1.实现org.eclipse.ui.console.consoleFactories扩展点,并且添加相关依赖
在plugin.xml的Dependencies页中为Required Plug-ins增加org.eclipse.ui.console
2.写一个ConsoleFactory类实现IConsoleFactory
package com.fujitsu.eternussf.acm.ccm.ui.views;
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;
import com.fujitsu.eternussf.acm.ccm.nls.Messages;
public class ConsoleFactory implements IConsoleFactory {
public static MessageConsole console = new MessageConsole("Transfer Infomation",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();
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;
}
}
3.把控制台添加到透视图当中去
public void createInitialLayout(IPageLayout layout) {
String editorArea = layout.getEditorArea();
ConsoleFactory consoleFactory = new ConsoleFactory();
consoleFactory.openConsole();
IFolderLayout bottomArea = layout.createFolder("bottomArea", IPageLayout.BOTTOM, 0.75f, DetailView.ID);
bottomArea.addView(IConsoleConstants.ID_CONSOLE_VIEW);
}
二、定制Console View的ToolBar.
去掉RCP Console View 中的Open Console和Select Console按钮
IWorkbenchPage page = PlatformUI.getWorkbench().getWorkbenchWindows()[0].getPages()[0];
IViewPart viewpart = page.findView(IConsoleConstants.ID_CONSOLE_VIEW);
IActionBars actionBar = viewpart.getViewSite().getActionBars();
IToolBarManager toolbarMgr = actionBar.getToolBarManager();
IContributionItem[] items = toolbarMgr.getItems();
for (IContributionItem item : items) {
if (item instanceof ActionContributionItem) {
IAction action = ((ActionContributionItem) item).getAction();
String text = action.getText();
if (text.equals("Open Console") || text.equals("Select Console")) {
toolbarMgr.remove(item);
}
}
}
actionBar.updateActionBars();