如何将工具栏添加到 java text hover eclipse
How to add toolbar to java text hover eclipse
我正在尝试为 Eclipse 创建我自己的文本悬停插件。
我成功地在悬停中编写了自己的代码,但我尝试向悬停添加一个工具栏(在打开的新工具提示中)。
我读到我需要使用 getHoverControlCreator 函数,并且我设法添加了工具栏管理器,当文本悬停打开时我看到了 运行 插件,在调试器中我可以看到 ToolBarManger 有工具栏有ToolItems,但是我打开它的时候在真实的文本悬停中看不到它们。
这是我的代码:
public IInformationControlCreator getHoverControlCreator() {
return new IInformationControlCreator() {
public IInformationControl createInformationControl(Shell parent) {
ToolBar tb = new ToolBar(parent, SWT.HORIZONTAL);
ToolBarManager tbm = new ToolBarManager(tb);
DefaultInformationControl dic = new DefaultInformationControl(parent, tbm);
ToolItem ti = new ToolItem(tb, SWT.PUSH);
ti.setText("hello");
tb.update();
tb.redraw();
tbm.update(true);
parent.update();
parent.redraw();
parent.layout();
return dic;
}
这是 Eclipse 悬停控件之一的作用:
@Override
public IInformationControl doCreateInformationControl(Shell parent) {
ToolBarManager tbm = new ToolBarManager(SWT.FLAT);
DefaultInformationControl iControl = new DefaultInformationControl(parent, tbm);
IAction action = new MyAction();
tbm.add(action);
tbm.update(true);
return iControl;
}
因此它不会创建 ToolBar
- 将其保留到 DefaultInformationControl
。它在工具栏中使用 Action
并在创建 DefaultInformationControl 后添加它。它只是在最后调用 update(true)
。
(这是 org.eclipse.jdt.internal.ui.text.java.hover.NLSStringHover
部分的修改版本)
MyAction
类似于:
private class MyAction extends Action
{
MyAction()
{
super("Title", .. image descriptor ..);
setToolTipText("Tooltip");
}
@Override
public void run()
{
// TODO your code for the action
}
}
我正在尝试为 Eclipse 创建我自己的文本悬停插件。 我成功地在悬停中编写了自己的代码,但我尝试向悬停添加一个工具栏(在打开的新工具提示中)。 我读到我需要使用 getHoverControlCreator 函数,并且我设法添加了工具栏管理器,当文本悬停打开时我看到了 运行 插件,在调试器中我可以看到 ToolBarManger 有工具栏有ToolItems,但是我打开它的时候在真实的文本悬停中看不到它们。
这是我的代码:
public IInformationControlCreator getHoverControlCreator() {
return new IInformationControlCreator() {
public IInformationControl createInformationControl(Shell parent) {
ToolBar tb = new ToolBar(parent, SWT.HORIZONTAL);
ToolBarManager tbm = new ToolBarManager(tb);
DefaultInformationControl dic = new DefaultInformationControl(parent, tbm);
ToolItem ti = new ToolItem(tb, SWT.PUSH);
ti.setText("hello");
tb.update();
tb.redraw();
tbm.update(true);
parent.update();
parent.redraw();
parent.layout();
return dic;
}
这是 Eclipse 悬停控件之一的作用:
@Override
public IInformationControl doCreateInformationControl(Shell parent) {
ToolBarManager tbm = new ToolBarManager(SWT.FLAT);
DefaultInformationControl iControl = new DefaultInformationControl(parent, tbm);
IAction action = new MyAction();
tbm.add(action);
tbm.update(true);
return iControl;
}
因此它不会创建 ToolBar
- 将其保留到 DefaultInformationControl
。它在工具栏中使用 Action
并在创建 DefaultInformationControl 后添加它。它只是在最后调用 update(true)
。
(这是 org.eclipse.jdt.internal.ui.text.java.hover.NLSStringHover
部分的修改版本)
MyAction
类似于:
private class MyAction extends Action
{
MyAction()
{
super("Title", .. image descriptor ..);
setToolTipText("Tooltip");
}
@Override
public void run()
{
// TODO your code for the action
}
}