visibleWenn der Befehl im Kontextmenü angezeigt werden soll

8

Ich probiere die Sichtbarkeit eines Befehls innerhalb des Kontextmenüs mit 'visibleWhen' in einem menuContribution aus. Ich versuche den Befehl nur im Kontextmenü sichtbar zu machen, wenn Sie:

  1. Klicken Sie mit der rechten Maustaste auf bestimmte Dateitypen (Ressourcen) in der Ressourcenansicht (oder Paketansicht)
  2. Klicken Sie mit der rechten Maustaste auf den entsprechenden Editor, der den Dateityp geöffnet hat. Es kann erkennen, dass mein Editor geöffnet ist oder dass der Editor eine bestimmte Ressource geöffnet hat.

Ich habe die erste mit 'visibleWhen' & gt; 'Auswahl (mit)' & gt; 'iterate' & gt; 'org.eclipse.core.resources.IResource (adapt)' durchgeführt und dann die Dateierweiterung für die Ressource überprüft . Der Code ist unten aufgeführt. Ich bin mir jedoch nicht sicher, wie derselbe Befehl nur dann angezeigt wird, wenn Sie mit der rechten Maustaste auf den richtigen Editor klicken, der eine Datei mit den korrekten Erweiterungen - ext1, ext2 - geöffnet hat.

Überprüfen, ob mein Editor aktiv ist, behebt das zweite Problem, scheint aber nicht zu helfen, da ich, wenn ich auf Dateien klicke, die nicht mein Typ sind, den Befehl immer noch im Kontextmenü anzeigen werde.

Irgendwelche Empfehlungen? Die "Eclipse Plug-ins (3rd Edition)" zeigt ein Beispiel für das Kontextmenü des Editors, aber es verwendet Aktionen und ich möchte bei den Befehlen bleiben.

Danke !!

%Vor%     
blissfool 08.04.2011, 07:43
quelle

3 Antworten

1

Ich konnte es mit einer with -Variable, auf die ich gestoßen bin, erledigen. Verwenden Sie dasselbe Codebeispiel oben:

  • Fügen Sie einen <or> -Block innerhalb des <iterate> -Blocks
  • hinzu
  • Platzieren Sie den vorhandenen <adapt> -Block im neuen <or> -Block
  • Fügen Sie eine neue with Variable namens activeEditorInput
  • hinzu

Hier ist das neue Codebeispiel.

%Vor%     
blissfool 20.04.2011, 08:55
quelle
9

@blissfool, würde ich eine leichte Umstrukturierung vorschlagen. Sie können Ihren Basistest (der korrekt ist) in einen org.eclipse.core.expressions.definitions -Block setzen:

%Vor%

Dann in Ihrem visibleWhen bewegen Sie den activeEditorInput Test bis zum Anfang:

%Vor%     
Paul Webster 28.04.2011 13:11
quelle
1

Sie könnten Ihre eigene PropertyTester .

    
Matthias Kempka 08.04.2011 10:01
quelle

Tags und Links