# [RCP] View über "Code" öffnen und nicht über Menü/Toolbar



## Prengepower (25. November 2009)

Hi.

Folgendes Problem;

Ich wollte über die Toolbar ein Button "Schließen" haben mit dem ich eine weitere View öffne. Es soll halt so funktionieren, dass nur wenn im Editor etwas geändert wurde sich diese View öffnen soll. Er liefert auch true, sodass er in die richtige if-Anweisung geht, aber dann macht öffnet er leider nicht die view  Woran liegt das?

Das hat komischerweise auch schon super funktioniert, doch jetzt nicht mehr  


```
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
import org.eclipse.ui.PartInitException;

public class schliessen extends AbstractHandler implements IHandler {

	@Override
	public Object execute(ExecutionEvent event) throws ExecutionException {
		// TODO Auto-generated method stub
		if (de.hwrberlin.jemm.views.editor.aktiverTab_schliessen().substring(0, 1).equals("*")){
			try {
				new de.hwrberlin.jemm.views.schliessen().getViewSite().getPage().showView("de.hwrberlin.jemm.views.schliessen");
			} catch (PartInitException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else{
			de.hwrberlin.jemm.views.editor.schliessen();
		}
		return null;
	}

}
```

Vielen Dank schonmal für eure Hilfe 

mfg


----------



## zeja (25. November 2009)

Ich frage jetzt mal nicht warum du Klassennamen kleinschreibst... Irgendwie sieht der Code auch nicht aus als könnte er kompilieren. Oder ist editor ne Klasse und aktiverTab_schliessen ne Methode?

Das an nem Substring festzumachen ob was editiert wurde oder nicht ist auch nicht schön. Mach eine ordentlich isDirty Methode dafür am besten in dem du org.eclipse.ui.part.EditorPart erweiterst oder org.eclipse.ui.ISaveablePart implementierst.

Versuch mal

```
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("")
```

Die View ID sollte als Konstante in deiner View hinterlegt sein. Schau bitte nach ob die View korrekt in der Plugin.xml registriert ist und ob die IDs im Code und in der Plugin XML übereinstimmen.


----------



## Prengepower (25. November 2009)

zeja hat gesagt.:


> Ich frage jetzt mal nicht warum du Klassennamen kleinschreibst... Irgendwie sieht der Code auch nicht aus als könnte er kompilieren. Oder ist editor ne Klasse und aktiverTab_schliessen ne Methode?
> 
> Das an nem Substring festzumachen ob was editiert wurde oder nicht ist auch nicht schön. Mach eine ordentlich isDirty Methode dafür am besten in dem du org.eclipse.ui.part.EditorPart erweiterst oder org.eclipse.ui.ISaveablePart implementierst.
> 
> ...



Danke für die schnelle Antwort. Also schließen tut er ja und testen ob der * da vorne is macht er ja auch  Also aktiverTab_schliessen is ne Methode und editor is ne Klasse...

Wie soll ich denn org.eclipse.ui.party.EditorParty erweitern bzw. org.eclipse.ui.ISaveablePart implementieren?! Versteh ich net so wirklich... Aber wie geil: Es funktioniert  Danke...


----------

