我有一个使用SWT的Eclipse RCP应用程序(RCP版本4.12.0.v20190605-1801)。我想像在Java eclipse IDE中一样,将eclipse QuickAccess TextField作为搜索栏添加到我的项目中(也可以通过按ctrl + 3来获得)。
我搜索了文档,发现的唯一内容如下:
@Override
protected void fillCoolBar(ICoolBarManager coolBar) {
// ToolBar File & Additions
IToolBarManager fileToolBar = new ToolBarManager(coolBar.getStyle());
fileToolBar.add(ActionFactory.SHOW_QUICK_ACCESS.create(window)); // window == class attribute
// Add some other stuff
}
在我的情况下,这将产生一个QuickAccess按钮,但没有TextField。如果您单击它,它的工作方式相同,但我希望使用TextField,因为它对用户更清晰。
我只发现了有关如何删除TextField的线程,但没有找到如何添加文本的线程,例如SO post here。所以我想它一定是内置的功能。
如果有人感兴趣,请关注JCrypTool项目:
希望我没有错过任何重要的事情,感谢您的提前帮助。
我现在决定采用稍微不同的解决方案。
我在定义我的工具栏的plugin.xml中将QuickAccess条目作为扩展名包括在内。现在,它不再是输入文本,而是一个按钮(显示放大镜图标)。我采用这种方法是因为使用RCP扩展点非常容易实现。
这是我的plugin.xml
现在的样子(缩小版)。相关部分是扩展点org.eclipse.ui.menus
,它调用org.eclipse.ui.window.quickAccess
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension id="application" point="org.eclipse.core.runtime.applications">
<application>
<run class="org.jcryptool.core.Application"/>
</application>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="toolbar:org.jcryptool.core.searchToolbar">
<command
commandId="org.eclipse.ui.window.quickAccess"
icon="icons/searchIcon.png"
style="push">
</command>
</menuContribution>
</extension>
<extension id="product" point="org.eclipse.core.runtime.products">
<product application="org.jcryptool.core.application" name="JCrypTool">
<property name="appName" value="JCrypTool"/>
<property name="cssTheme" value="org.jcryptool.themes.default"/>
</product>
</extension>
</plugin>
看起来像这样:
对于真正理想的实现,我想您必须为此编写一些代码。但作为相当不错的RCP解决方案,对我来说还可以。