Reputation: 81
I develop an Eclipse RCP application and I don't want to use the default menu and toolbar of my Eclipse. Here is my plugin.xml file
<?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>
and that is what I get
I want to remove all unnecessery manu and toolbar. Thanks
Upvotes: 1
Views: 2209
Reputation: 340
I inherited a 12-year-old application and in trying to update it to the latest Eclipse, ran into this problem of default menu items showing up. After trying multiple solutions, including this one, I was left with the Run menu.
This brought me to this page. I used the solution by @ShahzadIftikhar above and tweaked it.
To be specific, we have a class that extends WorkbenchWindowAdvisor and that class contained a postWindowOpen method that only called super.postWindowOpen(). After that call, I added the below code to specifically block the inclusion of the "Run" menu. This menu contained the "Add V8/Chrome JavaScript Exception Breakpoint" and External Tools menu items that were definitely not needed and the client specifically said "get rid of them".
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);
}
}
Once you get this block of code in your application, you should be able to just use the item ID for whatever you want to block.
Upvotes: 2
Reputation: 523
For removing all defaults options in menu, You need to add this below code in ApplicationWorkbenchWindowAdvisor.java class.
@Override
public void postWindowOpen() {
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IContributionItem[] items = ((WorkbenchWindow)workbenchWindow).getMenuBarManager().getItems();
for (IContributionItem item : items) {
item.setVisible(false);
}
}
Upvotes: 1
Reputation: 111142
To get full control over the menus and tool bar your application can use its own ActionBarAdvisor
derived class. When you do this you create all the items yourself.
The action bar advisor is created in WorkbenchWindowAdvisor
class which in turn is created from your WorkbenchAdvisor
class.
If you create a RCP plugin project using the 'RCP application with a view' example Eclipse will create examples of these classes for you.
Upvotes: 0