# TableViewer und Databinding



## sutcha (29. Apr 2009)

Moin,

ich arbeite mich gerade in RCP und Databinding ein.

In einer View habe ich einen TableViewer, der eine Liste von z.B. Personen beinhaltet. Die Spalten zeigen nur einen Teil der Informationen (z.B. Name, Personalnummer). Diese Liste kann ich mit Hilfe von Databinding realisieren.
Wie ist es aber, wenn ich über ein Kontextmenü eine weitere Person anlegen/editieren will (über eine andere View, evtl. Wizard). Wie übergebe ich die Referenz auf das richtige Model (also die richtige Person) oder woher weiß die View, welches Model angezeigt und evtl. bearbeitet werden soll?

Eine weitere Frage: wie ist das mit dem Wizard von JFace? ich bräuchte noch andere Buttons usw., wahrscheinlich ist es einfacher ein Pseudo-Wizard nachzubauen oder?

Danke für eure Hilfe!


----------



## Wildcard (29. Apr 2009)

Das wichtigste solltest du hier finden:
Eclipse Databinding with Eclipse RCP applications - Tutorial
Wenn EMF für dich eine Option ist, lassen sich übrigens auch sehr schöne GUIs vollautomatisch und dynamisch erzeugen. Der generische EMF Editor ist ein Beispiel dafür:
Generic Editor


----------



## sutcha (30. Apr 2009)

Vielen Dank.

Das Tutorial kenn ich schon, das reicht mir aber nicht ganz. Ich möchte aus einer Tabelle ein Feld editieren. Dieser "Editor" ist dann in einem anderen Fenster. Vielleicht ist das ein Verständnisproblem von mir, aber wie bekomme ich die Daten in den Editor? Woher weiß das Databinding, welches Objekt ich gerade benötige?

Was genau sind die Vorteile von EMF? ich hab das nur mal am Rande gehört


Wie ist das mit dem Databinding und Hibernate? Es sind ja keine POJOs mehr, weil sie eine bestimmte Klasse erweitern.


----------



## Wildcard (30. Apr 2009)

Wo etwas bearbeitet wird ist doch egal solange es sich auf die selbe Instanz des Modells bezieht. Die verschiedenen Sichten auf ein Modell aktualisieren sich dann wenn das Modell Notifications über Zustandsänderungen schickt. Das macht man entweder händisch, oder eben per Databinding.



> Was genau sind die Vorteile von EMF? ich hab das nur mal am Rande gehört


Das sind viele... mit EMF beschreibt man ein programmiersprachenunabhängiges Metamodell entweder per UML, per Ecore Editor, per XSD, oder mit annotierten Java Interfaces und lässt sich anschließend den Code für das Modell generieren.
EMF Modelle sind unabhängig von der Persistierung (XML, Datenbank, plain Text,...) und bieten viele nette Features wie Notification und Adapter support, das Modell hält sich selbst konsistent. Zusätzlich ist die Infrastruktur für zB Validierung, Compare, Diff, Databinding,... bereits vorhanden.



> Wie ist das mit dem Databinding und Hibernate? Es sind ja keine POJOs mehr, weil sie eine bestimmte Klasse erweitern.


Was hat vererbung damit zu tun?
EMF Modelle können übrigens auch mit Hibernate persistiert werden, zB mit EMF Teneo.


----------



## sutcha (30. Apr 2009)

ja, und eben genau das will ich wissen. Woher weiß die View, auf welche Instanz sie sich beziehen soll?


----------



## Wildcard (30. Apr 2009)

Na du fütterst doch irgendwelche Widgets mit Daten also weißt du doch um welche Instanz es sich handelt.


----------



## sutcha (30. Apr 2009)

ja, stimmt. das war ein Denkfehler von mir.

Eine ganz andere Frage: ich will ein Wizard erstellen, aber das JFace-Wizard reicht mir nicht. Was mach ich am besten? ich bräuchte noch 1-2 Buttons und eine gesonderte Funktionalität. Alles nachprogrammieren? 
Bin bei GUIs nicht wirklich erfahren, sorry.


----------



## Wildcard (30. Apr 2009)

Erweitere einfach den WizardDialog


----------

