2012-11-26 51 views
1

目前我正在致力於RCP applicationview part。 在應用程序中,用戶可以打開同一個view part的多個實例。 我可以用menu selection來處理視圖部件關閉操作。 但我不知道處理'X',即製表符關閉操作。如何在RCP中處理視圖部件關閉選項卡

我試圖加入IPartListener對象視圖部分對象(I refereed this link),但在其partClosed()方法,我面臨的2個問題,

  1. 我不能夠得到的view part object當前實例。
  2. partClosed()方法只在關閉標籤後被調用,所以我不能顯示關閉標籤的確認。

我應該用什麼方法來解決上述兩個問題。

任何幫助表示讚賞。

最好的問候,

Mandar

回答

1

您可以考慮將您的接口ISaveablePart2應用到您的ViewPart。該界面負責提示用戶該零件是否應該關閉。此外,它決定如何處理未保存的數據。

如果在方法promptToSaveOnClose()中使用自定義對話框關閉視圖,可以提示用戶。

@Override 
public boolean isDirty() { 
    return true; 
} 

@Override 
public int promptToSaveOnClose() { 
    boolean close = MessageDialog.openConfirm(
      Display.getCurrent().getActiveShell(), "Close?", "Really?"); 

    if(close) 
     return YES; 
    return CANCEL; 
} 

Eclispe API: ISaveablePart2

1

如果你只想顯示一個確認關閉編輯器時,你爲什麼不執行ISaveablePart2及其方法promptToSaveOnClose();

例子:

@Override 
public int promptToSaveOnClose() { 
    boolean canClose = // Show dialog here and return a boolean based on the users input 
    if (canClose) { 
     return ISaveablePart2.NO; 
    } else { 
     return ISaveablePart2.CANCEL; 
    } 

    return 0; 
} 
相關問題