Eclipse Titel anpassen

rastard

Grünschnabel
Hallo Leute,

Ich möchte folgendes Eclipse Standardverhalten auf ein eigenes Plugin übertragen:

Wenn ich in Eclipse in der Java Perspektive eine .java Datei öffnen wird mir der Pfad dieser Datei im Titel angezeigt. Also etwa so: "Java - A/B/C.java - Eclipse SDK".

Nun möchte ich genau das Verhalten auf ein eigenes Plugin übertragen. Anstelle des Pfades soll dort der Datenbankname stehen mit der der Benutzer gerade verbunden ist.

Meine Frage also: wie kann ich den Titel von Eclipse dynamisch ändern?

Danke schonmal
 
Moin,

verstehe nicht so ganz, was Du willst ..... :rolleyes:

Willst Du die Titelzeile von Eclipse ändern?
Geht IMHO nicht !

Oder die Titelzeile Deiner Anwendung?
Dann mit "<DeinObjekt>.setTitle(String title)" ....

Gruß
Klaus
 
Ich würde nicht sagen, dass ich die Titelzeile von Eclipse ändern möchte sondern eher die Titelzeile meines Plugins.
Die Titelzeile des Plugins besteht aus dem Namen der Perspektive (angenommen "myPerspective") die gerade geöffnet ist und dem postfix "- Eclipse SDK". Zusammen dann "myPerspective - Eclipse SDK".
Wie kann ich diesen Namen dynamisch ändern? Vielleicht über den Perspektivennamen, aber ich weiss nicht wie ich da rankomme.
 
Hallo,

wenn du in deiner Anwendung einen Editor hast dessen EditorInput IFileEditorInput implementiert oder von FileStoreEditorInput erbt, dann wird der Resource-Path der gerade editierten Datei im Window-Title angezeigt.

Den Code dazu kannst du dir in org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor
in den Methoden computeTitle() / computeTitlePath(..) anschauen

Ansonsten könntest du es auch mal so probieren:
Java:
org.eclipse.ui.internal.tweaklets.TitlePathUpdater titlePathUpdater = (org.eclipse.ui.internal.tweaklets.TitlePathUpdater)org.eclipse.ui.internal.tweaklets.Tweaklets.get(org.eclipse.ui.internal.tweaklets.TitlePathUpdater.KEY);
titlePathUpdater.updateTitlePath(window.getShell(), "your/resource/path");

Ansonsten bliebe dir noch der Weg über IWorkbenchWindowConfigurer.setTitle(..)

Brute-force:
Java:
try {
			Method getWindowConfigurerMethod = Thread.currentThread().getContextClassLoader().loadClass("org.eclipse.ui.internal.WorkbenchWindow").getDeclaredMethod("getWindowConfigurer");
			getWindowConfigurerMethod.setAccessible(true);
			IWorkbenchWindowConfigurer wc = (IWorkbenchWindowConfigurer)getWindowConfigurerMethod.invoke(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
			wc.setTitle("path/to/your/resource" + System.currentTimeMillis());
		} catch (Exception e) {
			e.printStackTrace();
		}

... oder einfach:
Java:
...
window.getShell().setText("path/to/resource"+ System.currentTimeMillis());
...

Gruß Tom
 
danke für die schnelle Hilfe!

ich habe die "Brute-Force" Lösung implementiert.
Auf die getWindowConfigurer methode auf diese weise zuzugreifen ist wirklich ein bisschen "brute" aber es funktioniert :)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück