# ViewPart nicht schließbar



## Guest (22. Sep 2008)

Moin zusammen,

Ich starte in einer View einen neuen Thread um etwas zu Berechnen nun möchte ich, dass man solange die View nicht schließen kann... Wie gehe ich am Besten vor PartListener?


----------



## Guest (22. Sep 2008)

Okay mit dem PartListener klappt es irgendwie nicht so ganz wie kann ich eine view für eine kurze zeit nicht schleißbar machen?


----------



## Guest (22. Sep 2008)

```
public class Perspective implements IPerspectiveFactory
{
  private static IPageLayout sLayout = null;

  public void createInitialLayout(IPageLayout layout)
  {
    sLayout = layout;
  }

  public static void setCloseableView(String id, boolean closeable)
  {
    sLayout.getViewLayout(id).setCloseable(closeable);
  }

[code]

klappt leider nicht  :bahnhof: 

[code]
org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:109)
	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:95)
	at org.eclipse.ui.internal.PageLayout.getViewLayoutRec(PageLayout.java:218)
	at org.eclipse.ui.internal.PageLayout.getViewLayout(PageLayout.java:855)
	at com.rcp.ui.Perspective.setCloseableView(Perspective.java:54)
	legatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
```


----------



## Guest (22. Sep 2008)

so okay den UC den ich vorhabe ist im RCP wohl nicht gedacht.
So jetzt dachte ich mit kann ich ja den Save Dialog benutzen dann kann der User immer noch auf "cancel" drücken.

So 3 Fragen:


1.

```
public class AssemblyPicturesRecordingView extends ViewPart implements ISaveablePart
{

  public boolean isDirty()
  {
    return mCloseable;
  }

}
```

so wenn ich hier true zurück bekomme, dann wird der Stern(*) neben dem Partnamen angezeigt. Wenn ich jetzt die View schließe bekomme ich nicht den SaveDialog warum????

2. Kann ich mir für diesen bestimmten Fall einen eigenen Dialog machen oder nur den text ändern???

3. Wie/Wo kann ich abfragen was gedrückt wurde, weil falls der User ok drückt muss ich einen Thread beenden.

thx


----------



## Vayu (7. Okt 2008)

auch wenn es vielleicht bissl zu spät is  dennoch ...

du musst ISaveablePart2 implementieren und dich in die promptToSaveOnClose methode hängen


----------

