# View ansprechen



## AWG (6. Nov 2009)

Hallo,

ich habe ein problem mit meinen Views... vielleicht sehe auch nur ich das Problem...

Ich habe zwei Views.
In der einen View wähle ich etwas aus, was daraufhin in der zweiten angezeigt werden soll. 
Mein Problem ist jetzt, das ich nicht weiss wie ich die zweite View anspreche und den Focus 
auf diese setzte. 
Hört sich blöd an ist aber so. 
Es geht darum einen Text in der zweiten View anzuzeigen.
Wenn ich jetzt


```
Text text = new Text(parent, SWT.BORDER);
        text.setText("Hallo");
```

schreibe, möchte ich eigentlich anderes parent Objekt ansprechen als noch in der View in der ich ja gerade arbeite. Aber wie lege ich jetzt das parent Object von der View zwei da rein???

Würde mich freue wenn ihr da eine Antwort wisst. Ich denke ja, das es gar nicht so schwer sein kann und ich einfach zu kompliziert denke...

LG AWG


----------



## Gast2 (6. Nov 2009)

Kannst du doch über Listener machen(Observerable regeln)...
Oder MVC Ansatz...


----------



## Wildcard (6. Nov 2009)

> In der einen View wähle ich etwas aus, was daraufhin in der zweiten angezeigt werden soll.


Deine erste View registriert einen SelectionProvider bei der Workbench, deine zweite View reagiert auf SelectionChanged events. Beispiele dafür sind die Outline View und die Properties View. Vermeide unbedingt das die Views einander kennen. Eine View setzt eine Selection, die andere weiß wie sie auf Selections vom Typ XY zu reagieren hat. Du Kommunikation erfolgt hierbei alleine über das Model.
Vielleicht erfüllt eine der beiden Beispiele (Outline, Properties View) deine Anforderungen auch schon und du brauchst gar keine neue View sondern musst dich nur in bestehendes einklinken.


----------



## AWG (9. Nov 2009)

Danke. 
Werde ich gleich mal ausprobieren


----------



## AWG (10. Nov 2009)

so da bin ich wieder.
Irgendwie habe ich noch ein kleines verständnis Problem.

Noch mal eine genauere Erklärung:

In View A
ist eine Buttonliste und eine Liste
Wenn ein Button ausgewählt wird ändern sich die angezeigten Werte in der Liste.
Im zweiten Schritt soll nun ein Eintrag in der Liste ausgewählt werden und daraufhin die View B
angesprochen werden.
Die Kommunikation zwischen den Button und der Liste erfoglt über einen Listener, der registriert 
welcher Button ausgewählt wurde und daraufhin die Liste füllt.

In ViewA wird nun über

```
getSite().setSelectionProvider(view);
```
der Selection Provider registriert, oder? 

In ViewB wird der Listener registriert der auf das Event aus A reagiert, oder?
Wie und wo wird dieser registriert? in der meiner ViewB Klasse oder?

Also irgendwie stehe ich auf dem Schlauch...


----------



## Wildcard (11. Nov 2009)

Du kannst zB an der Workbench Page einen Selection Listener anhängen, oder über deine Site den ISelectionService anfragen und dort deinen Listener registrieren.


----------

