G
Gonzo17
Gast
Heyho,
ich bin beim Basteln an meinem RCP Plug-In mal wieder auf ein paar Sachen gestoßen, die ich nicht lösen kann (oder nur unschön).
Zuerst einmal ist mir aufgefallen, dass ein paar Buttons in meiner CoolBar sind, die ich da nicht haben möchte. Und in den Menüs auch. Also hab ich mich erkundigt, wo die herkommen und habe herausgefunden, dass manche der Plug-Ins, die ich einbinde, ActionSets haben und diese Buttons/Menüeintrage eben daher stammen. Die Sache ist nun die, dass ich nicht einfach in den ActionSets der Plug-Ins rumpfuschen kann, also muss ich sie nachträglich löschen, deaktivieren oder unsichtbar machen. Ich habe versucht, das über die Methode "perspective.getAlwaysOnActionSets()" zu regeln, aber dazu muss ich ja erstmal die Perspective haben, die ich standardmässig benutze. Ich weiss aber nicht, wie ich die bekommen soll, wenn noch kein IWorkbenchWindow erstellt wurde. Im Moment sieht es in meiner ApplicationWorkbenchWindowAdvisor Class so aus:
Ein ActionSet zu verstecken klappt mit "setInitiallyVisible(false)" eigentlich auch ganz gut, ABER! Da ich das erst aufrufe, nachdem das Fenster erstellt wurde (wie der Name postCreateWindow ja sagt), werden die ActionSets beim ersten Aufrufen des Programms noch angezeigt. Beim zweiten Aufruf dann logischerweise nicht mehr, aber das ist ja nicht Sinn und Zweck der Sache. Ich würds ja in die preWindowOpen-Methode schreiben, aber da zu diesem Zeitpunkt kein IWorkbenchWindow erstellt wurde, kann ich auch nich die Perspective finden. Zwickmühle.
Meine erste Frage wäre also, wie man ActionSets geschickter außer Gefecht setzen kann oder wie man die Perspective unabhängig vom Fenster ansprechen kann (falls das überhaupt geht, da zweifle ich dran..).
Nun mein zweites Problem. Ich hab für mein RCP Plug-In ein Menü gebastelt, weil die Menüs ja nicht mitgeliefert werden (die Actions, die sich dahinter vergeben, zum größten Teil aber schon). War auch nich viel Aufwand, mehr Schreib- wie Denkarbeit. Leider sieht das ein bisschen unschön aus. Zuerst kommt "mein" Menü mit "File", "Edit", "Window" und "Help", danach kommt "Search" (das ich nicht erstellt habe, sondern wohl durch ein ActionSet in irgendeinem Plug-In hinzukommt) und noch ein Menüpunkt von einem andern Plug-In. Ist deshalb unschön, weil es so sein sollte, wie man es kennt. "Help" ganz rechts, als letztes Element im Menü. Jetzt hab ich schon was weiss ich wie versucht, auf das GANZE Menü zuzugreifen, also "mein" Menü und die Menüpunkte, die automatisch ergänzt wurden. Aber irgendwie wills mir nich gelingen. Ich möchte das Menü einfach nur neu anordnen. Und was auch auffällt (unter XP sieht man das fast nicht, aber unter Vista). Da sind zwischen zwei Menüs jeweils wenige Pixel mehr Platz als vorgesehen. Wenn man unter XP mit der Maus drauf geht, dann ist da ein kleiner Punkt, unter Vista ist da einfach nur ein bisschen mehr Freiraum. Ich vermute, dass das irgendwelche leeren Menüelemente sind oder sowas und die sollte man eigentlich auch raushauen.
Meine zweite Frage ist also: wie kann ich auf das komplette Menü, so wie es angezeigt wird, zugreifen, um es zu sortieren?
Bin über jede Antwort froh.
ich bin beim Basteln an meinem RCP Plug-In mal wieder auf ein paar Sachen gestoßen, die ich nicht lösen kann (oder nur unschön).
Zuerst einmal ist mir aufgefallen, dass ein paar Buttons in meiner CoolBar sind, die ich da nicht haben möchte. Und in den Menüs auch. Also hab ich mich erkundigt, wo die herkommen und habe herausgefunden, dass manche der Plug-Ins, die ich einbinde, ActionSets haben und diese Buttons/Menüeintrage eben daher stammen. Die Sache ist nun die, dass ich nicht einfach in den ActionSets der Plug-Ins rumpfuschen kann, also muss ich sie nachträglich löschen, deaktivieren oder unsichtbar machen. Ich habe versucht, das über die Methode "perspective.getAlwaysOnActionSets()" zu regeln, aber dazu muss ich ja erstmal die Perspective haben, die ich standardmässig benutze. Ich weiss aber nicht, wie ich die bekommen soll, wenn noch kein IWorkbenchWindow erstellt wurde. Im Moment sieht es in meiner ApplicationWorkbenchWindowAdvisor Class so aus:
Java:
@Override
public void postWindowCreate() {
IWorkbenchWindow window = getWindowConfigurer().getWindow();
IPerspectiveDescriptor perspectiveDescriptor = window.getWorkbench()
.getPerspectiveRegistry().getPerspectives()[0];
Perspective perspective = ((WorkbenchPage) window.getActivePage())
.findPerspective(perspectiveDescriptor);
IActionSetDescriptor[] actionSets = perspective.getAlwaysOnActionSets();
// hier soll dann etwas mit den ActionSets passieren
}
}
Ein ActionSet zu verstecken klappt mit "setInitiallyVisible(false)" eigentlich auch ganz gut, ABER! Da ich das erst aufrufe, nachdem das Fenster erstellt wurde (wie der Name postCreateWindow ja sagt), werden die ActionSets beim ersten Aufrufen des Programms noch angezeigt. Beim zweiten Aufruf dann logischerweise nicht mehr, aber das ist ja nicht Sinn und Zweck der Sache. Ich würds ja in die preWindowOpen-Methode schreiben, aber da zu diesem Zeitpunkt kein IWorkbenchWindow erstellt wurde, kann ich auch nich die Perspective finden. Zwickmühle.
Meine erste Frage wäre also, wie man ActionSets geschickter außer Gefecht setzen kann oder wie man die Perspective unabhängig vom Fenster ansprechen kann (falls das überhaupt geht, da zweifle ich dran..).
Nun mein zweites Problem. Ich hab für mein RCP Plug-In ein Menü gebastelt, weil die Menüs ja nicht mitgeliefert werden (die Actions, die sich dahinter vergeben, zum größten Teil aber schon). War auch nich viel Aufwand, mehr Schreib- wie Denkarbeit. Leider sieht das ein bisschen unschön aus. Zuerst kommt "mein" Menü mit "File", "Edit", "Window" und "Help", danach kommt "Search" (das ich nicht erstellt habe, sondern wohl durch ein ActionSet in irgendeinem Plug-In hinzukommt) und noch ein Menüpunkt von einem andern Plug-In. Ist deshalb unschön, weil es so sein sollte, wie man es kennt. "Help" ganz rechts, als letztes Element im Menü. Jetzt hab ich schon was weiss ich wie versucht, auf das GANZE Menü zuzugreifen, also "mein" Menü und die Menüpunkte, die automatisch ergänzt wurden. Aber irgendwie wills mir nich gelingen. Ich möchte das Menü einfach nur neu anordnen. Und was auch auffällt (unter XP sieht man das fast nicht, aber unter Vista). Da sind zwischen zwei Menüs jeweils wenige Pixel mehr Platz als vorgesehen. Wenn man unter XP mit der Maus drauf geht, dann ist da ein kleiner Punkt, unter Vista ist da einfach nur ein bisschen mehr Freiraum. Ich vermute, dass das irgendwelche leeren Menüelemente sind oder sowas und die sollte man eigentlich auch raushauen.
Meine zweite Frage ist also: wie kann ich auf das komplette Menü, so wie es angezeigt wird, zugreifen, um es zu sortieren?
Bin über jede Antwort froh.