# Perspektive wechseln und Daten übergeben



## bluetale (13. Feb 2009)

hallo,

folgendes Problem:
Ich habe eine Perspektive bei welcher ich eine Liste von bestimmten Projekten ("Projektübersicht") mittels einer Table anzeige.
Bei einem Doppelklick auf ein Projekt sollte nun die Perspektive gewechselt werden (um eben zu einer Detailansicht dieses Projekts zu gelangen).
Jetzt muss ich aber irgendwie eine Referenz des geöffneten Projekts mitgeben, damit spätere Änderungen in der "Detailansicht" auch in der "Projektübersicht" sichtbar werden.

Ich hab gelesen, dass wenn ich mittels 

```
PlatformUI.getWorkbench().getActiveWorkbenchWindow().openPage(perspective.ID,***);
```
dort (bei ***) einen Input übergeben kann, welchen ich dann in der neuen Perspektive auslesen kann. Nur klappt das leider nicht? (Oder habe ich IAdaptable falsch implementiert?)
Jetzt eben meine Frage wie ich meine Referenz am besten übergeben kann?


----------



## foobar (13. Feb 2009)

Das ist nicht der Sinn einer Perspektive. Du kannst nicht eine Perspektive öffnen und dieser Daten übergeben.
Eine Perspektive dient dazu View, Editoren etc. zu gruppieren.

Wenn du nach einer Benutzeraktion ein bestimmtes Layout haben willst, kannst du auch manuell Views öffnen oder schliessen dafür brauchst du keine zusätzliche Perspektive.


----------



## bluetale (13. Feb 2009)

Ah, OK.

d.h. ich öffne einfach in meinem Fall einen Editor. Muss ich dazu einen Platzhalter in der Perspektive erstellen damit der Editor genau an jener Stelle des Layouts erscheint wo sich die View befand?


----------



## foobar (13. Feb 2009)

> Muss ich dazu einen Platzhalter in der Perspektive erstellen damit der Editor genau an jener Stelle des Layouts erscheint wo sich die View befand?


Ich glaube das geht nicht. Editoren werden immer in der EditorArea angezeigt und davon gibt es nur eine pro Perspektive.
Den Benutzer würde es wahrscheinlich auch verwirren, wenn an der selben Stelle auf einmal ein Editor erscheint.

Wie sieht denn dein Anwendungsfall aus? Was hast du für Views/Editor und was willst du machen?


----------



## bluetale (13. Feb 2009)

> Wie sieht denn dein Anwendungsfall aus? Was hast du für Views/Editor und was willst du machen?



Also, anfangs sind 2 Views sichtbar, links eine für die Navigation, rechts davon eine "große" welche in einer JFace Table meine Projekte anzeigt.
Bei Doppelklick auf ein Projekt sollte nun eine Detailansicht für dieses Projekt geöffnet werden. Das wäre in meinem Fall ein Editor bei welchem ich quasi Standardeigenschaften ändern kann z.B. Projektname, Auftraggeber, usw.

Durch diese Benutzeraktion (Auswahl eines konkreten Projekts) verändert sich nun zum einen die Navigationsview (weil man jetzt "tiefer" in da konkrete Projekt hineingehen können soll, beispielsweise zur Versionsübersicht, zur Teamübersicht -> dort öffnen sich später wieder ähnliche Editoren), und zum anderen soll die "Projektübersicht-View" versteckt werden (da ja jetzt der Editor zu einem konkreten Projekt da ist).
Oder ich lasse meine Übersichtsview an alter Stelle und erzeuge mit dem Editor einfach einen zusätzlichen Tab?


----------



## foobar (13. Feb 2009)

Also ich würde im dem Fall wahrscheinlich keine View schliessen. Das sollte man immer dem User überlassen. Wenn du in Eclipse JDT aus dem Packageexplorer eine Javaklasse auswählst öffnet sich der Javaeditor aber alle anderen Views bleiben so wie sie sind.

Ich mache es immer so: Es gibt eine View um irgendwelche Entities zu suchen. Wenn man in der Suchview eine Zeile auswählt, öffnet sich ein Editor der die wichtigesten Properties anzeigt.
Zusätzlich kann man sich aber je nach Entity noch jede Menge andere Views öffnen, die Zusatzinfos zu dem Editor enthalten.
Da es aber 10 oder mehr Views mit Zusatzinfos geben kann, überlasse ich das alles dem User was er sehen will.
Das ist IMO auch einer der Vorteile von Eclipse.


----------

