# e4 Fragen (Sammelthema)



## Sonecc (19. Okt 2010)

Joa, da ich grade mit E4 rumspiele, sammeln sich einige Fragen an.
Um nicht für jede ein eigenes Thema zu machen, mache ich daher dieses Sammelthema auf.

1. Frage:
Wenn ich eine e4 RCP erstelle, dann speichert Eclipse den Zustand ab. Das bedeuted, dass mein Fenster die gleiche Größe hat wie beim letzten schließen, dass die gleichen Editoren offen sind usw.
Kann man dies abschalten?


----------



## dzim (19. Okt 2010)

kA ob es dass ist was du meinst, aber Lars Vogel hatte in seinem Blog neulich einen Post, der dem vielleicht Nahe kommt:

The persistence of e4  Eclipse Papercuts


----------



## Sonecc (19. Okt 2010)

Das war was ich suchte, wobei ich sagen muss, dass ich die Lösung für suboptimal halte


----------



## Tomate_Salat (19. Okt 2010)

Ich nutze mal die existenz dieses Threades aus und schmeise auch mal eine Frage rein. Wie in diesem Bericht zu lesen ist, dient der IEclipseContext als Registry. So wie ich das verstanden habe, kann ich dort eigene Klassen bekannt machen und Sie mit DI nutzen. Jetzt wollte ich wissen, welche Keys den da registriert sind. Leider finde ich keine Methode, die mir eine Liste aller Keys zurückgibt. Wie komme ich an diese?

*Edit* Reflection:

```
for(Field f : context.getClass().getDeclaredFields()) {
	if(f.getName().startsWith("localValue")) {
		System.out.println("===> " + f.getName());
		f.setAccessible(true);
		Map map	= (Map)f.get(context);
		for(Object key : map.keySet()) {
			System.out.println(key + " = " + context.get(key.toString()));		
	}
}
```


```
===> localValueComputations
org.eclipse.e4.core.commands.EHandlerService = org.eclipse.e4.core.commands.internal.HandlerServiceImpl@87e704
===> localValues
org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.MContribution = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.commands.MHandlerContainer = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
debugString = PartImpl (org.main.demo) Context
org.eclipse.e4.ui.model.application.ui.MDirtyable = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.ui.basic.MPart = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
parentContext = TrimmedWindowImpl (demo.window) Context
org.eclipse.e4.ui.model.application.ui.MUIElement = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.MApplicationElement = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.core.internal.contexts.ContextObjectSupplier = org.eclipse.e4.core.internal.contexts.ContextObjectSupplier@15f4a7f
org.eclipse.swt.widgets.Composite = Composite {}
org.eclipse.e4.ui.model.application.ui.basic.MWindowElement = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.ui.MContext = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.ui.MUILabel = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.ui.basic.MStackElement = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
org.eclipse.e4.ui.model.application.commands.MBindings = org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl@1d33a6b (elementId: org.main.demo, tags: [active]) (contributionURI: platform:/plugin/org.e4.demo/org.e4.demo.parts.Demo, object: null) (context: PartImpl (org.main.demo) Context, variables: [], widget: Composite {}, renderer: org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer@4fe91e, toBeRendered: true, onTop: false, visible: true, containerData: null, label: null, iconURI: null, tooltip: null, dirty: false, bindingContexts: [], closeable: false)
```


----------



## Sonecc (19. Okt 2010)

Alter Hacker^^


----------



## Tomate_Salat (19. Okt 2010)

hehe, der Spaß E4 zu Hacken ^^, wenn es die Informationen nicht freiwillig rausrückt, muss man Sie sich eben "organisieren"/"holen"


----------



## Gast2 (20. Okt 2010)

Tomate_Salat hat gesagt.:


> hehe, der Spaß E4 zu Hacken ^^, wenn es die Informationen nicht freiwillig rausrückt, muss man Sie sich eben "organisieren"/"holen"



Wie gesagt der release ist ja nicht offiziell da ändert sich bestimmt noch einiges deshalb wird die Doku noch nicht so weit sein.


----------



## Tomate_Salat (20. Okt 2010)

SirWayne hat gesagt.:


> Wie gesagt der release ist ja nicht offiziell da ändert sich bestimmt noch einiges deshalb wird die Doku noch nicht so weit sein.



Ist klar, trotzdem wollte ich wissen was drin steht ;-)


----------



## Sonecc (28. Jan 2011)

Mal den Thread hier wiederbeleben...

Ich entwickle gerade ein Programm in e4 und benötige dafür EMF.
Ein Ecore-Modell habe ich auch schon erstellt und entsprechend bearbeitet.
Das dazugehörige Generator-Modell konnte ich aber nicht erstellen. Ich habe einfach nicht die Möglichkeit eine genmodel datei zu erstellen.
EMF über den Update-Manager installieren verweigert er mir, weil E4 eine eigene EMF Runtime installiert hat.
Installiere ich EMF per Hand, kann ich zwar ein genmodel erstellen, das Application Model kann ich dann aber nicht mehr bearbeiten, weil der passende Editor weg ist.

Mag sein, dass ich den Wald vor lauter Bäumen nicht sehe, aber ich kriegs einfach nicht hin...

Weiß einer eine Möglichkeit EMF in E4 zu installieren, so dass ich dort ein genmodel erstellen kann?


----------

