RAP Key Binding CTRL + S calls Browser save - eclipse

I'm using RAP 2.3 and added a Key binding like that:
<extension
point="org.eclipse.ui.bindings">
<key
commandId="mysave"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+S">
</key>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="de.application.ui.SaveHandler"
id="mysave"
name="name">
</command>
</extension
But when I press CTRL+S in my Application the Browser-SaveAction is called and not my SaveHandler. Does anybody have an idea how to fix that?

Related

Eclipse Remote Application Platform (RAP) - Deploy Custom Theme

Currently trying to get my Eclipse RAP application to work with a custom styling. The documentation is giving me one headache after another and it's really hard getting into it.
Following their docs and trying to extend the default theme, I have set up my plugin.xml as follows:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.rap.ui.entrypoint">
<entrypoint
applicationId="org.______.rap.branding.application"
id="org.______.rap.branding.entrypoint"
brandingId="______"
path="/rap">
</entrypoint>
</extension>
<extension
id="org.______.rap.branding.application"
point="org.eclipse.core.runtime.applications">
<application
cardinality="singleton-global"
thread="main"
visible="true">
<run
class="org.______.rap.branding.Application">
</run>
</application>
</extension>
<extension
point="org.eclipse.ui.perspectives">
<perspective
class="org.______.rap.branding.Perspective"
id="org.______.rap.branding.perspective"
name="name">
</perspective>
</extension>
<extension
point="org.eclipse.rap.ui.branding">
<branding
id="______"
themeId="org.eclipse.rap.rwt.theme"
title="______ Theme">
</branding>
</extension>
<extension
point="org.eclipse.rap.ui.themes">
<themeContribution
file="theme/______.css"
themeId="org.eclipse.rap.rwt.theme" />
</extension>
</plugin>
I've blanked out some parts, just asume they're all the same keyword, lowercase letters only.
My .css-File is as simple as it could be to see, if the hook works:
* {
background: red !Important;
}
But it just loads the default theme, no changes whatsoever and I can't detect the injection anywhere on the page.
Appears the hook itself is correct, but RAP couldn't handle the background-property. Changing it to background-color instead did the trick.

Add menu entry to Configure menu in Eclipse

I develop an Eclipse plug-in and I need to add an entry to the Configure menu. I don't find any way to do this.
My plug-in extension look like this:
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="true"
locationURI="menu:org.eclipse.ui.projectConfigure?after=org.eclipse.m2e.enableNatureAction">
<command
commandId="org.tatami.commands.commandConfigure"
label="Convert to Tatami Project"
style="push">
</command> tooltip="Convert to Tatami Project">
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
defaultHandler="tatami.commands.ConfigureHandler"
description="Ajouter le framework de test Tatami au Projet"
id="org.tatami.commands.commandConfigure"
name="Convert to Tatami Project">
</command>
</extension>
Do you find any error in my code?
did you find any error when starting ?
You could try :
locationURI="popup:org.eclipse.ui.projectConfigure?after=additions">

Eclipse plugin: Disable context menu contributon if no xml is selected

We're developing an eclipse-plugin and have some contributions for the context-menu in the package-explorer. Using the old org.eclipse.ui.popupMenus, we could specify a name-filter in the contribution, so the menu-entry is only shown if the selected file has a specific name:
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="false"
id="..."
nameFilter="file.xml"
objectClass="org.eclipse.core.resources.IFile">
...
</objectContribution>
</extension>
Now, we want to use the new way to create that context-menu and can also disable the entry, if it's no file:
<extension
point="org.eclipse.ui.menus">
<menuContribution
allPopups="false"
locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command
commandId="..."
label="..."
style="push">
</command>
</menuContribution>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
id="..."
name="...">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="..."
commandId="...">
<activeWhen>
<with
variable="selection">
<iterate
ifEmpty="false"
operator="and">
<adapt
type="org.eclipse.core.resources.IFile">
</adapt>
</iterate>
</with>
</activeWhen>
</handler>
</extension>
(Also compare: Enable/disable menu item in Eclipse plugin)
However, we not only want to disable the entry, when there's no file selected, but also, when the file isn't an xml-file. We tried to hack something in the <activeWhen>-tag, but we couldn't find a solution to let it watch the filename, too.
Is there a possibility to do this? And if: How?
There is an Eclipse wiki page about Menu Contributions/IFile objectContribution which might help. I haven't tested it myself, but it seems the nameFilter attribute of the action-based extension can be replaced with a call to a predefined property tester with id org.eclipse.core.resources.name when using the command framework.

