2009-07-08 4 views
1

Ich arbeite an einer Eclipse RCP-basierten Anwendung, und wir haben entschieden, dass keine der Menüoptionen Symbole neben dem Text anzeigen soll. Das Problem, das wir sehen, ist, dass die Standardaktionen wie Rückgängig, Wiederholen, Ausschneiden, Kopieren, Einfügen usw. die Standardsymbole für die entsprechenden Aktionen anzeigen.Wie entferne ich Symbole von Menüelementen in einer Eclipse RCP-basierten Anwendung?

Gibt es eine Möglichkeit, der Action Management-Infrastruktur mitzuteilen, dass sie die Symbole ignorieren soll? Meine Brute-Force-Lösung bestand darin, die SWT so umzubauen, dass MenuItem.setImage() ein No-Op war, und dann unsere eigene Kopie der SWT in das Endprodukt aufzunehmen, aber es scheint, als sollte es eine leichtere Lösung geben .

Antwort

2

Dies erwies sich als einfacher als ich gehofft hatte.

Erstellen Sie eine Unterklasse von org.eclipse.ui.application.ActionBarAdvisor. Überschreiben Sie die Methode Register wie folgt aus:

protected void register(IAction action) { 
    super.register(action); 
    action.setImageDescriptor(null); 
} 

Dann eine Unterklasse von org.eclipse.ui.application.WorkbenchWindowAdvisor erstellen, die createActionBarAdvisor überschreibt:

public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) { 
    return new MyActionBarAdvisor(configurer); 
} 

Das ist es. Alle Aktionen haben keine Symbole mehr.

0

Ich glaube, Sie wollen gehen in den manifesten weiter untersuchen und suchen in org.eclipse.ui.views und zu sehen, ob es etwas da drin ist Symbole zum Entfernen

0

Was ist der Grund für die nicht-Symbole einschließlich? Es wurde viel Aufwand in die Erstellung einer Standardschnittstelle gesteckt. Was wäre der Vorteil, vom Standard abzuweichen? Glauben Sie, dass ihre Auslassung die Benutzerfreundlichkeit erhöht?

Nachdem Sie alles gesagt haben, könnten Sie versuchen, ein Fragment mit einigen AspectJ um Ratschläge zum Abfangen von Aufrufen von setImage() und Veto ihnen.

+0

Wir wollen eine Anwendung, die nicht wie die Eclipse-Workbench aussieht. RCP definiert nicht, wie eine "Standardschnittstelle" aussieht, und die Symbole erscheinen nirgendwo sonst in der Benutzeroberfläche. Wenn sie etwas hinzufügen, fügen sie Verwirrung hinzu, indem sie dort sind. –

0

Sie können dies tun, indem Sie auf der Registerkarte Erweiterung in plugin.xml.add die Erweiterung org.eclipse.ui.menu (wenn nicht vorhanden) .Rechte klicken Sie auf ein neues Menü contribution.wieder Rechtsklick und erstellen Sie eine neue menu.hier Sie haben die Möglichkeit, die Bilder mit denen zu ändern, die in Ihrem Icon-Ordner in Ihrem Klassenpfad gespeichert sind