RCP Menubar wird durch OLE-VIEW überschrieben

tech84

Mitglied
Hi,

ich habe mir ein Plug-in geschrieben, welches ein Excel-Ole-Objekt einbettet. Dieses Plugin wird in die RCP geladen, funktioniert alles auch soweit. Sobald die View des Plugin´s geöffnet wird, überschreibt die Menüleiste vom Excel-Ole-Objekt (Einfügen, Formeln, Daten,...) meine normale RCP-Menüleiste :-(

Ich hab´s schon hinbekommen und beim Starten des Plugin´s die "normale" Leiste ausgelesen und manuell beigefügt - aber das kann ja auch nicht die Lösung sein, ich komme einfach nicht an die Ole-menubar :-(

Hiiilffee...

Gruß,

tech
 
G

Gonzo17

Gast
Also dass da ein paar Menüelemente hinzukommen, ist eigentlich ganz "normal" und passiert ja bei Programm auf Eclipse-Basis regelmäßig. Bin mir nicht ganz sicher, ob ich das richtig verstanden habe. Sagst du, dass dein Menü komplett verschwindet? Das wäre dann etwas komisch. Normalerweise hast du deine Menüeinträge, bei bestimmten Views/Editoren werden dann evtl noch weitere Einträge angezeigt und wenn diese Views/Editoren geschlossen werden, dann sind die Einträge davon auch wieder weg.
 

tech84

Mitglied
Hi,

Plugin´s können und sollen ja Menüpunkte mitbringen, das ist soweit klar. Ich bette bei mir ja Excel in mein Eclipse ein, über OLE. Die normale Leiste wird dann bei mir komplett überschrieben - (mit der Standart Menüleiste aus MS Excel)

Das Hinzufügen der Menüpunkte geschiet durch die OLE Automation ansich, da habe ich nix mit zutun :-(

Vielleicht kann man mit diesen Verben ( vgl. Eclipse Corner Article: ActiveX Support In SWT) OLE dazu bringen, die Menüpunkte erst garnicht anzuzeigen??

Ich will einfach nur meine RCP-Menüleiste behalten, das ole-objekt als view hinzufügen - aber ohne die leiste :-(

Gruß,

tech
 
Zuletzt bearbeitet:
G

Gonzo17

Gast
Ich würds erstmal mit dem Stichwort Activities probieren. Das geht relativ einfach, indem du folgende Schritte kurz ausprobierst.

Gehe zuerst einmal auf deine plugin.xml und dann auf den Reiter "Extensions". Dort musst du eine neue Extension anlegen, nämlich "org.eclipse.ui.activities".
Als nächstes erstellst du eine activity und ein activityPatternBinding. Die ID der activity ist relativ egal, du solltest sie halt nur wieder finden und sie sollte natürlich einmalig sein. Im activityPatternBinding trägst du die activityID dann ein und eine Zeile untendrunter das pattern. Da brauchst du jetzt die ID des Plug-Ins, dessen UI-Elemente du "blockieren" möchtest. Ich hab beispielsweise "org.eclipse.search.*" einmal eingetragen, um alle Menüeinträge, die etwas mit der Suche zu tun haben, zu unterdrücken.

Kannst ja mal ausprobieren, ob das bei dir klappt (vielleicht auch erstmal mit was einfachem, um zu sehen ob du es grundsätzlich verstanden hast und es funktioniert).

Edit: Alternativ kannste es ja mal so versuchen, wie es in deinem Link steht.

Java:
	Display display = new Display();
	Shell shell = new Shell(display);
	OleFrame frame = new OleFrame(shell, SWT.NONE);

	Menu bar = new Menu(shell, SWT.BAR);
	shell.setMenuBar(bar);
	
	MenuItem fileItem1 = new MenuItem(bar, SWT.CASCADE);
	fileItem1.setText("&File_Item_1");
	MenuItem fileItem2 = new MenuItem(bar, SWT.CASCADE);
	fileItem2.setText("&File_Item_2");

	MenuItem containerItem = new MenuItem(bar, SWT.CASCADE);
	containerItem.setText("&Container_Item");

	MenuItem windowItem1 = new MenuItem(bar, SWT.CASCADE);
	windowItem1.setText("&Window_Item_1");
	MenuItem windowItem2 = new MenuItem(bar, SWT.CASCADE);
	windowItem2.setText("&Window_Item_2");

	frame.setFileMenus(new MenuItem[] {fileItem1, fileItem2});
	frame.setContainerMenus(new MenuItem[] {containerItem});
	frame.setWindowMenus(new MenuItem[] {windowItem1, windowItem2});
 
Zuletzt bearbeitet von einem Moderator:

tech84

Mitglied
Hi,

danke für den Tipp, kannte das noch garnicht! Allerdings möchte ich ja nicht komplett verhindern, dass das Plugin der RCP Menüeinträge hinzufügt. Die "normalen" Einträge, die in der Plugin.xml des plugins festgelegt sind, sollen ja erscheinen. Nur halt nicht die durch das OLE-Objekt erzeugten. Geht das auch?

In dem Auszug, den du gepostet hast, fügen die nur selber Menüpunkte hinzu - dann werden allerdings die OLE Menüpunkte auch wiederum überschrieben. Kann ich meine "alten" Menüpunkte evlt stattdessen reinschreiben? Wobei das ja schon etwas unsauber ist irgendwie :-(

Auf der Seite habe ich folgendes gelesen..

Code:
OLE.OLEIVERB_INPLACEACTIVATE – Activates an object in place without displaying tools, such as menus and toolbars,

ideal wäre es, dass OLE das menü nicht an die RCP sondern an die Viewpart heftet.. :autsch:

.. aber das bringt irgendwie auch nix!

Gruß, tech
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Update auf JRE 7_71 - Klasse wird nicht gefunden? Plattformprogrammierung 3
E Maven wird nicht mehr gefunden Plattformprogrammierung 3
J Suche ein UiEvent welches mich per Injection benachrichtigt wenn die Applikation geschlossen wird. Plattformprogrammierung 1
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
M OSGi Erweiterung über Extension Point wird nicht erkannt Plattformprogrammierung 2
C Ausführbare Jar erzeugen (Datei wird nicht gefunden) Plattformprogrammierung 4
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
L RCP WelcomePage wird nicht geöffnet Plattformprogrammierung 2
S RCP Menu Contribution - Menü Button wird als inaktiv angezeigt Plattformprogrammierung 11
J RCP Verhindern, dass Editor geschlossen wird Plattformprogrammierung 5
K RCP View wird nicht angezeigt Plattformprogrammierung 2
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
J Plugin wird nicht mit gestartet Plattformprogrammierung 4
hdi Plugin Icon wird nicht angezeigt Plattformprogrammierung 7
S swt Text(feld) wird zu stark aufgebläht Plattformprogrammierung 11
M Plugin wird nicht mehr geladen Plattformprogrammierung 3
byte Equinox - Klasse aus Plug-In wird nicht gefunden Plattformprogrammierung 3
Farbtopf Tomcat durch anderes Plugin neustarten Plattformprogrammierung 0
H Toolbar durch Perspektivenwechseln ändern ? Plattformprogrammierung 2
P Fenster größe durch einen Button während des Programm läuft verändern Plattformprogrammierung 7
M JUnit 4.3.1 aus eclipse plugins durch junit 4.4 ersetzen Plattformprogrammierung 2

Ähnliche Java Themen


Oben