Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Override tasti funzione nell'applicazione"
Da WikiSitech.
Vai alla navigazioneVai alla ricerca| Riga 1: | Riga 1: | ||
| + | [[Programmazione:Java/Eclipse_RCP|<< Back to Eclipse RCP]]  | ||
| + | |||
Per fare il binding dei tasti nell'applicazione bisogna utilizzare i seguenti ExtensionPoint, censendo il command, il keybinding e l'handler da richiamare  | Per fare il binding dei tasti nell'applicazione bisogna utilizzare i seguenti ExtensionPoint, censendo il command, il keybinding e l'handler da richiamare  | ||
<code xml>  | <code xml>  | ||
Versione attuale delle 14:16, 27 mag 2008
Per 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;
  }
}