# Aktuelle Perspektive



## Gast2 (4. Aug 2008)

Ich gebe in einem Textfeld etwas ein und je nachdem möchte ich in einer perspektive eine neue view öffnen...



```
IPerspectiveDescriptor per = PlatformUI.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(Perspective.ID);
```

aber ich weiß jetzt wie ich der perspektive eine neue view hinzufügen kann


----------



## Gast2 (4. Aug 2008)

```
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ID);
```

ok habs... 

ich habe mehrer editoren die gaenua gleich sind und für jeden editor möchte ich die gleiche view öffnen nur mit andere daten sobald ich doSave aufrufe aber wenn ich es so wie oben öffne wird immer nur eine View geöffnet und keine weiterne mehr ... wie erstelle ich jedes mal eine neue view???
und kann man  in createPartControl die größe der view heruasfinden??? weil ich würde gernen eine Tabelle je nachdem wie groß die wird anpassen... also die colums breiten geht das??? 

thx


----------



## Wildcard (4. Aug 2008)

Für Multiple Views musst du
a)allowMultiple auf true setzen
b)die View über eine primary und eine secondary ID ansprechen


----------



## Gast2 (4. Aug 2008)

okay a) hab ich im plugin.xml auf true gesetzt

aber wo setze ich die secondaryId und für was???

also ich würde gerne eine 1:n zu beziehung zwischen meinem editor und meiner views haben.... im notfall würde auch 1:1 gehen...


----------



## Wildcard (4. Aug 2008)

http://wiki.eclipse.org/FAQ_How_do_I_open_multiple_instances_of_the_same_view?


----------



## Gast2 (4. Aug 2008)

mhm...


```
public void doSave(IProgressMonitor monitor)
  {

    try
    {
      PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(TableView.ID,sec,thr);
    }
    catch (PartInitException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }


  }
```


der 3te parameter ist klar... aber woher weiß ich jetzt ob es die erste view ist oder eine neue instanz ????


----------



## Wildcard (4. Aug 2008)

darum musst du dich kümmern.


----------



## Gast2 (4. Aug 2008)

ja des hab ich mir gedacht aber wie ist ja meine frage...
er geht ja über die viewid...  ich dachte ich kann ihm halt jedes mal eine neue instanz mit meinem datenmodel übergeben... und er zeigt diese dann an...

also ich drücke einen button in einer EditorPart dann soll eine neue instanz der view aufgehen die meine daten anzeigt..... also ich kann ja mehrer edioren öffnen die gleich aussehen und verschiedene sachen eingeben und je nachdem soll halt eine neue view aufgehen in der ich mein datenmodel mitgebe...

ich frage mich halt wie das nur über eine id gehen soll, weil dann benutzt er ja immer die gleiche instanz anstatt eine neue zu machen... 

oder muss ich eine statische variable in meiner view anlegen die quasi meine views mitzählt
 und des immer als schlüssel mitgeben???


----------



## Wildcard (5. Aug 2008)

Zum Beispiel


----------



## Guest (5. Aug 2008)

und wie kann ich meiner view daten übergeben??????? 
ich hab ja kein objekt von meiner view... versteh ich jetzt nicht ganz 
 ???:L


----------



## Gast2 (6. Aug 2008)

also ich habe es jetzt so gelöst aber das ist doch unschön ...
gibt es keine bessere Lösung???  :roll: 


```
public void doSave()
{
    try
    {   PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(TableView.ID,String.valueOf(TableView.SECID),IWorkbenchPage.VIEW_ACTIVATE);
      PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(TableView.ID);
      TableView a = (TableView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findViewReference(TableView.ID, String.valueOf(TableView.SECID)).getView(true);
      a.setModel(mModel);
      TableView.SECID = TableView.SECID+1;
    }
    catch (PartInitException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }

}
```


----------



## Gast2 (7. Aug 2008)

kennt keiner eine elegantere Lösung?


----------

