Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Override tasti funzione nell'applicazione"
Da WikiSitech.
Vai alla navigazioneVai alla ricerca (Nuova pagina: 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> <plugin>    <exten...)  | 
				|||
| Riga 32: | Riga 32: | ||
<code xml>  | <code xml>  | ||
| − | + | <!-- esempio di limitazione dell'handler alla visibilità di una vista -->  | |
<extension  | <extension  | ||
    point="org.eclipse.ui.handlers">  |     point="org.eclipse.ui.handlers">  | ||
Versione delle 13:59, 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;
  }
}