RCP View aktualisieren bei Änderung 2. View

Biene_Maja

Mitglied
Hi,

ich habe eine Main-View mit einem TreeViewer der Projekte und als Zweige Personen in diesen Projekten enthält. Das ganze arbeitet mit einer Datenbank, das Model des TreeViewer's ist die Tabelle Projekte die eine m:n Beziehung mit der Tabelle Personen hat. Durch ein Command kann eine 2. View, "Personen verwalten", geöffnet werden, (Model ist die Tabelle Personen) in der alle vorhandenen Personen in einem TableViewer gelistet sind. In dieser View können Personen geändert, gelöscht oder erstellt werden. Ändere ich jetzt bspw. eine Person speichere ich das im Model und die Tabelle wird durch DataBinding aktualisiert. Da in der Main-View aber auch Personen sind (nämlich diejenigen die auch in Projekten sind) muss ich auch diese aktualisieren nur wie?

Für mich stellen sich jetzt 2 Probleme.
1. Wie erfährt die Main-View das das Model der 2. View geändert wurde?
2. Wie aktualisiere ich dann die Main-View (mir kommt da nur in den Sinn die Projekt-Tabelle neu einzulesen und den tableViewer Input mit tableViewer.setInput(projektTabelle) neu zu setzen)?

Danke im Vorraus für Antworten :)
 

Wildcard

Top Contributor
Dein Modell muss das einfach unterstützen.
Wenn du für alle Arten von Änderungen Events feuerst kann sich die Oberfläche automatisch aktualisieren.
Je nachdem wie dein Modell aufgebaut ist, wird das einfacher, oder schwieriger.
Wenn es zB ein EMF Modell ist funktioniert alles out-of-the-box
 

Biene_Maja

Mitglied
Das Problem ist aber doch das ich 2 Modelle habe - einmal das in der MainView (Projekte mit in den Projekten vorhandenen Personen) und das Modell in der Personenverwaltung (alle Personen die existieren also auch die die nicht in Projekten sind). Deswegen ändert sich doch die MainView auch nicht, weil ich das Modell der MainView nicht verändere, sondern nur das Verwaltungsmodell.
 

Biene_Maja

Mitglied
Es sind doch aber nur zum Teil gemeinsame Daten. Es sind ja nicht alle Personen in der Projektliste enthalten, es gibt ja auch Personen ohne Projekte. Oder meinst ich sollte nen Übermodell machen, indem sich bspw. die Projekt- und die Personenliste befindet?
 

Wildcard

Top Contributor
Vermutlich hast du eine globale Liste mit Personen und Projekte können Personen aus dieser Liste referenzieren. Genauso würde ich das auch Modellieren.
 

Biene_Maja

Mitglied
mein Aufbau ist wie folgt:

Projekt enthält eine Liste mit Personen in diesem Projekt:
Java:
private List<Person> persons;

Projekt-Model:
Die Liste mit allen Projekten
Java:
private List<Project> projects = new ArrayList<Project>();

die ich in der Main-View als Input setze:

Java:
projektModel = new ProjectsModel();
projectsList = new WritableList(projektModel.getProjects(), Project.class);			
treeViewer.setInput(projectsList);

der Aufbau von Person, Personen-Model und Personen-View verhält sich quasi analog, so dass ich da das personModel.getPersons() als input setze.
 

Biene_Maja

Mitglied
So?

PersonenModel:

Java:
 public static List<Person> persons;

Projekt:

Java:
Referenzen auf globale Liste in Personen-Model

ProjektModel:

Java:
 private List<Project> projects = new ArrayList<Project>();


In den Views dann
Java:
 setInput(ProjektModel.getProjects());
Java:
 setInput(PersonenModel.persons());

