RCP Kommunikation zwischen zwei Views

lam_tr

Top Contributor
Hallo zusammen,

ich habe bisher RCP mit mehreren Views implementiert. Wenn eine View A einen TreeViewer und die View B eine Tabelle hat und ich will der View A in dem Tree einen weiteren Knoten hinzufügen, soll die Tabelle in View B automatisch updaten.

Wie kann man das realisieren?
Ich habe einfach eine zentrale Klasse gemacht in dem der Tree und die Tabelle hinzugefügt wird und beim Hinzufügen werden alle Viewers geupdatet werden. Ich denk das ist keine schöne Variante, deswegen möchte ich euch fragen, wie man da besser vorgehen kann?

Ist es einfach einen Eventbus für RCP zu implementieren?

über PlatfromUI.getActiveWorkbench...findView(View.ID).getViewer.refresh ist auch keine saubere lösung bei dem Hinzufügen oder?

Gruss lam
 

lam_tr

Top Contributor
Hi Sonecc,

danke, das habe ich auch schon gesehen, leider gilt dies nur für Selektierungen in Viewers, für andere Listener gibts so einen Provider nicht oder?

Gruss lam
 

lam_tr

Top Contributor
Ja ich habe auch schon die Vermutung dass es in die Richtung geht, aber dachte schon EventBus wie in E4 oder solches wäre auch schön wenn es für meinen Fall gibt :)
 
G

Gast2

Gast
EMF macht sowas automatisch ;)
EventBus ist eine Möglichkeit Databinding die andere oder ganz normal auf die Notifaction des Models reagieren.
 

Sonecc

Gesperrter Benutzer
Ich denke, das eleganteste ist in dem Fall wirklich Databinding, vor allem wenn das gleiche Datenmodell genutzt wird.
Mir würden ansonsten nämlich nur Workarounds einfallen, was in etwa dem entspräche was du dir gebastelt hast.
 

lam_tr

Top Contributor
@SirWayne
Hi, wie macht das EMF, soll das heißen wenn ich ein xmi-Modell habe, kann ich alle Views ,die ich das Datenmodell representiere, automatisch updaten lassen? Wie geht das? und was meinst du mit Notification?

@Sonecc
Über Databinding ist es so mühsam mit dem PropertyChangeSupport und die ganzen AttributenMethodenanpassung.
 
G

Gast2

Gast
@SirWayne
Hi, wie macht das EMF, soll das heißen wenn ich ein xmi-Modell habe, kann ich alle Views ,die ich das Datenmodell representiere, automatisch updaten lassen? Wie geht das? und was meinst du mit Notification?
EMFgeneriert dir extra Adapter und Providers für die RCP Viewers. Die machen das dann intern über Databinding und über ihr Notification Framework, klappt dann sogar mühelos undo/redo.

@SirWayne
und was meinst du mit Notification?
Ja dein Model muss ja irgendwelche Benachrichtigungen abgeben, wenn es sich geändert hat z.b. ein PropertyChange Event oder ähnliches.
 

Ähnliche Java Themen

Neue Themen


Oben