# RCP Anfängerfrage - Zusammenspiel View, Editor, Model



## stefan! (6. Apr 2009)

Hallo,

ich habe mir folgendes Tutorial angesehen Working with Editors, View Interaction and Model Updates 

Wenn ich alles so mache wie im Beispiel, wie komme ich dann von z.B. einem Dialog an das Model um dies zu ändern? Also hinzufügen einer neuen Person etc.


----------



## foobar (7. Apr 2009)

Du mußt dir nur das Model irgendwo zentral speichern, damit du von überall dran kommst. Dann brauchste noch sowas wie eien Facade in der du alle CRUD Operationen createPerson, deletePerson etc. hinterlegst.

Normalerweise wird das Model in der DB persistiert da arbeitet man dann mit dem DAO-Pattern oder Repositories. In dem Beispiel gehts aber nur um RCP, daher fehlt der Teil.


----------



## stefan! (7. Apr 2009)

Angenommen ich möchte das Model nur serialisieren (also die Personenliste), dann könnte ich das Model bei Programmstart laden und irgendwo statisch hinterlegen aber RCP hat doch dafür sicher schon eine eigene Funktionalität die das kann? 

Und wie kann ich die View aktualiseren wenn sich das Model ändert, denn dies geschieht nicht automatisch.


----------



## Wildcard (7. Apr 2009)

stefan! hat gesagt.:


> Angenommen ich möchte das Model nur serialisieren (also die Personenliste), dann könnte ich das Model bei Programmstart laden und irgendwo statisch hinterlegen aber RCP hat doch dafür sicher schon eine eigene Funktionalität die das kann?


Es gibt eine Million Möglichkeiten ein Modell zu persistieren. Wenn du weiß was du willst, kann man sich darüber unterhalten wie du es bekommst.



> Und wie kann ich die View aktualiseren wenn sich das Model ändert, denn dies geschieht nicht automatisch.


Es gibt den klassischen Observer/Notification Ansatz, oder JFace Databinding.


----------



## vogella (3. Mai 2009)

Hallo Stefan,

du kannst, z.B.: 

1.) Im Modell PropertyChangeSupport definieren, wie z.B. hier 

Eclipse Databinding with Eclipse RCP applications - Tutorial

2.) Dann registriert sich der View als Listener 
3.) Bei Updates würdest Du dannn entsprechend reagieren, z.B. viewer. refresh()

bei Gelegenheit füge in das mal meinem Tutorial (Eclipse RCP - Tutorial with Eclipse 3.4) hinzu; die Frage kam jetzt schon öfter.

Viele Grüße, Lars


----------