Ich peil jetzt nur nicht was in Projekt soll? :(
 

Wildcard

Top Contributor
Der Unterschied liegt im Containment. Das Personen Modell enthält alle Personen (Containment), das Projekt referenziert Personen (kein Containment).
Ich kann dir nur raten das ganze mit EMF Modellieren. Das hilft dir nicht nur dabei dein Modell zu formalisieren, sondern du bekommst auch gleich die Content- LabelProvider, das Databinding, Undo/Redo Support und vieles mehr dazu geschenkt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S View aus anderen Thread aktualisieren Plattformprogrammierung 15
S RCP Nach erfolgreicher Erstellung der View, wie weitermachen? Plattformprogrammierung 1
G RCP Show View Command bestimmte View nicht erlauben Plattformprogrammierung 2
S RCP ActionBar Icon nur aktiv, wenn Selection in bestimmter View Plattformprogrammierung 6
M Plugin - Property Page - Get IResource in View Plattformprogrammierung 4
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
L RCP Eigene View für EditorPart? Plattformprogrammierung 3
M RCP TableViewer schrumpft in View nach manueller Resize auf 1 Zeile Plattformprogrammierung 5
M EMF und Tabbed Properties View Plattformprogrammierung 4
Madlip RCP View austauschen/ändern Plattformprogrammierung 9
F RCP EMF View Plattformprogrammierung 13
K RCP View wird nicht angezeigt Plattformprogrammierung 2
L RCP Detached View beim Starten des RCPs? Plattformprogrammierung 3
F Tollbar Items disabled wenn View den Focus verliert Plattformprogrammierung 3
S RCP name einer view ändern Plattformprogrammierung 2
L RCP Help in eine View einbinden? Plattformprogrammierung 3
G RCP Menüpunkt Show View Plattformprogrammierung 7
G EMF -> Leere Elemente sollen in Property View nicht angezeigt werden Plattformprogrammierung 9
E eclipse RCP Properties View: ein Element aus Liste pro Zeile anzeigen Plattformprogrammierung 1
Z Eclipse RCP - UDP Strom in View anzeigen Plattformprogrammierung 4
L RCP Canvas in einer View? Plattformprogrammierung 4
lumo Eclipse + 'Could not create view' Plattformprogrammierung 5
L RCP View in einem Editor öffnen? Plattformprogrammierung 3
D Canvas auf View in Eclipse PlugIn Plattformprogrammierung 3
T RCP Menubar wird durch OLE-VIEW überschrieben Plattformprogrammierung 4
S Plugin: View beim Button-Klick austauschen Plattformprogrammierung 7
Saxony View als Image Plattformprogrammierung 2
S View Refreshen Plattformprogrammierung 2
T geladene Views / Event wenn View closed Plattformprogrammierung 4
S Steuerung View (Schließen erkennen/Hide anstatt Close) Plattformprogrammierung 2
S View speichern/laden beim schließen Plattformprogrammierung 14
L View schließen Plattformprogrammierung 7
L View nicht bekannt machen Plattformprogrammierung 4
lumo View aktivieren jedesmal wen.... Plattformprogrammierung 7
A Overlay in View eines anderen Plug-Ins zeichnen Plattformprogrammierung 2
A View ansprechen Plattformprogrammierung 5
T GMF Property View Plattformprogrammierung 4
M Command in Toolbar aktiv wenn View nicht aktiv Plattformprogrammierung 2
C RCP: Veraenderungen innerhalb einer View per Extension?! Plattformprogrammierung 7
T JSVGCanvas in RCP View anzeigen Plattformprogrammierung 5
ARadauer Mehrere Gui Elemente in View Plattformprogrammierung 4
B RCP - Zugriff von View auf andere View Plattformprogrammierung 4
Saxony [Eclipse RCP] Von woanders View updaten Plattformprogrammierung 11
K Position einer Multiple View speichern Plattformprogrammierung 6
S RCP Anfängerfrage - Zusammenspiel View, Editor, Model Plattformprogrammierung 4
G View Daten übergabe. Plattformprogrammierung 4
N Nicht schließbare View? Plattformprogrammierung 7
C View updaten Teil 2 Plattformprogrammierung 2
B Eclipse RCP: View updaten Plattformprogrammierung 10
dzim Editor aus View öffnen - fehler: unbekannte Editor ID Plattformprogrammierung 11
J Editorfenster von View navigieren lassen? Plattformprogrammierung 5
T Aus einem View in das andere wecheln. Plattformprogrammierung 13
R SWT: nur eine Instanz einer View erlauben Plattformprogrammierung 5
TheWhiteShadow RCP Zustand von Editor Toolbar ToggleButton aktualisieren Plattformprogrammierung 0
M Eclipse RCP Master/Detail Block - Master aktualisieren Plattformprogrammierung 4
N Neustart nach preference-Änderung Plattformprogrammierung 13

Ähnliche Java Themen


Oben