# geladene Views / Event wenn View closed



## tech84 (24. Jan 2010)

Hi,

ich habe 3 Views

- eine View mit einem Tree (Projektverwaltung)
- eine View mit einem Diagramm
- eine View mit einer Tabelle

Nun habe ich das Ganze so eingestellt (anderer Thread), dass ich von den eingelesenen Dateien mehrere views (Tabelle/Diagramm) öffnen kann. Das funktioniert auch prima, allerdings kann ich so auch mehrere views von ein und derselben Datei öffnen.

Gibt es eine Möglichkeit in dem Handler abzufragen, ob eine view mit dem Namen (beispiel.txt) schon geladen wurde? (Die Titel der Views entspr den files). Oder muss ich selber´ne Liste erstellen, in der ich bei jedem Laden einer view den Namen reinschreibe?!

Soweit zu Problem Nr 1 

Die Diagramme werden jeweils mit jfreeChart erstellt, nun wird bei mir die aktuelle Position in dem Diagramm in der Statusleiste dargestellt. Klappt auch - allerdings bleibt ab und zu ^^ die letzte Koordinate in der Leiste stehen, wobei die View schon geschlossen wurde. Ich habe schon mit mehreren events herumexperimentiert - aber irgendwie will das nicht so wirklich :-/ Jemand ne Ahnung?

gruß,

tech


----------



## Koringar (25. Jan 2010)

Hi,

zu deinem 1. Problem, benutze doch den Dateiname als SecondId oder eher den kompletten Pfad (damit Dateien mit den selben Name, aber andere Pfad auch geöffnet werden.)

Zu 2. habe ich keine Ahnung, habe damit noch nicht gearbeitet.


----------



## tech84 (25. Jan 2010)

Au man, da hätte ich auch selber drauf kommen können - aber trotzdem danke!!! 

Mein zweites Problem bezieht sich nicht auf JfreeChart - sondern auf views allgemein. Irgendwo muss ich das doch irgendwie abfangen können, dass wenn die view geschlossen wird bspw "system.out.println("geschlossen")" ausgeführt wird :bahnhof:


----------



## Gast2 (25. Jan 2010)

tech84 hat gesagt.:


> Au man, da hätte ich auch selber drauf kommen können - aber trotzdem danke!!!
> 
> Mein zweites Problem bezieht sich nicht auf JfreeChart - sondern auf views allgemein. Irgendwo muss ich das doch irgendwie abfangen können, dass wenn die view geschlossen wird bspw "system.out.println("geschlossen")" ausgeführt wird :bahnhof:



Du kannst entweder dispose überschreiben

oder an die site einen PartListener hängen

```
site.getPage().addPartListener(new IPartListener2() {
			
			@Override
			public void partVisible(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partOpened(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partInputChanged(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partHidden(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partDeactivated(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partClosed(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partBroughtToTop(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void partActivated(IWorkbenchPartReference partRef) {
				// TODO Auto-generated method stub
				
			}
		});
```

Aber du kannst nicht verhindern dass die View geschlossen wird...


----------



## tech84 (25. Jan 2010)

Vielen dank, habe dispose() überschrieben - klappt!


----------

