View aktivieren jedesmal wen....

Status
Nicht offen für weitere Antworten.

lumo

Top Contributor
hallo
habe ein kleines problemchen mit einem view.
und zwar muss ein view jedes mal aktiviert werden wenn seine parent perspektive aufgemacht wird.
das aufmachen des views hab ich schon gelöst.
mein problem ist, dass ich nicht weiss, WO ich das eintragen muss.
dachte eigentlich dass das hier rein muss:
Code:
public class Perspective implements IPerspectiveFactory {

	@Override
	public void createInitialLayout(IPageLayout layout) {
	...
	}
war jedoch falsch gedacht, da diese funktion nicht aufgerufen wird, wenn eine perspektive aktiviert wird sondern nur wenn man nen reset auf das layout macht (oder das erste mal das programm startet - sobald mal settings da sind... wird das teil nicht mehr aufgerufen...)

vorschläge? (muss ich dazu ernsthaft wieder nen listener erstellen?)
 
Ich würde eine View nicht so stark an eine Perspektive koppeln. Perspektiven sind nur fürs Layout zuständig und triggern normalerweise keine Funktionalität.
 
wird sie ja nicht... es ist nur so dass diese perspektive fix diesen view beinhaltet -> und diesen aktivieren muss!
in jedere anderen perspektive muss er ja nicht aktiviert werden, bzw weil die perspektive den view aktiviert heissts ja nicht dass der nirgends anders eingesetzt werden kann/darf
 
Nun, dann wirst du einen Listener brauchen, da die Perspektive wie du schon bemerkt hast nur initial und bei reset Code ausführen kann.
 
das hab ich mir fast gedacht, nur wo und wie muss ich einen listener anhängen? hab dazu leider nichts gefunden (ev. falsch gesucht, was ich nicht hoffe)
 
so, hab jetzt wieder mal zeit gehabt mich dem problem zu widmen.
habs gelöst mit deiner hilfe, DANKE!
habs im Activator.start() drin
Code:
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
				.addPerspectiveListener(new IPerspectiveListener() {

					@Override
					public void perspectiveChanged(IWorkbenchPage page,
							IPerspectiveDescriptor perspective, String changeId) {
					}

					@Override
					public void perspectiveActivated(IWorkbenchPage page,
							IPerspectiveDescriptor perspective) {
						try {
							page.showView(MapView.ID);
							page.showView(ListView.ID);
						} catch (PartInitException e) {
							e.printStackTrace();
						}
					}
				});
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben