一、在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();