# Editor Schriftgröße ändern per "Java Code"



## Edub (3. Jun 2011)

Guten Tag nochmal,

ich versuche gerade die Schriftgröße / art bei dem Eclipse Editor zu ändern aber das ist nicht so leicht, wie ich es mir vorgestellt hatte. Ich habe zuerst versucht den Styled Text vom Editor zu holen und an dem die Schriftart zu ändern:

```
this.fontRegistry = new FontRegistry(Display.getCurrent());
			fontRegistry.put("demo", new FontData[] { new FontData("Verdana", 2,
					SWT.BOLD) });	
		IEditorPart editorPart = this;
		Control control = (Control) editorPart.getAdapter(Control.class);
		if (control != null) {
			control.setFont(fontRegistry.get("demo"));

		}

			this.fontRegistry = new FontRegistry(Display.getCurrent());
			fontRegistry.put("demo", new FontData[] { new FontData("Verdana", 16,
					
					SWT.BOLD) });
```

Das funktioniert soweit ganz gut aber das Problem ist, dass die Cursorgröße(der Cursor der blinkt) dann klein bleibt und das wenn die Schrift ein bisschen größer wird sehr störend ist.
Eclipse hat da auch schöne Einstellungen, aber ich habe leider nicht gefunden, wie ich auf diese Zugreifen kann und da etwas ändern kann.

Kann mir jemand einen Hinweis geben kann wie ich auf diese "Preferences" zugreifen kann?

Ich danke euch schon jetzt!


----------



## Wildcard (3. Jun 2011)

Mit InstanceScope.INSTANCE.getNode("bundle.id") kommst du an die Preferences


----------



## Edub (8. Jun 2011)

Hallo Wildcard,

danke für deine Antwort, aber ich weiß zurzeit nicht was ich damit anfangen soll. Ich habe versucht auf die Preferences zuzugreifen, aber ich "finde" immer nur eine Immutable Hash Map vor und kann damit leider nichts anfangen. Ich habe eine neue RCP Anwendung und die erweitere Ich mit einem Editor und auf bei diesem Editor soll die Schriftgröße leicht veränderbar sein. Aber im Moment hänge ich da wirklich : /


----------



## Wildcard (8. Jun 2011)

Eine Immutable Hashmap?
Ich habe dir doch Quellcode gepostet, was ist daran so unverständlich?
tp://www.vogella.de/articles/EclipsePreferences/article.html


----------



## Edub (8. Jun 2011)

Hallo nochmal,

ich habe deinen QuellCode mal versucht und einen PreferenceChangeListener registriert, der mir bei jeder änderung bescheid sagen soll. So wollte ich rausfinden, welche Einstellung ich jetzt genau ändern muss um den Font zu ändern. Aber selbst wenn ich Einstellungen für den Editor ändere, wird der Listener nicht aufgerufen.

```
IEclipsePreferences editorNode= is
				.getNode("example.editor");
		editorNode.addPreferenceChangeListener(this);
		Platform.getPreferencesService().getRootNode()
				.addPreferenceChangeListener(this);
		System.out.println("setPreferenceChangeListeners");
		PlatformUI.getPreferenceStore().addPropertyChangeListener(this);
```
Keiner der registrierten Listeners gibt mir was aus. Ich denke mal nicht, dass es die Einstellungen vom Editor sind , bei Eclipse werden die Schriftarten und farben "global" definiert, oder irre ich mich da? Zumindestens wenn ich bei Preferences->TextEditors->Colors and Fonts die Basic Schriftart ändere,  wird das für meinen Editor übernommen. Nur weiß ich nicht, wie ich diese Einstellung per Java Code übernehme.
Scheinbar stehe ich garde ziemlich stark auf dem Schlauch 

Danke soweit für deine Mühe


----------



## Wildcard (8. Jun 2011)

Du registrierst einen Listener auf dem Knoten "example.editor". Wäre ein ziemlicher Zufall wenn das Eclipse Font Setting auf dem Knoten "example.editor" definiert ist, oder?
In welchem Knoten das abgelegt wird kann ich dir auswendig nicht sagen, da wirst du schon Google oder den Quelltext bemühen müssen, oder dir die Information aus den .metadata fischen.


----------



## Edub (8. Jun 2011)

Wildcard hat gesagt.:


> Du registrierst einen Listener auf dem Knoten "example.editor". Wäre ein ziemlicher Zufall wenn das Eclipse Font Setting auf dem Knoten "example.editor" definiert ist, oder?
> In welchem Knoten das abgelegt wird kann ich dir auswendig nicht sagen, da wirst du schon Google oder den Quelltext bemühen müssen, oder dir die Information aus den .metadata fischen.



Kannst du das mit den .metadata ein bisschen näher erklären ? Ich habe Google schon mit Suchanfrage wie Preferences Eclipse Editor font  und ähnlichem geqäult, aber entweder ich finde Seiten,  wo erklärt wird, wie man die Font im Editor in Eclipse ändert oder die haben keine Antwort darauf, wie man das im Java Code ändern kann .
Der Sinn für mich hinter den Schrifteinstellungen ist es , dem Nutzer es später zu vereinfachen seinen text zu vergrößern und zu verkleinern. Ich habe es schon geschafft, die Schriftart beim Editor selber zu ändern

```
fontRegistry = new FontRegistry(Display.getCurrent());
		fontRegistry.put("demo", new FontData[] { new FontData("Verdana", 24, SWT.BOLD) })
                 control.setFont(fontRegistry.get("demo"));
```

Das Problem bei der Lösung ist 1. dass der Cursor nicht mit größer wird und 2. diese Lösung unschön ist, da es bei Eclipse ja eine Extra Preference Page dafür gibt 
Deswegen wollte ich es über die Eclipse Einstellungen einstellen.

Grüße

Edub


----------



## Wildcard (9. Jun 2011)

> Kannst du das mit den .metadata ein bisschen näher erklären ?


Die Preferences des Instance Scope werden im Verzeichnis .metadata des Workspace gespeichert. Wenn du also den Wert änderst, dann wird er da abgespeichert und dann weißt du welche Preference Node die Daten enthält.


> Ich habe Google schon mit Suchanfrage wie Preferences Eclipse Editor font und ähnlichem geqäult, aber entweder ich finde Seiten, wo erklärt wird, wie man die Font im Editor in Eclipse ändert oder die haben keine Antwort darauf, wie man das im Java Code ändern kann .


Eclipse ist *sehr* groß. Du wirst nicht für jedes Thema mundgerecht aufbereitete Häppchen finden. Selbsthilfe ist das A und das O.
Dafür gibt es Tools wie zum Beispiel den Plugin Spy. Öffne den Preferences Editor auf der entsprechenden Seite, drück Ctrl + Shift + F1 und schon kannst du zum entsprechenden Quellcode springen


----------



## Edub (9. Jun 2011)

Wildcard hat gesagt.:


> Die Preferences des Instance Scope werden im Verzeichnis .metadata des Workspace gespeichert. Wenn du also den Wert änderst, dann wird er da abgespeichert und dann weißt du welche Preference Node die Daten enthält.
> 
> Eclipse ist *sehr* groß. Du wirst nicht für jedes Thema mundgerecht aufbereitete Häppchen finden. Selbsthilfe ist das A und das O.
> Dafür gibt es Tools wie zum Beispiel den Plugin Spy. Öffne den Preferences Editor auf der entsprechenden Seite, drück Ctrl + Shift + F1 und schon kannst du zum entsprechenden Quellcode springen



Ahhh das klingt sehr sehr vielversprechend  dankeschön ich werde es ausprobieren und auf die eine oder auf die andere Weise schaffen


----------