Is there any way to add a shortcut key in eclipse from plugin on runtime?

I am developing a plugin in eclipse . Currently we are using "org.eclipse.ui.bindings" extension point for providing shortcut keys . But it's a static option for providing shortcut key for action . Our user's face some difficulty to using my plugin without shortcut keys . Is there any option to add a shortcut keys on runtime via eclipse plugin ?.
<extension
point="org.eclipse.ui.commands">
<category
name="ZMedia Shortcuts Category"
id="com.zmedia.viewer.commands.category">
</category>
<command
name="Update Zmedia Deployable Instances"
categoryId="com.zmedia.viewer.commands.category"
id="com.zmedia.viewer.commands.UpdateZmediaDeployableInstances">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="com.zmedia.viewer.handlers.UpdateZmediaDeployableInstances"
commandId="com.zmedia.viewer.commands.UpdateZmediaDeployableInstances">
</handler>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
commandId="com.zmedia.viewer.commands.UpdateZmediaDeployableInstances"
sequence="M1+M2+ESC">
</key>
</extension>
The extension point description explicitly denies that:
API Information:
There is no public API for defining bindings. To try to achieve stability for the user, bindings are only defined through the extension points. If you are an RCP application, you should be able to override this behaviour in the WorkbenchAdvisor.

How to extend the source menu in Eclipse? (or: What is its locationURI?)

I am developing an eclipse plugin and trying to extend the source menu (mainMenubar/Source - visible when editing in the java-editor) in Eclipse 3.7.
The documentation says to rely on the org.eclipse.ui.menus-extension point since the older extension points are deprecated. It is a complete secret to me where to obtain reliable locationURIs, but I finally managed to find some plausible URI with the Plugin Spy (following an advice here).
So the following should be the extension snippet for the plugin.xml:
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="menu:org.eclipse.jdt.ui.source.menu">
<command
commandId="some.command.id"
label="Some label"
style="push">
</command>
</menuContribution>
</extension>
Unfortunately, when running the plugin for my development IDE no command appears, and also no error message. Just nothing happens. When I set the locationURI to "menu:help", the new command appears in the help menu, so the problem seems to be really the locationURI.
This thread reports having added an entry in the main Source menu:
<!-- main menu -->
<extension point="org.eclipse.ui.actionSets">
<actionSet label="Java Coding"
description="Action set containing coding related Java actions"
visible="true"
id="org.eclipse.jdt.ui.CodingActionSet2">
<menu label="&Source"
path="edit"
id="org.eclipse.jdt.ui.source.menu">
</menu>
<action class="org.gsoc.eclipse.tostringgenerator.actions.GenerateToStringActionDelegate "
id="org.gsoc.eclipse.tostringgenerator.action"
label="Generate to&String()..."
menubarPath="org.eclipse.jdt.ui.source.menu/generateGroup">
</action>
</actionSet>
</extension>
I ran into the same problem. I finally figured out that extending the Source menu using the (recommended) extension point org.eclipse.ui.menus is not possible.
The reason is that a menu defined in an old style actionSet (like the Source menu) is created after the processing of org.eclipse.ui.menus-extensions. The way it is, these extensions can only contribute to already existing menus.
So sticking to the old API (as suggested by VonC) is probably the best option until the jdt plugin is migrated to the new approach...
You can use the popup: space instead of the menu: space. Here is a working example:
<extension point="org.eclipse.ui.commands">
<command defaultHandler="com.igenox.plugin.dpbuilder.rcp.handler.CreateBuilderHandler"
id="com.igenox.plugin.DPBuilder.CreateBuilderPattern" name="CreateBuilderPattern">
</command>
</extension>
<extension point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.jdt.ui.source.menu?after=DPSeparator">
<command commandId="com.igenox.plugin.DPBuilder.CreateBuilderPattern"
id="createBuilder" label="Create Builder Pattern">
</command>
</menuContribution>
<menuContribution
locationURI="popup:org.eclipse.jdt.ui.source.menu?after=additions">
<separator name="DPSeparator" visible="true">
</separator>
</menuContribution>
</extension>