我开发了一个Eclipse RCP应用程序,我不想使用Eclipse的默认菜单和工具栏。 这是我的plugin.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="application"
point="org.eclipse.core.runtime.applications">
<application>
<run
class="pmetest.Application">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
name="PME Perspective"
class="pmetest.ui.perspective.Perspective"
id="pmetest.perspective">
</perspective>
</extension>
<extension
point="org.eclipse.ui.views">
<view
name="My FX View From PME"
icon="icons/sample.gif"
class="pmetest.ui.view.fx.MyViewPart"
id="com.ongoladev.pmetest.MyViewPart">
</view>
<view
class="pmetest.ui.view.FormView"
id="com.ongoladev.pmetest.formview"
name="FormView from PME"
restorable="true">
</view>
</extension>
<extension
id="product"
point="org.eclipse.core.runtime.products">
<product
application="pmetest.application"
name="Hello RCP">
<property
name="windowImages"
value="icons/alt_window_16.gif,icons/alt_window_32.gif">
</property>
</product>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="pmetest.ui.command.CommandExit"
id="com.ongoladev.pmetest.Exit"
name="Exit">
</command>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="menu:org.eclipse.ui.main.menu">
<menu
id="filemenuid"
label="File My">
<command
commandId="com.ongoladev.pmetest.Exit"
label="Exit application"
style="push"
tooltip="Exit Application">
</command>
</menu>
</menuContribution>
</extension>
</plugin>
这就是我得到的
我想删除所有不必要的manu和工具栏。 感谢
答案 0 :(得分:1)
要删除菜单中的所有默认选项,您需要在ApplicationWorkbenchWindowAdvisor.java类中添加以下代码。
@Override
public void postWindowOpen() {
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IContributionItem[] items = ((WorkbenchWindow)workbenchWindow).getMenuBarManager().getItems();
for (IContributionItem item : items) {
item.setVisible(false);
}
}
答案 1 :(得分:1)
我继承了一个已有12年历史的应用程序,并试图将其更新到最新的Eclipse,遇到了这个默认菜单项出现的问题。在尝试了多个解决方案(包括API docs)后,我留下了“运行”菜单。
这让我进入了这个页面。我使用了@ShahzadIftikhar上面的解决方案并进行了调整。
具体来说,我们有一个扩展WorkbenchWindowAdvisor的类,该类包含一个只调用super.postWindowOpen()的postWindowOpen方法。在那次调用之后,我添加了以下代码,专门阻止包含“运行”菜单。此菜单包含“添加V8 / Chrome JavaScript异常断点”和“外部工具”菜单项,这些项目绝对不需要,客户专门说“摆脱它们”。
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IContributionItem[] items = ((WorkbenchWindow) workbenchWindow).getMenuBarManager().getItems();
for (IContributionItem item : items) {
if (item.getId().equals("org.eclipse.ui.run")) {
item.setVisible(false);
}
}
在应用程序中获得此代码块后,您应该只能使用项目ID来阻止任何内容。
答案 2 :(得分:0)
要完全控制菜单和工具栏,您的应用程序可以使用自己的ActionBarAdvisor
派生类。执行此操作时,您自己创建所有项目。
操作栏顾问程序是在WorkbenchWindowAdvisor
类中创建的,而WorkbenchAdvisor
类是从{{1}}类创建的。
如果您使用带有视图的&#39; RCP应用程序创建RCP插件项目&#39;示例Eclipse将为您创建这些类的示例。