根据本教程,我将创建一个提供新控制台的Eclipse插件,该控制台已添加到视图中,并且可以在其中打印消息,但是由于某些原因,它没有添加到控制台列表中(该下拉列表位于视图的一角,请参见下图)。
这就是我创建控制台的方式:
public void createConsole(String name) {
ConsolePlugin plugin = ConsolePlugin.getDefault();
IConsoleManager consoleManager = plugin.getConsoleManager();
console = new MessageConsole(name, null);
consoleManager.addConsoles(new IConsole[]{console});
}
然后,我可以使用以下方法打印消息:
public void print(String msg) {
MessageConsoleStream out = console.newMessageStream();
out.println(msg);
}
另外,我正在使用此方法将控制台视图置于最前面:
public void bringToFront() {
try{
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
String id = IConsoleConstants.ID_CONSOLE_VIEW;
IConsoleView view = (IConsoleView) page.showView(id);
view.display(console);
} catch(PartInitException e) {
e.printStackTrace();
}
}
有什么建议?
要将新类型的控制台添加到控制台视图,您需要提供consoleFactories
扩展:
<extension
point="org.eclipse.ui.console.consoleFactories">
<consoleFactory
class="com.example.MyConsoleFactory"
icon="icons/etool16/my-console.png"
label="My Console">
</consoleFactory>
</extension>
openConsole
就像您在现有代码中所做的那样,工厂类需要提供一个实现,在该实现中创建和显示控制台。
class ConsoleFactory implements IConsoleFactory {
@Override
public void openConsole() {
IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
MyConsole console = new MyConsole();
consoleManager.addConsoles( new IConsole[] { console } );
consoleManager.showConsoleView( console );
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句