Programmazione:Java/Eclipse RCP/Override tasti funzione nell'applicazione
Da WikiSitech.
Vai alla navigazioneVai alla ricercaPer fare il binding dei tasti nell'applicazione bisogna utilizzare i seguenti ExtensionPoint, censendo il command, il keybinding e l'handler da richiamare
<plugin>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="com.netsitech.sample.action.command.exit"
contextId="org.eclipse.ui.contexts.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="ESC">
</key>
</extension>
<extension
point="org.eclipse.ui.commands">
<command
categoryId="org.eclipse.ui.category.views"
id="com.netsitech.sample.action.command.exit"
name="Esci">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="com.netsitech.sample.action.binding.InternalKeyBindingHandler"
commandId="com.netsitech.sample.action.command.exit">
</handler>
</extension>
</plugin>
Utilizzando il tag enabledWhen è possibile limitare la visibilità del binding
<extension
point="org.eclipse.ui.handlers">
<handler
class="com.netsitech.sample.action.binding.InternalKeyBindingHandler"
commandId="com.netsitech.sample.action.command.exit">
<enabledWhen>
<with
variable="activePartId">
<equals
value="ID_DELLA_VISTA">
</equals>
</with>
</enabledWhen>
</handler>
</extension>
Nell'handler poi bisogna gestire il command definito
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
public class InternalKeyBindingHandler extends AbstractHandler {
protected static String INTERNAL_COMMAND_EXIT = "com.netsitech.sample.action.command.exit"; //$NON-NLS-1$
public Object execute(ExecutionEvent event) throws ExecutionException {
if (INTERNAL_COMMAND_EXIT.equals(event.getCommand().getId())) {
// Gestione evento associato all'ESC
}
return null;
}
}