将自定义控制台添加到 Eclipse 控制台列表
Add custom console to Eclipse console list
基于此 tutorial,我正在创建一个提供新控制台的 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>
工厂 class 需要为 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 );
}
}
基于此 tutorial,我正在创建一个提供新控制台的 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>
工厂 class 需要为 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 );
}
}