java iconsolefactory_Console 控制台扩展(一)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值