# Action und KeyBinding



## Gast2 (24. Sep 2009)

Hallo,

ich habe im plugin.xml eine ActionSet angelegt und darin eine IWorkbenchWindowActionDelegate. 
Wie kann ich dieser Action ein KeyBinding mitgeben der accerator ist decaparted und was ich mit der definitonID mach hab ich kein plan ?


----------



## Wildcard (24. Sep 2009)

Platform Command Framework - Eclipsepedia


----------



## Gast2 (25. Sep 2009)

Danke erstmal
2 Fragen hätte ich dazu.
1.Wenn ich es richtig verstanden habe, brauch ich jetzt ein command mit einem IServiceHandler und dieser handler ruft dann mit key den command in meiner action auf???
2.Da steht in 3.2 gibt es keine unterstüzuung darum macht man es in mit IActionDelegate ?? Macht es in späteren Versionen anders???


----------



## vogella (27. Sep 2009)

Actions sind veraltet und man sollte Commands verwenden. Commands sind hier beschrieben: Eclipse Commands with Eclipse 3.5 (Galileo) - Tutorial


----------



## Gast2 (27. Sep 2009)

Danke klappt schon ganz gut.
Was noch nicht ganz klappt ist in meinem 
	
	
	
	





```
AbstractHandler
```
 hab ich die Methode

```
public boolean isEnabled() {
```
 überschrieben. Wie bekomm ich hier mit, dass sich sich zum Beispiel die View oder Editor gewechselt hat?


----------



## Gast2 (27. Sep 2009)

okay habs jetzt mal so versucht

[XML]
      <handler
            class="ui.command.MaskDeleteHandler"
            commandId="MaskDelete">
         <enabledWhen>
            <with
                  variable="activeEditorId">
               <equals
                     value="1">
               </equals>
            </with>
         </enabledWhen>
      </handler>
[/XML]

aber der command ist immer enabled --> gelöst hatte handler

2. Frage wenn ich den standard command delete verwende darau einen handler setze bleibt der command auch imemr disabled

[XML]
      <handler
            class="ui.command.DeleteHandler"
            commandId="org.eclipse.ui.edit.delete">
      </handler>
[/XML]


----------



## Gast2 (27. Sep 2009)

Kann man ein command auch erst enabled machen, wenn ich eine methode aufrufe...


----------



## Gast2 (28. Sep 2009)

Okay vielleicht nochmal genauer was ich machen möchte =)

ich hab einen handler der soll nur enabled sein wenn der activeEditor IClearable implmenetiert ...
das funktioniert auch, aber jetzt möchte ich noch eine 2 condition und zwar soll activeEditor isClear (von IClearable) true sein

[XML]
   <handler
            class="ui.command.MaskDeleteHandler"
            commandId="MaskDelete">
         <enabledWhen>
            <with
                  variable="activeEditor">
               <instanceof
                     value=IClearable>
               </instanceof>
            </with>
         </enabledWhen>
      </handler>
[/XML]


```
public interface IClearable
{
public boolean isClear();
...
}
```


----------



## Gast2 (28. Sep 2009)

ich habs 

Mit einem eigenen PropertyTester klappt es...
Rezepte


----------

